问题描述
我想计算一个守恒约束矩阵。我做了以下代码:
import string
def max_flow(edges,source,sink):
so = string.ascii_uppercase.index(source)
si = string.ascii_uppercase.index(sink)
k = len(edges)
matrix = [[None] * k for i in range(so,si - 1)]
L1 = []
L2 = []
for i in edges:
L1.append(i[0])
L2.append(i[1])
nodes = [(L1[i],L2[i]) for i in range(0,len(L1))]
for i,j in nodes:
if i != j:
matrix[string.ascii_uppercase.index(i)][string.ascii_uppercase.index(j)] = 1
elif i == j:
matrix[string.ascii_uppercase.index(i)][string.ascii_uppercase.index(j)] = -1
else:
matrix[string.ascii_uppercase.index(i)][string.ascii_uppercase.index(j)] = 0
return matrix[si][k]
edges = [('A','C',4),('A','B',3),('C','E',1),'D',('B',('E','F',('D',5)]
source = 'A'
sink = 'F'
print(max_flow(edges,sink))
对于这个问题,守恒约束应该等于以下:
[0,-1,1,0],# B
[-1,# C
[0,1],# D
[0,0]] # E
提前致谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)