我目前正在尝试通过将max-flow-min-cut算法应用于有向图来模拟网络流问题。我设法创建图表并使用
求解最大流量(和流量)nx.maximum_flow(DG, s="S", t="T")
以下是:
(11.0,
{'A1': {'A4': 1.0, 'A5': 0, 'T': 3.0},
'A2': {'A1': 4.0, 'A8': 2.0, 'T': 1.0},
'A3': {'A7': 3.0},
'A4': {'A3': 0, 'A8': 0, 'T': 1.0},
'A5': {'A3': 2.0, 'A8': 1.0},
'A6': {'A2': 7.0},
'A7': {'T': 3.0},
'A8': {'T': 3.0},
'S': {'A3': 1.0, 'A5': 3.0, 'A6': 7.0},
'T': {}})
这是一个两值元组(11,其余值在一个值中)。现在我想创建一个包含流量的数组,例如A1 - > A4,A5 - > A8和A6 - > A2。
但是,我没有从中创建任何类型的列表,因为我对Python很陌生。
理想情况下,我最终得到的结论是:
y = np.array([1.0, 1.0, 7.0]).reshape(3,1)
[[ 1.]
[ 1.]
[ 7.]]
答案 0 :(得分:0)
我不明白什么是问题。
import numpy as np
data = (
11.0,
{
'A1': {'A4': 1.0, 'A5': 0, 'T': 3.0},
'A2': {'A1': 4.0, 'A8': 2.0, 'T': 1.0},
'A3': {'A7': 3.0},
'A4': {'A3': 0, 'A8': 0, 'T': 1.0},
'A5': {'A3': 2.0, 'A8': 1.0},
'A6': {'A2': 7.0},
'A7': {'T': 3.0},
'A8': {'T': 3.0},
'S': {'A3': 1.0, 'A5': 3.0, 'A6': 7.0},
'T': {}
}
)
lst = [ data[1]['A1']['A4'], data[1]['A5']['A8'], data[1]['A6']['A2'] ]
y = np.array( lst ).reshape(3,1)
print(y)
结果:
[[ 1.]
[ 1.]
[ 7.]]