2 つの異なるエッジ セットで構成されたグラフがあります。最初のセットは、重み 1 (リスト 1) のエッジによって作成されます。2 番目のセットは、重み 2 のエッジによって作成されます (リスト 2)。まず、networkx でグラフを作成し、次に add_edges_from を使用してリスト 1 とリスト 2 を追加します。この加重グラフですべての最短経路を計算したいと思います。基本的に、「all_shortest_paths」に類似したものを探していますが、重みがあります(「dijkstra」モジュールでは、特定のソースと特定のターゲットの間のすべての可能なルートを知ることができないようです)。加重リンク (3 タプル、2 つのノードと加重) で「all_shortest_path」を使用しようとすると、エラーが発生します。誰でも私を助けることができますか?どうもありがとう!
4330 次
1 に答える
3
all_shortest_paths() がどのように機能するかを示す簡単な例を次に示します。
import networkx as nx
import StringIO
edges = StringIO.StringIO("""
a b 1
a bb 1
b c 2
bb c 2
c d 1
a d 10""")
G = nx.read_weighted_edgelist(edges, nodetype=str)
print list(nx.all_shortest_paths(G, 'a', 'd', weight='weight'))
# [['a', 'b', 'c', 'd'], ['a', 'bb', 'c', 'd']]
于 2013-05-16T01:48:18.143 に答える