簡體   English   中英

我們可以將 Bellman-Ford 算法應用於無向圖嗎?

[英]Can we apply the Bellman-Ford algorithm to an Undirected Graph?

我知道 Bellman-Ford 算法適用於有向圖。 它適用於無向圖嗎? 似乎對於無向圖,它將無法檢測到循環,因為平行邊將被視為循環。 這是真的還是假的? 算法可以應用嗎?

事實上,任何無向圖也是有向圖。

您只需要指定任何邊 {u, v} 兩次 (u, v) 和 (v, u)。

但不要忘記,這也意味着任何具有負權重的邊都將算作一個循環。 由於 Bellman-Ford 算法僅適用於不包含任何負權重環的圖,這實際上意味着您的無向圖不得包含任何負權重邊。

如果使用 Bellmann-Ford 不是很好。

Bellman Ford 算法不適用於具有負權重的無向圖,因為具有負權重的無向邊 {u, v} 可以定義為 2 個有向邊,(u, v) 和 (v, u) 具有負權重,這將被 Bellman Ford 算法視為負循環。

因此,Bellman Ford 只會在正加權無向圖上工作。 但是在這種情況下,最好改用 Dijkstra 算法,因為它漸近速度更快。

Bellman-Ford 不適用於在包含負循環的圖上找到最短路徑,但它在圖上找到最短路徑並且可以檢測該圖是否包含負循環,盡管它不會找到最短路徑,因為不存在這樣的路徑.

暫無
暫無

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

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