爲什麼Dijkstra算法不能處理帶負權邊的圖

Dijkstra算法在運行過程中維持的關鍵信息是一組節點集合S,從源節點s到該集合中每個節點之間的最短路徑已經被找到。算法重複從節點集合V-S中選擇最短路徑估計最小的節點u,將u加入到集合S,然後對所有從u出發的邊進行鬆弛操作。

當把一個節點選入集合S時,即意味着已經找到了從源點到這個點的最短路徑,但若存在負權邊,就與這個前提矛盾,可能會出現得出的距離加上負權後比已經得到S中的最短路徑還短。(無法回溯)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章