我有一個由兩組不同的邊組成的圖。第一組是由權重1(列表1)的邊緣製成的。第二組由權重2(列表2)的邊緣構成。首先,我使用networkx創建圖形,然後使用add_edges_from添加列表1和列表2.我想計算此加權圖形中的所有最短路徑。基本上,我正在尋找類似於「all_shortest_paths」的權重(看起來像「dijkstra」模塊不允許你知道給定源和給定目標之間的所有可能路線)。如果我嘗試使用加權鏈接(3元組,兩個節點和權重)的「all_shortest_path」,我會得到錯誤。有誰能夠幫助我? 非常感謝!帶有networkx的加權圖的所有最短路徑?
2
A
回答
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']]
+0
親愛的阿里克,非常感謝你的幫助! – user2382948
+0
僅供參考, ''nx.all_shortest_paths''使用dijkstra方法來獲得每個頂點的''pred''和''dist'',所以如果圖形包含負加權邊緣,則不會給出正確的結果。 – Dzhuang
相關問題
- 1. 如何使用networkx查找加權圖中的最短路徑?
- 2. 定向,加權平衡樹的進口和最短路徑networkx
- 3. 通過加權圖的最短路徑
- 4. NetworkX vs Scipy所有最短路徑算法
- 5. 具有彩色邊的加權圖中的最短路徑
- 6. 所有使用graph_tool的最短路徑
- 7. 有約束節點通過的有向圖加權圖最短路徑
- 8. 未加權的最短路徑
- 9. 有向無環圖的最短路徑
- 10. 找到有向圖的最短路徑
- 11. 圖論:具有矢量權重的最短路徑
- 12. 所有對最短路徑問題
- 13. OrientDB:所有對最短路徑
- 14. Neo4j Gremlin:所有最短路徑
- 15. 未加權圖的最短路徑(最少節點)
- 16. 查找有向圖中源到所有頂點的所有最短路徑
- 17. Python - 如何從這個networkx代碼中提取所有最短路徑?
- 18. Python:圖中斷開組件的所有最短路徑
- 19. 找到有向未加權圖中兩個節點之間的所有最短路徑的數量
- 20. 計算加權最短路徑的未加權長度
- 21. Neo4J,獲取所有路徑和最短路徑
- 22. 圖最短路徑?
- 23. 非加權圖中鄰接列表中的最短路徑
- 24. 使用堆棧查找加權圖的最短路徑
- 25. Python的DFS最短路徑與加權搜索,無向圖
- 26. OrientDB動態權重的最短路徑?
- 27. PACMAN:吃所有點的短路徑
- 28. 在mysql和php中的無向,未加權圖形中的2個節點之間的所有最短路徑
- 29. 有障礙物的最短路徑
- 30. 向圖的所有邊添加權重 - 生成樹中的變化和最短路徑
我注意到,我的解釋是完全不清楚,對不起。管理員可能想刪除以前的評論(沒有問題,這是我的不好)。基本上我有這個,edge_W1是行列表(每行有3個入口,兩個節點和1個連接它們的鏈接的權重)W = nx.Graph()W.add_weighted_edges_from(edges_W1)。如果我打印nx.all_shortest_paths(W,0,1),我得到「發生器對象all_shortest_paths在<>。0和1之間的0x9b8ed9c當然只是一個例子 – user2382948