![](/img/trans.png)
[英]How can I find connected components in a directed graph using a list of nodes as input?
[英]How can I find the distance between 2 nodes given a list of edges (directed) of a graph?
假設我將邊設置為包含邊的列表,如下所示:
E=[(1, 6), (1, 7), (2, 3), (2, 6), (3, 2), (3, 8), (4, 5), (4, 7), (5, 4), (5, 9), (6, 1), (6, 7), (6, 2), (7, 1), (7, 6), (7, 4), (8, 9), (8, 3), (9, 8), (9, 5)]
給定距離矩陣,我想找到節點8和4之間的最短路徑(並且還要考慮存在兩個等距離的最短路徑的情況):
C=[2.5, 5.59, 1.0, 2.0, 1.0, 2.0, 1.0, 2.0, 1.0, 2.0, 2.5, 5.0, 2.0, 5.59, 5.0, 2.0, 5.0, 2.0, 5.0, 2.0]
其中C
中的每個元素(例如在第i個位置)對應於E
相應邊緣(在第i個位置)的兩個節點之間的距離。
我偶然發現了一些類似的文章,鼓勵使用Dijkstra的算法,但是我還沒有找到在Python 3.5x中能做到這一點的文章(也許有,但是我找不到它..:/)
因此,除了上面提到的問題外,除了找到節點8和4之間的最小距離外,我還想將其推廣到給定邊集和距離矩陣的情況下,找到任意兩個節點之間的最小距離。
嘗試使用networkx
:
import networkx
shortest_path(G, source, target)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.