




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、圖的連通性問題第7章 圖圖的定義和術(shù)語圖的存儲結(jié)構(gòu)圖的遍歷有向無環(huán)圖及其應(yīng)用最短路徑最短路徑問題7.6 最短路徑 典型用途:交通問題。如:城市A到城市B有多條線路,但每條線路的交通費(或所需時間)不同,那么,如何選擇一條線路,使總費用(或總時間)最少?問題抽象:在帶權(quán)有向圖中A點(源點)到達B點(終點)的多條路徑中,尋找一條各邊權(quán)值之和最小的路徑,即最短路徑。(注:最短路徑與最小生成樹不同,路徑上不一定包含n個頂點)最短路徑問題7.6 最短路徑 一頂點到其余各頂點兩種常見的最短路徑問題:一、單源最短路徑用Dijkstra(迪杰斯特拉)算法二、所有頂點間的最短路徑用Floyd(弗洛伊德)算法任意
2、兩頂點之間單源最短路徑 (Dijkstra算法)7.6 最短路徑 目的: 設(shè)一有向圖G=(V, E),已知各邊的權(quán)值,以某指定點v0為源點,求從v0到圖的其余各點的最短路徑。限定各邊上的權(quán)值大于或等于0。源點從FA的路徑有4條: FA: 24 FBA: 518=23 FBCA:5+7+9=21 FDCA:25+12+9=36又:從FB的最短路徑是哪條?從FC的最短路徑是哪條?v0(v0, v1)10源點終點 最 短路 徑路徑長度(v0, v1, v2)(v0, v3, v2)(v0, v3)30 v1 v2 v3 v4100(v0, v4)(v0, v3, v4)(v0, v3, v2, v4
3、)例: 60 509070討論:計算機如何自動求出這些最短路徑?(v0, v1, v2, v4)60 V0 V1 V2 V3 V4V0 10 30 100V1 50 V2 50 10 V3 20 60 V4 20 V0V2V1V4V3101003010506020單源最短路徑 (Dijkstra算法)7.6 最短路徑 V0 V1 V2 V3 V4V0 10 30 100V1 50 V2 50 10 V3 20 60 V4 20 V0V2V1V4V3101003010506020思考:單源最短路徑 (Dijkstra算法)7.6 最短路徑 算法思想: 先找出從源點v0到各終點vk的直達路徑(v0
4、, vk), 即通過一條弧到達的路徑。 從這些路徑中找出一條長度最短的路徑(v0, u), 然后對其余各條路徑進行適當調(diào)整: 若在圖中存在弧(u, vk),且(v0, u)+(u, vk) (v0, vk), 則以路徑(v0, u, vk) 代替(v0, vk) 。在調(diào)整后的各條路徑中,再找長度最短的路徑,依此類推??傊绰窂健伴L度” 遞增的次序來逐步產(chǎn)生最短路徑單源最短路徑 (Dijkstra算法)7.6 最短路徑 給定帶權(quán)有向圖G和源點v, 求從v到G中其余各頂點的最短路徑。V5V0V2V4V1V31003010601020505V0V2V4V3V5V0始點 終點 Di 最短路徑V1V2
5、V3V4 V510301001030100106030100106030100105030100(V0, V2)(V0, V4)(V0, V5)(V0, V2)(V0, V4)(V0, V5)(V0, V2)(V0, V2, V3)(V0, V4)(V0, V5)(V0, V2)(V0, V2, V3)(V0, V4)(V0, V5)(V0, V2)(V0, V4, V3)(V0, V4)(V0, V5)10503090(V0, V2)(V0, V4, V3)(V0, V4)(V0, V4, V5)10503090(V0, V2)(V0, V4, V3)(V0, V4)(V0, V4, V5)
6、10503060(V0, V2)(V0, V4, V3)(V0, V4)(V0, V4, V3, V5)10503060(V0, V2)(V0, V4, V3)(V0, V4)(V0, V4, V3, V5)(v0,v2)+ (v2,v3)(v0,v3)終點 從v0到各終點的dist值和最短路徑v1v2v3v4v5vjS之外的當前最短路徑之頂點60v0,v2,v350v0,v4,v330v0,v490v0,v4, v560v0,v4,v3,v5sv0,v2v0 ,v2 ,v4v0 ,v2 ,v4 ,v3v0 ,v2 ,v4 ,v3 ,v510v0,v230v0,v4100v0, v5v2v4v
7、3v5100v0, v5012345distw0 1 2 3 4 5與最小生成樹的不同點:路徑是累加的!10v0,v250v0,v4,v330v0,v4V5V0V2V4V1V31003010601020505所有頂點對之間的最短路徑(Floyd算法)7.6 最短路徑 問題描述: 已知一個各邊權(quán)值均大于 0 的帶權(quán)有向圖,對每對頂點 vivj,要求求出每一對頂點之間的最短路徑和最短路徑長度。 解決方案: 1. 每次以一個頂點為源點,重復(fù)執(zhí)行迪杰斯特拉算法n次。這樣,便可求得每一對頂點之間的最短路徑??偟膱?zhí)行時間為O(n3)。 2. 形式更直接的弗洛伊德(Floyd)算法。時間復(fù)雜度也為O(n3)
8、。弗洛伊德算法可求解負權(quán)值網(wǎng)絡(luò)!弗洛伊德算法思想7.6 最短路徑 假設(shè)求從頂點Vi到Vj的最短路徑。如果從Vi到Vj有弧,則從Vi到Vj存在一條長度為arcsij的路徑,該路徑不一定是最短路徑,尚需進行n次試探。 首先考慮路徑(Vi,V0,Vj)是否存在(即判別(Vi,V0)、(V0,Vj)是否存在)。如存在,則比較(Vi,Vj)和(Vi,V0,Vj)的路徑長度,取長度較短者為從 Vi到Vj 的中間頂點的序號不大于0 的最短路徑。假如在路徑上再增加一個頂點 V1,依次類推。可同時求得各對頂點間的最短路徑。所有頂點對之間的最短路徑(Floyd算法)7.6 最短路徑 定義一個n階方陣序列 D(-1
9、),D(0),D(1),D(2),D(k),D(n-1)其中: D(-1)ij= arcsij D(k)ij=Min D(k-1)ij, D(k-1)ik+ D(k-1)kj 0kn-1可見, D(1)ij就是從vi到vj的中間頂點的序號不大于1的最短路徑的長度; D(k)ij就是從vi到vj的中間頂點的序號不大于k的最短路徑的長度; D(n-1)ij就是從vi到vj的最短路徑的長度。所有頂點對之間的最短路徑(Floyd算法)7.6 最短路徑 0 4 116 0 23 0 各頂點間的最短路徑及其路徑長度 最短路徑弗洛伊德舉例 0 4 116 0 23 021CABCABCBCAABCABCAB
10、CABCBAABCABCABCABCBAACAB0210210210210P(2)P(1)P(0)P(-1)P2107320564007320664007320611400320611400210210210210D(2)D(1)D(0)D(-1)DCABCBAACAB所有頂點對之間的最短路徑(Floyd算法)7.6 最短路徑5060123451038-4201734042-50560123451nil11nil12nilnilnil223nil3nilnilnil44nil4nilnil5nilnilnil5nilD0P0123451038-42017340425-
11、50-2560123451nil11nil12nilnilnil223nil3nilnilnil4414nil15nilnilnil5nilD1P1123451038-42017340425-50-2560123451nil11nil12nilnilnil223nil3nilnilnil4414nil15nilnilnil5nilD1P11234510384-42017340511425-50-2560123451nil11212nilnilnil223nil3nil224414nil15nilnilnil5nilD2P21234510384-42017340511425-50-2560123
12、451nil11212nilnilnil223nil3nil224414nil15nilnilnil5nilD2P21234510384-4201734051142-1-50-2560123451nil11212nilnilnil223nil3nil224434nil15nilnilnil5nilD3P31234510384-4201734051142-1-50-2560123451nil11212nilnilnil223nil3nil224434nil15nilnilnil5nilD3P312345103-14-4230-41-137405342-1-50-2585160123451nil142124nil421343nil214434nil154345nilD4P412345103-14-4230-41-137405342-1-50-2585160123451nil142124nil421343nil214434nil154345nilD4P412345101-32-4230-41-137405342-1-50-2585160123451nil345124nil421343nil214434nil154345nilD5P512345101-32-4230-41-137405342-1-50-258516
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年微生物駕駛的未來探索試題及答案
- 高校輔導(dǎo)員理論與實踐結(jié)合能力試題及答案
- 2025年注會考試戰(zhàn)略規(guī)劃試題及答案
- 2025注冊會計師考試題型回顧試題及答案
- 2025年證券從業(yè)資格證考試常見短文分析試題及答案
- 物流外包中標方案范本
- 證券市場參與主體角色試題及答案
- 2024年項目管理關(guān)鍵指標設(shè)計的考點試題及答案
- 玻璃制品安全生產(chǎn)與應(yīng)急預(yù)案考核試卷
- 生物農(nóng)藥在病蟲害防治中的綜合評價考核試卷
- 第8課《集字練習(xí)》課件-【知識精研】六年級上冊書法北師大版
- DB37-T 5312-2025 《建筑施工安全防護設(shè)施技術(shù)標準》
- 基于Scrum的軟件產(chǎn)品自動化測試框架研究
- 2025年廣東韶關(guān)南雄市衛(wèi)生健康局下屬事業(yè)單位招聘工作人員67人歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2025年度商鋪租賃代理服務(wù)合同(含獨家代理權(quán))
- (完整版)中醫(yī)醫(yī)院醫(yī)療設(shè)備配置標準(2012年)
- 高壓配電室操作規(guī)程(3篇)
- 2025護坡護岸施工及驗收規(guī)范
- 工程項目不可抗力補充協(xié)議
- 《糖尿病酮癥酸中毒》課件
- 實驗室智能化設(shè)備的技術(shù)發(fā)展與趨勢
評論
0/150
提交評論