仔細分析Dijkstra算法的執行過程可以發現,它與洪水泛濫有些類似。把圖節點想象成洪水將要經過的城鎮,所有邊想象連接城鎮的河道,假定洪水在源點突然爆發。
在時刻0,洪水從源頭A城開始泛濫。洪水檢測員可以估計洪水到達B城、C城、G城、D城的時刻分別為第i、j、k、t小時,i有限小而j,k,t為無窮大因為他們絕不與A城相鄰,而B卻與之相鄰。前者是最保守的估計--- 情況不可能更糟了。若洪水監測員的職責僅僅是正確預報各個城市最早被淹的時間,則他大可高枕無憂睡上 min{i,j,k,t}=i 小時。當洪水到達B時,監測員著手檢查所有與B相鄰的有河道相鄰又尚未被淹的城市,假定發現洪流從B推進到C、D、G的時間分別為12、5、7小時,于是他將C、D、G被淹時刻提前到12+j,5+k,7+t。而這個將時刻提前的動作就是Dijkstra算法里的降距操作。
在時刻0,洪水從源頭A城開始泛濫。洪水檢測員可以估計洪水到達B城、C城、G城、D城的時刻分別為第i、j、k、t小時,i有限小而j,k,t為無窮大因為他們絕不與A城相鄰,而B卻與之相鄰。前者是最保守的估計--- 情況不可能更糟了。若洪水監測員的職責僅僅是正確預報各個城市最早被淹的時間,則他大可高枕無憂睡上 min{i,j,k,t}=i 小時。當洪水到達B時,監測員著手檢查所有與B相鄰的有河道相鄰又尚未被淹的城市,假定發現洪流從B推進到C、D、G的時間分別為12、5、7小時,于是他將C、D、G被淹時刻提前到12+j,5+k,7+t。而這個將時刻提前的動作就是Dijkstra算法里的降距操作。













































