簡體   English   中英

給定圖的邊(有向)列表,如何找到2個節點之間的距離?

[英]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)
  • G是圖。
  • 是起始節點。
  • 目標是路徑末端的節點。

shortest_path文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM