當前位置:首頁 » 操作系統 » 貪心演算法單源最短路徑

貪心演算法單源最短路徑

發布時間: 2024-12-19 22:18:54

『壹』 直觀理解:單源點最短路徑——Dijkstra演算法

  Dijkstra演算法是由荷蘭計算機科學家 Edsger Wybe Dijkstra於1959年提出的單源點最短路徑演算法(SSSP:Single Souce Shortest Path)。是一個解決加權圖(不含負權重的邊)中從一個頂點到其餘各個頂點最短路徑問題的演算法。Dijkstra演算法是一個集 貪心演算法 , 廣度優先搜索(BFS) 和 動態規劃 於一身的最短路徑演算法。Dijkstra演算法的主要特點是從起源點開始,採用貪心演算法的策略,每次遍歷到始點距離最近且未訪問過的頂點的鄰接頂點,直到擴展到終點為止。
  Dijkstra演算法通過維護兩個集合: (已求出最短路徑的頂點)和 (未求出最短路徑的頂點),每次迭代地從 中移除路徑距離最小的點到集合 中,並通過這個新移入的點來更新 中各個頂點到源點的最短路徑,直到集合 為空。下面我們通過一個例子來簡單描述Dijkstra演算法的過程。
  假設我們有如下的圖,其中頂點A未此次演算法的起點:

  首先我們需要初始化兩個集合 和 ,以及 中每個頂點到源點的距離,若不直接於A相鄰,結果置為正無窮∞。

   Step 1: 從集合 中挑選出距離最小的點,這里會挑選出頂點F,集合 和 變更為: , ,根據最新的 ,重新計算 中頂點到源點A的最短距離。

   Step 2:: 從集合 中挑選出距離最小的點,這里會挑選出頂點E,集合 和 變更為: , ,根據最新的 ,重新計算 中頂點到源點A的最短距離。

   Step 3: 從集合 中挑選出距離最小的點,這里會挑選出頂點C,集合 和 變更為: , ,根據最新的 ,重新計算 中頂點到源點A的最短距離。

   Step 4: 從集合 中挑選出距離最小的點,這里會挑選出頂點D,集合 和 變更為: , ,根據最新的 ,重新計算 中頂點到源點A的最短距離。

   Step 5: 從集合 中挑選出距離最小的點,這里會挑選出頂點B,集合 和 變更為: , ,根據最新的 ,重新計算 中頂點到源點A的最短距離。

   Step 6: 從集合 中挑選出距離最小的點,這里會挑選出頂點G,集合 和 變更為: , ,由於集合 為空,演算法停止迭代,輸出結果。

  以上就是對Dijkstra演算法的計算過程的簡單描述。

熱點內容
彩票網站源碼下載 發布:2024-12-20 00:39:43 瀏覽:331
編譯器有幾個部分 發布:2024-12-20 00:39:00 瀏覽:674
伺服器埠地址怎麼獲取 發布:2024-12-20 00:35:18 瀏覽:597
反編譯mac 發布:2024-12-20 00:30:30 瀏覽:980
gta4用什麼配置好 發布:2024-12-20 00:27:07 瀏覽:826
英國編程 發布:2024-12-20 00:11:48 瀏覽:316
蘋果6s什麼配置最好 發布:2024-12-20 00:03:01 瀏覽:452
期貨的保證金演算法 發布:2024-12-20 00:02:19 瀏覽:773
上傳同乘信息 發布:2024-12-19 23:54:00 瀏覽:347
初學資料庫 發布:2024-12-19 23:51:23 瀏覽:108