簡體   English   中英

Python中鄰接矩陣的Dijkstra算法

[英]Dijkstra's algorithm on adjacency matrix in python

如何在不使用Python邊緣成本的鄰接矩陣上使用Dijkstra的算法? 如果在2個頂點之間存在邊,則為1,否則為0。 我在互聯網上找到的解釋都是針對帶有成本的圖表。

Dijkstra的算法需要一定的成本才能工作。 如果要在“無成本”的圖形上運行算法,則假定您要嘗試根據路徑的邊數找到2個頂點之間的最短路徑。

在這種情況下,您可以假設每個邊的成本為1,而Dijkstra的算法將按預期工作。 還請確保忽略搜索中不存在的邊(您不希望將矩陣中的零計為零成本邊)。

如果沒有權重,則可以使用Dijkstra並為所有邊緣定義weight = 1或使用BFS ,這基本上是Dijkstra的特例,但沒有加權邊緣。

當我必須在php中實現Dijkstra的算法以查找數據庫的2個表之間的更短路徑時,我用3個值構造了矩陣:如果2個點相同,則為0;如果它們由邊鏈接,則為1;否則為-1 。

之后,該算法就可以按預期工作了。

暫無
暫無

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

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