算法設(shè)計與分析 課件 第五章 貪心法 5.2.3 單源最短路徑問題_第1頁
算法設(shè)計與分析 課件 第五章 貪心法 5.2.3 單源最短路徑問題_第2頁
算法設(shè)計與分析 課件 第五章 貪心法 5.2.3 單源最短路徑問題_第3頁
算法設(shè)計與分析 課件 第五章 貪心法 5.2.3 單源最短路徑問題_第4頁
算法設(shè)計與分析 課件 第五章 貪心法 5.2.3 單源最短路徑問題_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

計算機算法設(shè)計與分析第5章貪心法5.2.3單源最短路徑問題給定一個帶權(quán)有向圖

G=(V,E),其中每條邊的權(quán)是一個非負實數(shù)。給定圖G中的一個頂點v0∈V,稱為源點。求源點v0到G中其余各頂點的最短路徑長度。這里的長度是指路徑上各邊權(quán)之和。這個問題通常稱為單源最短路徑問題。5.2.3單源最短路徑問題源點終點最短路徑路徑長度11無

2(1,3,2)7

3(1,3)3

4(1,3,2,4)9

5(1,3,5)55.2.3單源最短路徑問題dist[i]表示計算過程中源點到各目標頂點i的當(dāng)前最短路徑長度,dist[i]隨著計算過程會不斷變化,其初始值為源點到其余頂點有向邊的權(quán)值,若不存在有向邊則用無窮大。path[i]表示在最短路徑上頂點i的前一個頂點編號。集合S表示已求出最短路徑的頂點的集合。集合T(T=V-S)表示尚未確定最短路徑的頂點集合,V是圖G中頂點的集合。二維數(shù)組edge表示圖G的鄰接矩陣。貪心策略,Dijkstra算法迪杰斯特拉(Dijkstra)提出了一個按路徑長度遞增次序產(chǎn)生最短路徑的貪心算法,對于有向帶權(quán)圖,算法步驟如下:(1)令S={1},T=V-S,T中頂點i對應(yīng)的距離值dist[i]:若邊<1,i>∈E,dist[i]=edge[1][i],否則dist[i]=∞。(2)從T中選取一個其距S最近,即dist值最小的頂點k,加入S,T=V-{k},對T中所有的頂點i的距離值dist[i]進行修改:

(3)重復(fù)上述步驟(2),直到S中包含所有頂點,即|S|=|V|為止,這時T=V-S={}。單源最短路徑問題迭代Sk2345初始{1}--dist[2]=10path[2]=1dist[3]=3path[3]=1dist[4]=∞path[4]=-1dist[5]=∞path[5]=-11{1,3}3dist[2]=7path[2]=3--dist[4]=11path[4]=3dist[5]=5path[5]=32{1,3,5}5dist[2]=7path[2]=3--dist[4]=11path[4]=3--3{1,3,5,2}2----dist[4]=9path[4]=2--4{1,3,5,2,4}4--------效率分析每次從T中尋找一個最小dist值的頂點k加入到S(找最小值時間復(fù)雜度O(n)),并修改T中剩余頂點的dist值。對于n個頂點的圖G,這個過程需要重復(fù)n-1次,所以算法時間復(fù)雜度為O(n2)。若在尋找最小dist值過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論