簡體   English   中英

有沒有一種方法可以使用 Floyd-Warshall 算法給出最短路徑,其中存在負權重循環而不允許重疊邊緣?

[英]Is there a way that gives shortest path using Floyd-Warshall's algorithm where negative weight cycle exists whereas overlapped edges are not allowed?

我們知道,如果圖中出現負權重循環,Floyd-Warshall 算法的結果是無效的,這是因為在負權重循環上多次旅行使得權重和任意小。 然而,如果我們指定不允許重復的邊被移動,那么權重總和是正確的。 我想知道一種在這種情況下產生最小權重總和的方法。 已經嘗試了對該算法的一些修改(包括在從某個頂點到自身的權重總和為負時跳過循環)但前一個矩陣仍然很奇怪,權重總和矩陣完全沒有用(我偶然知道一個指數增加它的價值將不可避免地發生,見鏈接)。

該問題的有效解決方案意味着 P=NP,因此幾乎可以肯定沒有這樣的解決方案。

使用多項式時間解決您的問題,您可以通過將所有邊權重設置為 -1 並要求兩個節點之間的最短路徑來解決最長路徑問題

正如 Marzio De Biasi 在鏈接帖子中所證明的那樣,最長路徑問題的解決方案可用於解決最大度數為 3 的網格圖上的哈密頓循環問題,方法是將兩個新節點連接到左上角的節點並要求最長的足跡。

當限制為最大度數為 3 的網格圖時,哈密頓循環問題仍然是 NP 完全問題,正如 Christos H Papadimitriou、Umesh V Vazirani 所證明的,關於與旅行商問題相關的兩個幾何問題,算法雜志,第 5 卷,第 2 期,1984 年 6 月,第 231-246 頁,ISSN 0196-6774。

因此,您的問題是 NP-hard 問題。

暫無
暫無

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

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