我正在使用Python的networkx包。Python:如何查找圖中2個節點之間是否存在路徑?
16
A
回答
12
>>> import networkx as nx
>>> G=nx.empty_graph()
>>> G.add_edge(1,2)
>>> G.add_edge(2,3)
>>> G.add_edge(4,5)
>>> nx.path.bidirectional_dijkstra(G,1,2)
(1, [1, 2])
>>> nx.path.bidirectional_dijkstra(G,1,3)
(2, [1, 2, 3])
>>> nx.path.bidirectional_dijkstra(G,1,4)
False
>>> nx.path.bidirectional_dijkstra(G,1,5)
False
>>>
也可以使用該結果作爲一個布爾值
>>> if nx.path.bidirectional_dijkstra(G,1,2): print "path exists"
...
path exists
>>> if nx.path.bidirectional_dijkstra(G,1,4): print "path exists"
...
>>>
3
dijkstra_path(G, source, target)
從源返回的最短路徑中的加權圖G來定位
7
使用
shortest_path(G, source, target)
或其中一種最短路徑方法。如果只有兩個特定的節點來測試連通性,請保持清除所有節點之間返回路徑的方法。
10
17
要檢查是否有一個圖中,兩個節點之間的路徑 -
>>> import networkx as nx
>>> G=nx.Graph()
>>> G.add_edge(1,2)
>>> G.add_edge(2,3)
>>> nx.has_path(G,1,3)
True
>>> G.add_edge(4,5)
>>> nx.has_path(G,1,5)
False
欲瞭解更多信息,請參閱has_path — NetworkX 1.7 documentation
相關問題
- 1. 使用BFS查找2個節點之間的最短路徑
- 2. 查找圖中一對節點之間的K-最短路徑?
- 3. 在有向圖中找到2個節點之間的路由?
- 4. 檢查節點是否在有向圖的節點路徑中
- 5. 查找兩個頂點(節點)之間的所有路徑
- 6. 查找遊戲板兩側之間的路徑是否存在
- 7. 誘導子圖;兩個節點之間的路徑存在
- 8. 如何消除路徑之外存在關係的路徑,但路徑中的節點之間存在關係?
- 9. Neo4j - 如何找到兩個節點之間的最短路徑
- 10. 查找兩個節點之間的所有路徑
- 11. 使用BFS查找兩個節點之間的所有路徑
- 12. 使用DFS查找兩個節點之間的所有路徑
- 13. xquery - BFS查找兩個節點之間的所有路徑
- 14. 如何快速檢查網格點之間是否存在任何路徑?
- 15. 如何檢查Python中圖的兩個頂點之間是否存在邊?
- 16. 如何找到兩個節點之間的循環圖中最長的路徑?
- 17. 查找圖中兩個節點之間固定跳數的最短路徑
- 18. 使用BFS和DFS查找圖表中兩個節點之間的路徑
- 19. 查找大圖中兩個節點之間的所有可能路徑
- 20. 查找無向圖中兩個節點之間的所有可能路徑
- 21. 查找樹中一組節點之間的最長路徑
- 22. Networkx圖:查找給定節點集合中的任何節點與另一組節點之間是否存在路徑
- 23. 查找是否存在2個節點之間的路由深度優先搜索
- 24. 查找每個節點與路徑的最後一個節點之間的路徑的距離
- 25. 如何確定節點w是否位於樹中節點u和節點v之間的路徑中?
- 26. 查找網絡節點之間的路徑距離?
- 27. 查找節點之間所有簡單路徑的問題?
- 28. 查找N組節點之間的所有可能路徑
- 29. 查找節點之間的路徑與SQL
- 30. Neo4j:找到兩個節點之間有多個路徑
如果什麼路徑不給予2個節點之間存在嗎?那麼函數返回什麼? – Bruce
我不想找到最短路徑。我只想知道兩個給定節點之間是否存在路徑。 – Bruce