計算機程序設計

Dijkstra算法及其實現

有一個叫數學和計算機科學的圖論一個獨立的區域。 作為其集合的一部分,並且解決各種問題,如查找頂點之間的最短路徑。 常見的一種解決這個問題的數學家方式中早已是Dijkstra算法。

什麼是數學圖

據認為,該圖的概念正式投入使用,在十八世紀Leonardom Eylerom。 誰是他宣布的制定和這個理論的經典問題之一的解決方案 - 哥尼斯堡七橋問題。 為了解釋這一理論的對象經常用這樣的比喻為不同的城市之間的移動。 然後在飛機上曲線圖將是一個整個路線圖,其中頂點成為特定項目(例如,城市),並且邊緣 - 路徑從一個頂點到另一個(城市之間的模擬公路)。 Dijkstra算法,此外還有其他的方法,可以提供一個解決這個問題。

尋找最短路徑

其中一個共同的任務 圖論的 是一個在你需要確定兩個點之間的最優成本路徑。 它可以將飛機降低到圖中的頂點的決定 - 城市 - 是相互關聯的排骨,這是一個可能的道路。 每路都有自己的長度,因此,行程上它將不得不花一些錢。 這個量相當於在圖中的邊的權重。 然後在實踐中的問題可以歸結為如下:如何從一個城市鋪平道路到另一個,要在道路最起碼手段度過。

如何解決

為了解決這個問題,我們已經發明了已經成為廣泛在科學界已知的一些算法。 例如,弗洛伊德算法 - Uorshella,福特 - 貝爾曼。 尋找解決方案的典型方式也Dijkstra算法。 它可用於加權圖的(每條邊的已知重量),並稀釋。 要找到你必須完成幾個步驟的最終出路。

Dijkstra算法

此方法的要點在於一個事實,即開頭給出所有的成本頂點,其中,每個標籤被分配一定的價值。 那麼結果將包括它的標籤是最小的頂點。 在第一初始步驟的頂部將與0值然後被標記,所有下列峰被認為是,即,那些可以從源到達。 它們被標記,其值被確定為路徑的源代碼和重量的總和。 從下一步的頂部,選擇具有標籤的最小值的一個,並研究在從中我們可以不使用中間節點的所有頂點。 指定等於標籤頂部的新標籤 - 源代碼加的方式重量。 如果該值小於頂部的標籤,該標籤被改變。 否則,它仍然是原來的值。 在一個單獨的陣列中,其尺寸等於頂點的數目的同時,它存儲優化的結果,其中確定和方式。 要實現一個方法,如Dijkstra算法,帕斯卡爾提供了一個非常方便的手段。 該算法的優點在於它可以很容易地用於具有體積小程序的基礎。 這樣的軟件產品的例子很容易在互聯網上找到。

DLE解決方案不同的工具,你可以使用任務中找到最優路徑。 對於解決方案,例如Dijkstra算法,Delphi將創建視覺數據輸入和輸出的最終結果的方便形式。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zhtw.unansea.com. Theme powered by WordPress.