用有向图的网络计算最大流量值

时间:2017-06-28 00:54:42

标签: python graph-algorithm networkx max-flow

我有一个27000弧的定向网络,每个弧都有一个重量。

使用代码:

G=nx.Graph(G)
nx.maximum_flow(G,'CHN',"CHL")

我收到错误:

  

NetworkXUnbounded:无限容量路径,流量无限制在上面。

有谁知道如何获得最大流量值?

顺便说一句,当我跑:G.edges(data=True)时,我会收到一本包含这样内容的词典:

 ('BGR', 'NCL', {'Edge Id': u'3727', 'weight': 334716.84}),
 ('BGR', 'ARE', {'Edge Id': u'3606', 'weight': 28347011.33}),
 ('BGR', 'ARG', {'Edge Id': u'3733', 'weight': 26294089.16}),
 ('BGR', 'SDN', {'Edge Id': u'3591', 'weight': 78929738.06}),

感谢。

1 个答案:

答案 0 :(得分:1)

这不是很多信息。

但我很确定原因很简单:你没有定义任何容量。很明显,流量没有上限,因为我们可以通过图形推动无限量的流量! (因为没有明确的容量被解释为无限容量)

Excerpt from the docs

  

容量(字符串)

     

图G的边缘应具有属性容量,该容量指示边缘可以支持多少流量。如果此属性不存在,则认为边缘具有无限容量。默认值:'capacity'。

还有一句话:你在这里解决最大流量问题。没有使用重量!这些是针对max-flow-min-cost和co。 (也支持networkx)。