2012-10-08 82 views

回答

33

Here's算法的一個很好的描述,也解釋了放鬆的概念。

「鬆弛」的概念來自估計的最短路徑的 和螺旋拉伸彈簧的長度,這 並非設計用於壓縮之間的相似之處。起初,最短路徑的成本估計過高,比如春天到來。如果找到較短的路徑 ,則估計的成本會降低,並且彈簧 放鬆。最終,如果存在最短路徑,那麼春天已經放鬆到它的休息長度。

19

在Dijkstra算法的鬆弛處理是指更新連接到頂點v的所有頂點的費用,如果這些費用將通過包括通孔V的路徑被改善。

7

放鬆的邊緣,(一個概念你也可以在其他最短路徑算法中找到)正試圖通過使用另一個頂點來降低到頂點的成本。

您正在計算從起始頂點(例如S)到所有其他頂點的距離。在某個時候,你有中間結果 - 目前的估計。鬆弛是您檢查,對於一些頂點üv過程:

if directly_connected(v, u) 
    if est(S, v) > est(S, u) + dist(u,v) 
     est(S, v) = est(S, u) + dist(u, v) 

其中est(S,a)是距離的當前估計,並dist(a,b)是兩個頂點是在鄰居之間的距離圖形。

你在放鬆的過程基本檢查是什麼天氣當前的估計從一個b可以通過Ç(這種「聲東擊西」,「分流」的路徑來提高將是一個長度從accb的路徑。