




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、圖論中幾個典型問題的算法及其Matlab實現(xiàn) 圖論的產(chǎn)生與發(fā)展 1.格尼斯堡七橋問題 哥尼希堡城有一座橫貫全市的普雷格爾 河,河中有兩個島嶼,兩岸及島嶼有七座橋相連,如圖(1)2.四色問題3.哈密爾頓周游世界問題第一節(jié) 圖的基本概念 1.圖的定義 圖由一些點(diǎn)和點(diǎn)之間的連線所組成。 用V=v1,v2,表示全體頂點(diǎn)的集合,用E=e1,e2,表示所有邊的集合,如果對于E中任一條邊,在V中都有一對定點(diǎn)(vi,vj)和它對應(yīng),則稱由V和G組成的集體為一個圖,記為G=(V,E),簡記為G。 2.基本概念 關(guān)聯(lián):如果頂點(diǎn)v是邊e的一個端點(diǎn),則稱邊e和頂點(diǎn)v相關(guān)聯(lián)。 鄰接:對于頂點(diǎn)u和v,若(u,v)屬于E,
2、則稱u和v是鄰接的,對于兩條邊,若有共同的頂點(diǎn),則稱這兩條邊是鄰接的。 階:圖中頂點(diǎn)的個數(shù)。 度:與圖中某個頂點(diǎn)關(guān)聯(lián)的邊的個數(shù),稱為該頂點(diǎn)的度。 環(huán):兩個端點(diǎn)重合的邊。 多重邊:關(guān)聯(lián)于同一對頂點(diǎn)的兩條或兩條以上的邊。 簡單圖:沒有環(huán)也沒有重邊的圖。 途徑:圖G=(V,E)的一個點(diǎn)和邊交替出現(xiàn)的有限非空序列。 跡:一條沒有重復(fù)邊的途徑。 路:一條各頂點(diǎn)互不相同的途徑。 閉途徑:起點(diǎn)與終點(diǎn)相同的途徑。 閉跡:起點(diǎn)與終點(diǎn)相同的跡。 圈(回路):起點(diǎn)與終點(diǎn)重合的路。 連通:若頂點(diǎn)u和v之間存在一條路,則稱u和v連通。 連通圖:任意兩個頂點(diǎn)都連通的圖。 完全圖:任意兩個頂點(diǎn)之間都有一個頂點(diǎn)相連的簡單圖
3、橋(割邊):設(shè)G是連通圖,若從G中刪除邊e后,圖不再連通,則稱邊e為圖G的橋(割邊)。 無向圖:每條邊都沒有方向的圖。 有向圖:每條邊都有方向的圖。 賦權(quán)圖:在圖的每條邊上標(biāo)明了數(shù)量關(guān)系,可能是距離、時間、費(fèi)用、電阻等等,這些數(shù)值稱為相應(yīng)邊的權(quán),邊上帶權(quán)的圖稱為賦權(quán)圖。同時稱帶權(quán)的有向圖為網(wǎng)絡(luò)。 子圖:設(shè)有兩個圖G=(V,E),G1=(V1,E1),若V1是V的子集,E1是E的子集,則稱G1是G的子圖。 第二節(jié) 圖的矩陣表示 要將圖的信息存到計算機(jī)中,需要使用專門設(shè)計的數(shù)據(jù)結(jié)構(gòu),比較常見的是鄰接矩陣、前向星、鄰接表、鏈?zhǔn)角跋蛐沁@四種方式。此外還有結(jié)構(gòu)比較復(fù)雜的十字鏈表方式。 無向圖的關(guān)聯(lián)矩陣:
4、設(shè)圖G=(V,E)的頂點(diǎn)集和邊集分別為V(G)=v1,v2,vn ,E(G)=e1,e2,em,用Bij表示頂點(diǎn)vi與邊ej關(guān)聯(lián)的次數(shù),把行對應(yīng)頂點(diǎn),列對應(yīng)邊的矩陣B(G)=(bij)nm稱為圖G的關(guān)聯(lián)矩陣。 無向圖的鄰接矩陣:設(shè)圖G=(V,E)的頂點(diǎn)集為V(G)=v1,v2,vn ,用aij表示G中頂點(diǎn)vi與vj之間的邊數(shù),則n階方陣M(G)=(aij)nn稱為G的鄰接矩陣。 無向賦權(quán)圖鄰接矩陣的定義:設(shè)圖G=(V,E)的頂點(diǎn)集為V(G)=v1,v2,vn,其鄰接矩陣為n階對稱陣A,元素定義為aii=0,當(dāng)頂點(diǎn)vi與vj之間沒有連線時,aij=inf,當(dāng)頂點(diǎn)vi與vj之間有連線時,aij=邊
5、vivj的權(quán)值。 例:寫出下圖的鄰接矩陣 有向圖的關(guān)聯(lián)矩陣:設(shè)圖G=(V,E)的頂點(diǎn)集和邊集分別為V(G)=v1,v2,vn ,E(G)=e1,e2,em,則矩陣B=(bij)nm為有向圖G的關(guān)聯(lián)矩陣,其元素定義為,bij=1,頂點(diǎn)vi是邊ej的起點(diǎn); bij=-1,頂點(diǎn)vi是邊ej的終點(diǎn); bij=0,頂點(diǎn)vi是邊ej不關(guān)聯(lián); bij=-2,ej為環(huán),且關(guān)聯(lián)與vi。例:寫出下圖的關(guān)聯(lián)矩陣 有向圖的鄰接矩陣:設(shè)圖G=(V,E)的頂點(diǎn)集為V(G)=v1,v2,vn ,用aij表示G中以頂點(diǎn)vi為起點(diǎn)與以vj為終點(diǎn)之間的邊數(shù),則n階方陣M(G)=(aij)nn稱為G的鄰接矩陣。 有向賦權(quán)圖鄰接矩陣
6、的定義:設(shè)圖G=(V,E)的頂點(diǎn)集為V(G)=v1,v2,vn,其鄰接矩陣為n階矩陣A,元素定義為,當(dāng)起點(diǎn)vi與終點(diǎn)vj之間沒有連線時,aij=inf,當(dāng)起點(diǎn)vi與終vj之間有連線時,aij=邊vivj的權(quán)值。第三節(jié) 幾個典型問題 1.最短路徑問題 實際問題:給定連接若干城市的鐵路網(wǎng),找一條給定兩城市間的最短線路。 最短路徑定義:在賦權(quán)圖G=(V,E)中,設(shè)頂點(diǎn)vi,vj是圖的兩個頂點(diǎn),從頂點(diǎn)vi到vj的路徑長度定義為路徑上各條邊的權(quán)值之和,從頂點(diǎn)vi到vj的所有路徑中,其中路徑長度最小的一條路徑。 重要性質(zhì):最短路是一條路徑,且最短路上任一段也是最短路。求單源最短路徑的Dijkstra算法
7、算法描述: (1)算法思想:設(shè)G=(V,E)是一個賦權(quán)有向圖,設(shè)集合S用來保存已求得最短路徑的頂點(diǎn)序號,集合U為其余未確定最短路徑的頂點(diǎn)集合,按照最短路徑長度遞增的次序依次把U中頂點(diǎn)加入S。 總之,從源點(diǎn)v到各個頂點(diǎn)層層推進(jìn)過程中,要保證每一步走的都是最短路徑。 (2)算法步驟: a.初始時,S只包含源點(diǎn),S=v,U=其余頂點(diǎn)。 b.從U中選取一個頂點(diǎn)k,使dist(v,k)最短,把k加入S。 c.以k為新的中間點(diǎn),對于U中頂點(diǎn)u,如果dist(v,k)+dist(k,u)fxy,則稱f為最大流(Maximum Flow),記為fmax。 運(yùn)輸網(wǎng)絡(luò)中一個重要的問題是要找出它的一個最大流fmax
8、。 定義4:給定網(wǎng)絡(luò)N=(V,A,C)是一個單源、單匯的網(wǎng)絡(luò),若V被分成兩個非空子集S, ,使得源 ,稱 是分離x和y的一個割集(Cut Set)。割集 中所有始點(diǎn)在S中,終點(diǎn)在 中的弧的容量之和,稱為 的割集容量,記為 。割集容量最小的割稱為最小割(Minimum Cut)。 例:在右圖所示的網(wǎng)絡(luò)中,選S=x,v3,v4, ,則(x,v1),(v3,y),(v4,y)是N的一個割集,割集容量為 =4+2+3=9。 如選S=x, 則(x,v1),(x,v3),(x,v4) 也是N的一個割集,此時割集容量為11. 并且,在任何網(wǎng)絡(luò)中,最大流的流量等于最小割集的容量 定義5:設(shè)f是網(wǎng)絡(luò)N中的一個可
9、行流,P是一條xy路,則P滿足下列兩個條件之一的弧(vi,vj)稱為增廣弧(Incrementing Arc)。 a. ,且fij0。 如果P中的弧都是增廣弧,則P是關(guān)于f的增廣路(Incrementing Path)。并且若N中有一f增廣路P,則f不是最大流。如圖,(x,y)-路xv2v1v3y是f增廣路求最大流問題的FF算法 最大流問題的算法思想: 首先從任何一個可行流(如零流)出發(fā),判斷網(wǎng)絡(luò)N中是否有關(guān)于f的xy增廣路。若沒有這樣的增廣路,則f就是最大流;若有這樣的增廣路,則對f進(jìn)行調(diào)整,得到一個新的流量更大的可行流f ;對f 再重復(fù)上述過程,直到找不出xy增廣路為止。 算法關(guān)鍵與核心:
10、尋找xy增廣路。算法步驟:(1)標(biāo)號過程1).給源x以標(biāo)號 (永久標(biāo)號)。2).選擇一個已標(biāo)號的頂點(diǎn)vi,對vi的所有未給標(biāo)號的鄰接點(diǎn)作如下處理:a.若弧 ,且fij0,令 , 并給vj以標(biāo)號 。c.重復(fù)2)過程直到匯y被標(biāo)號,或不再有頂點(diǎn)可標(biāo)號為止。如果y得到標(biāo)號,說明存在一條xy增廣路,轉(zhuǎn)步驟(2)調(diào)整過程;若y未獲得標(biāo)號,標(biāo)號過程無法進(jìn)行,這時,令S是所有標(biāo)號點(diǎn)集,T是所有未標(biāo)號點(diǎn)集,則(S,T)是一個割集,則割集(S,T)的容量就是最大流的流量。(2)調(diào)整過程a.令 ,調(diào)整增廣路P中的流量如下:得到新的可行流f =fij,顯然總流量為b.去掉所有標(biāo)號,回到步驟(1),重復(fù)上述過程,直到
11、無法進(jìn)行為止,結(jié)束。 例:求下圖所示的網(wǎng)絡(luò)最大流 C=0 5 4 3 0 0 0 0; 0 0 0 0 5 3 0 0; 0 0 0 0 0 3 2 0; 0 0 0 0 0 0 2 0; 0 0 0 0 0 0 0 4; 0 0 0 0 0 0 0 3; 0 0 0 0 0 0 0 5; 0 0 0 0 0 0 0 0; 算法Matlab實現(xiàn): q = 0 5 4 2 0 0 0 0 0 0 0 0 4 1 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 w = 11 e = 9 0 0 1 0 0 0 0
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 纖支鏡檢查的護(hù)理
- 1歲以下嬰兒培訓(xùn)課件
- 房地產(chǎn)項目合作開發(fā)合同書
- 語文課外閱讀特色課程
- 樂器電商課程介紹
- 規(guī)范楷書系統(tǒng)課件
- 德法形策課程介紹
- 河北石油職業(yè)技術(shù)大學(xué)《生物醫(yī)學(xué)工程整合課程》2023-2024學(xué)年第二學(xué)期期末試卷
- 人教版數(shù)學(xué)六年級下冊第二單元《百分?jǐn)?shù)(二)》同步練習(xí)含答案
- 遂寧能源職業(yè)學(xué)院《插畫創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東省國控設(shè)計集團(tuán)有限公司招聘筆試真題2024
- 2024年山東水利技師學(xué)院招聘初級專業(yè)技術(shù)崗位人員考試真題
- 2024年廣東公需課《百縣千鎮(zhèn)萬村高質(zhì)量發(fā)展工程與城鄉(xiāng)區(qū)域協(xié)調(diào)發(fā)展》試題及答案
- 2025版《保障中小企業(yè)款項支付條例》學(xué)習(xí)解讀課件
- 2025年浙江安防職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫必考題
- 奔馳事故留修專員年終總結(jié)
- 2025電工(高級技師)技能鑒定精練考試指導(dǎo)題庫及答案(濃縮500題)
- 患者隱私保護(hù)培訓(xùn)課件
- 《校園安全教育(第二版)》 課件全套 項目1-8 走進(jìn)安全教育 -確保實習(xí)安全
- 2025年人民法院信息技術(shù)服務(wù)中心招聘應(yīng)屆高校畢業(yè)生高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2025年全球及中國財務(wù)報表審計服務(wù)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
評論
0/150
提交評論