如何计算最大流问题的守恒约束

问题描述

我想计算一个守恒约束矩阵。我做了以下代码:

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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...