簡體   English   中英

正加權有向無環圖中的k邊最短路徑

[英]k-Edge Shortest Path in Positive Weighted Directed Acyclic Graph

我得到一個圖,G =(V,E),即正加權,有向和非循環。 我將設計一個在O(k(m + n))中運行的算法,用於報告從s到t的k邊緣最短路徑。 k邊緣最短路徑被定義為從s到t的具有k個邊緣的路徑,並且對於從s到t的所有路徑,路徑的總權重也必須是最小的。

由於BFS不能單獨用於查找最短路徑(除非權重相等),我認為運行時間意味着使用BFS來查找具有k個邊緣的路徑。 什么讓我失望的是k,因為我認為它意味着執行BFS k次。

我可能的想法是從源運行BFS以找到所有可能的k-link路徑。 通過跟蹤沿途的水平並將每個節點的總路徑權重存儲到我的隊列中,我可以找到所有可能的k-link路徑及其權重。 顯然,如果我在較低級別遇到具有較低路徑權重的目的地,則根據定義沒有k邊緣最短路徑。 如果有超過k個邊的路徑總重量減少的情況怎么辦? 它也不是O(k(m + n))。 任何有用的提示將不勝感激。

f[i][j]是從sj的i-link最短路徑,最初我們有

f[1][x] = e(s, x);

然后迭代K - 1次,每輪我們使用f[i][]計算f[i + 1][] ,這可以通過

for each node v:
    f[i + 1][v] = INF;
for each edge e[u][v]:
    f[i + 1][v] = min(f[i + 1][v], f[i][u] + e[u][v]);

因此取O(k(n + m))

暫無
暫無

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

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