[圖論]Dijstra 算法的正確性證明

NOTE - dijstra算法的正確性非常依賴于邊權值的非負。

原因是: 設V為所有點集, S為確定最短路徑的點集,算法每次取V-S中與源點距離最小的點來松弛其他邊,并將該點其加入S中.
反證法 + 歸納法
初始時,只有一個源點位于S中,加入S的為與源點直接距離最短的點k,并以k來松弛其他邊。假設k'為松弛后與源點距離最小的點,則k'此時可以加入S,即此時k'與源點的距離為最短路徑的長度,設其為d'。
假設d'非最短路徑長度,即存在一個更短的路徑.
思考d'如何得來的,其是通過源點 --- k --- k'得到。已知與源點直接相鄰的點中k為最近點,并且邊的權值為非負,因此不存在通過其他直接相鄰的點t的更短路徑.

以上思路可以寫成更嚴格的歸納法.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Floyd 算法 簡介 Floyd 算法又稱為插點法,是一種利用動態規劃的思想尋找給定的加權圖中多源點之間最短路徑...
    廖少少閱讀 8,669評論 0 1
  • 1 概述 最短路徑是圖中的常見問題,最典型的應用是:當我們用百度地圖或高德地圖引導我們去某個地方時,它通常會給出一...
    CodingTech閱讀 1,553評論 4 9
  • 忘不了! 忘不了你那回眸一笑! 你那回眸一笑的驚艷, 早讓三千粉黛失花顏。 香塵已被歷史車輪輾, 馬嵬坡前把生離死...
    覓緣人閱讀 392評論 5 5
  • 以上是奔跑吧兄弟的照片, 你們是否看著覺得當明星真好, 可以整天娛樂,還有粉絲在向你招手。 可你們知道背后的辛苦嗎...
    燦爛朝陽閱讀 274評論 0 2
  • 花開花又落,來年依然笑迎春風,而你,從我身邊走過,卻再也沒有轉身,至此你我皆是路人。 將紛紛攘攘的心思,放在心底,...
    華枝春滿5339閱讀 787評論 0 5