最短路徑的特性ppt課件_第1頁
最短路徑的特性ppt課件_第2頁
最短路徑的特性ppt課件_第3頁
最短路徑的特性ppt課件_第4頁
最短路徑的特性ppt課件_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Chapter 25All-Pairs Shortest Path25.1 最短路徑的特性最短路徑的特性 最短路徑的結(jié)構(gòu):一切最短路徑的子路徑均為最短路徑。 如:(vi,vk,vj)為vi到vj的最短路徑,則(vi,vk)必為vi到vk的最短路徑。 即:(vi,vj)=(vi,vk)+w(vk,vj)最短路徑的特性最短路徑的特性 一個直覺的遞迴解:定義d(m)(i,j)為包含至多m個邊自ij的最短路徑長度。則:),(),(),(min),(,0),()1()1()()0(jkwkidjidjidjijijidmmm利用遞迴解計算出最短路徑利用遞迴解計算出最短路徑 令n=|V|,如一圖無負迴圈,

2、則d(n-1)(i,j)即為ij的最短路徑長度。 可以直覺運用動態(tài)規(guī)劃的方式來求出解,但耗時O(|V|3log|V|)反不如直接利用Dijkstra演算法直接求出一切點作為起點到其他點的最短路徑(以Linear array實做耗時O(|V|3)。All-pairs Shortest Paths演算法演算法 輸入:一無負迴圈圖G=(V,E),|V|=n。nn adjacency matrix W=(Wi,j)EvuEvujiwjijiW),( ,),( ,),(,0,All-pairs Shortest Paths演算法演算法 輸出:nn minimum distance matrix D=(D

3、i,j)Di,j=(i,j)nn predecessor matrix =(i,j)假設(shè)ij無路徑則i,j=NIL,否則i,j紀(jì)錄ij最短路徑上j之前的點ikji,jExtend-Shortest-Paths(D,W) nrowsD Let D = (Di,j) be an nn matrixfor i=1 to n do for j=1 to n do Di,j for k=1 to n doDi,jmin(Di,j,Di,k+Wk,j)return DTime Complexity: O(n3)Slow-All-Pairs-Shortest-Paths(G,W) n|V|D(1)Wfor

4、m=2 to n-1 doD(m)Extend-Shortest-Paths(D(m-1),W)return D(n-1)Time Complexity: O(n4)Faster-All-Pairs-Shortest-Paths(G,W) n|V|D(1)=Wm=1while n-1m do D(2m)Extend-Shortest-Paths(D(m),D(m) m = 2mreturn D(m)Time Complexity: O(n3logn)25.2 Floyd-Warshall演算法演算法 主要利用不同的觀察找出新的遞迴式,使得演算法複雜度降低至O(n3),在邊數(shù)多的時候能有比Dij

5、kstra演算法更迅速的求出一切的最短路徑。 假設(shè)一ij的路徑為(i,u1,um,j),則我們稱u1,um為該路徑的Intermediate vertex(中間點)。Floyd-Warshall演算法演算法 假定點集合V=1,n,定義d(m)(i,j)為中間點僅能夠為1,m最短的ij路徑長。故:),(),(),(min),(,),(,0),()1()1()1()()0(jmdmidjidjidjijiwjijidmmmmFloyd-Warshall演算法正確性分析演算法正確性分析 考慮中間點僅能夠為1,k。 如k不在ij最短路徑上,則中間點僅能夠為1,k-1,故此時:d(k)(i,j)=d(k

6、-1)(i,j)。Floyd-Warshall演算法正確性分析演算法正確性分析 如k在ij最短路徑上,則將ik及kj兩段分開看,這兩個路徑必然不能夠有中間點為k,否則按照無負迴圈的假定,ik或kj不是最短路徑,違背最短路徑的性質(zhì)。故此時: d(k)(i,j)=d(k-1)(i,k)+d(k-1)(k,j)。ikj中間點僅有1,k-1中間點僅有1,k-1Floyd-Warshall演算法演算法Floyd-Warshall(G,W) n|V|D(0)Wfor k = 1 to n do for i = 1 to n do for j = 1 to n do if D(k-1)i,jD(k-1)i,

7、k+D(k-1)k,j then D(k)i,jD(k-1)i,k+D(k-1)k,j i,j k,j else D(k)i,jD(k-1)i,jreturn D(n)Time Complexity: O(n3)建造建造Shortest path 初始化i,j時,如i=j或(i,j) E則初始為NIL,否則初始為i。 等執(zhí)行完演算法後,則可利用Single-Source shortest path的方式,藉由Predecessor graph來建立出ij的最短路徑。Floyd-Warshall範(fàn)例範(fàn)例1253438-4174-526Floyd-Warshall範(fàn)例範(fàn)例NILNILNILNILN

8、ILNILNILNILNILNILNILNILNILNILNILNILD544322111 06052047104830)0()0(Floyd-Warshall範(fàn)例範(fàn)例NILNILNILNILNILNILNILNILNILNILNILNILNILNILD51414322111 0620552047104830)1()1(Floyd-Warshall範(fàn)例範(fàn)例NILNILNILNILNILNILNILNILNILNILNILD51414223221211 06205521150471044830)2()2(Floyd-Warshall範(fàn)例範(fàn)例NILNILNILNILNILNILNILNILNILN

9、ILNILD51434223221211 06205121150471044830)3()3(Floyd-Warshall範(fàn)例範(fàn)例NILNILNILNILNILD54341434123412441241 0615820512350471140344130)4()4(Floyd-Warshall範(fàn)例範(fàn)例NILNILNILNILNILD54341434123412441543 0615820512350471140342310)5()5(25.3 Johnsons algorithm Johnsons演算法可用於計算All pairs shortest path問題。 在邊的數(shù)量不多的時候,如|E

10、|=O(|V|log|V|)時,能有比Warshall-Floyd演算法較佳的效能。 其輸入需求是利用Adjacency list表示的圖。Johnsons algorithm Johnsons 演算法利用reweighing來除去負邊,使得該圖可以套用Dijkstra演算法,來達到較高的效能。 Reweighing是將每個點v設(shè)定一個高度h(v),並且調(diào)整邊的weight function w(u,v)成為w(u,v)=w(u,v)+h(u)-h(v)。 令(u,v)如此調(diào)整之後的最短距離,則原先的最短距離(u,v)=(u,v)-h(u)+h(v)。Johnsons algorithmJoh

11、nson(G) compute G, where VG=VGs and EG=EG(s,v):vVGif Bellman-Ford(G,w,s)=False then print “ a neg-weight cycleelse for each vertex v VG set h(v)=(s,v) computed by Bellman-Ford algo. for each edge (u,v)EG w(u,v)=w(u,v)+h(u)-h(v) for each vertex u VG run Dijkstra(G,w,u) to compute (u,v) for each v VG

12、duv=(u,v)-h(u)+h(v)return DJohnsons algorithm範(fàn)例範(fàn)例37428-461-5Johnsons algorithm範(fàn)例範(fàn)例37428-461-5s00000參與一個點s,以及自s拉一條weight為0的邊到每一點。Johnsons algorithm範(fàn)例範(fàn)例-10-5-4037428-461-5s00000執(zhí)行Bellman-Ford演算法,得到自s出發(fā)每一點的最短距離。Johnsons algorithm範(fàn)例範(fàn)例-10-5-4041002130200做完reweightingJohnsons algorithm範(fàn)例範(fàn)例2/10/02/-30/-42/041002130200紅線部分是Shortest-paths tree。點的數(shù)字a/b代表自出發(fā)點(綠色點)出發(fā),到達該點的最短路徑(Reweighting後的圖/原圖)。Johnsons algorithm範(fàn)例範(fàn)例0/02/30/-42/-10/141002130200Johnsons algorithm範(fàn)例範(fàn)例0/42/70/02/30/541002130200Johnsons algorithm範(fàn)例範(fàn)例0/-12/20/-52/-20/041002130200Johnsons algorit

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論