簡體   English   中英

無環圖中最短路徑的 O(m+n) 復雜算法

[英]O(m+n) complex algorithm for shortest path in acyclic graph

什么是在時間 O(m + n) 內解決給定非循環(無循環)圖的單源最短路徑問題的好算法?

我的嘗試是用斐波那契堆做 Dijkstra 算法,但那是O(m + nlogn)

它可以使用拓撲排序動態規划來完成。

首先,對圖進行拓撲排序。 那是O(n+m)

然后,遵循遞歸公式:

D(source) = 0
D(u) = infinity    if u is before source in the topological sort
D(u) = min { D(v) + w(v,u) | for each edge (v,u) }

對上述遞歸公式使用 DP 技術也是O(n+m)

由於您對圖進行了拓撲排序,因此動態規划將按照拓撲排序的順序進行,並且當您處理某個節點時 - 已經計算了所有依賴項。

暫無
暫無

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

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