2017-06-28 16 views
1

私は27000の円弧を持つ有向グラフを持っています。コード付き有向グラフのネットワークでの最大フロー値の計算

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

私はエラーを取得する:

NetworkXUnbounded: Infinite capacity path, flow unbounded above.

誰もが最大流量値を取得する方法を知っていますか?

私は実行ところで、:

('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}), 

ありがとう:G.edges(data=True)、私はそれでこのようなもので辞書を取得します。

答えて

1

これはあまり働くことではありません。

しかし、私は確かにその理由は簡単です:あなたは容量を定義していませんグラフには無限の量のフローをプッシュできるので、フローの上限はありません。

Excerpt from the docs(明示的な容量が無限の容量と解釈されていないため):

capacity (string)

Edges of the graph G are expected to have an attribute capacity that indicates how much flow the edge can support. If this attribute is not present, the edge is considered to have infinite capacity. Default value: ‘capacity’.

もう一つの発言:あなたはここで、最大フロー問題を解決しています。体重の使用はありません!それらは最大流量最小コストと共同用です。 (networkxでもサポートされています)。

+0

これは、すべてのノードに属性の容量を設定する必要があることを意味しますか? – Chi

+0

max-flowの問題についていくつかの基本を習得してください。はい、いくつかの容量*を掲示するか、上限がありません。しかし、これは典型的にあなたの問題から自然に来るものです。 – sascha

関連する問題