




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、圖論模型圖論模型2圖論模型圖論模型圖論基本概念圖論基本概念最短路徑算法最短路徑算法最小生成樹算法最小生成樹算法遍歷性問題遍歷性問題二分圖與匹配二分圖與匹配網(wǎng)絡(luò)流問題網(wǎng)絡(luò)流問題關(guān)鍵路徑問題關(guān)鍵路徑問題系統(tǒng)監(jiān)控模型系統(tǒng)監(jiān)控模型著色模型著色模型31 1、圖論的基本概念、圖論的基本概念問題問題1(1(哥尼斯堡七橋哥尼斯堡七橋問題問題):): 能否從任一陸地出發(fā)通過每座橋恰好一次而能否從任一陸地出發(fā)通過每座橋恰好一次而回到出發(fā)點?回到出發(fā)點?4歐拉指出:歐拉指出: 如果每塊陸地所連接的橋都是偶數(shù)座,則從任一如果每塊陸地所連接的橋都是偶數(shù)座,則從任一陸地出發(fā),必能通過每座橋恰好一次而回到出發(fā)地陸地出發(fā),必
2、能通過每座橋恰好一次而回到出發(fā)地. .5問題問題2(2(哈密頓環(huán)球旅行哈密頓環(huán)球旅行問題問題):): 十二面體的十二面體的2020個頂點代表世界上個頂點代表世界上2020個城市,個城市,能否從某個城市出發(fā)在十二面體上依次經(jīng)過每個能否從某個城市出發(fā)在十二面體上依次經(jīng)過每個城市恰好一次最后回到出發(fā)點?城市恰好一次最后回到出發(fā)點?歐拉問題是歐拉問題是“邊遍歷邊遍歷”,哈密爾頓問題是,哈密爾頓問題是“點遍歷點遍歷”6問題問題3(3(四色問題四色問題):): 對任何一張地圖進(jìn)行著色,兩個共同邊界的國家染不同的顏對任何一張地圖進(jìn)行著色,兩個共同邊界的國家染不同的顏色,則只需要四種顏色就夠了色,則只需要四種
3、顏色就夠了. .問題問題4(4(關(guān)鍵路徑問題關(guān)鍵路徑問題):): 一項工程任務(wù)一項工程任務(wù), ,大到建造一座大壩大到建造一座大壩, ,一座體育中心一座體育中心, ,小至組裝小至組裝一臺機床一臺機床, ,一架電視機一架電視機, , 都要包括許多工序都要包括許多工序. .這些工序相互約束這些工序相互約束, ,只有在某些工序完成之后只有在某些工序完成之后, , 一個工序才能開始一個工序才能開始. . 即它們之間存在即它們之間存在完成的先后次序關(guān)系完成的先后次序關(guān)系, ,一般認(rèn)為這些關(guān)系是預(yù)知的一般認(rèn)為這些關(guān)系是預(yù)知的, , 而且也能夠而且也能夠預(yù)計完成每個工序所需要的時間預(yù)計完成每個工序所需要的時間
4、. . 這時工程領(lǐng)導(dǎo)人員迫切希望了解最少需要多少時間才能夠完這時工程領(lǐng)導(dǎo)人員迫切希望了解最少需要多少時間才能夠完成整個工程項目成整個工程項目, , 影響工程進(jìn)度的要害工序是哪幾個?影響工程進(jìn)度的要害工序是哪幾個? 圖的定義圖的定義 圖論中的圖論中的“圖圖”并不是通常意義下的幾何圖形或物體的形并不是通常意義下的幾何圖形或物體的形狀圖狀圖, , 而是以一種抽象的形式來表達(dá)一些確定的事物之間的聯(lián)而是以一種抽象的形式來表達(dá)一些確定的事物之間的聯(lián)系的一個數(shù)學(xué)系統(tǒng)系的一個數(shù)學(xué)系統(tǒng). . 定義定義1 一個有序二元組一個有序二元組(V, E ) 稱為一個稱為一個圖圖, 記為記為G = (V, E ), 其中其
5、中 V稱為稱為G的頂點集的頂點集, V , 其元素稱為其元素稱為頂點頂點或或結(jié)點結(jié)點, 簡稱簡稱點點; E稱為稱為G的邊集的邊集, 其元素稱為其元素稱為邊邊, 它聯(lián)結(jié)它聯(lián)結(jié)V 中的兩個點中的兩個點, 如如果這兩個點是無序的果這兩個點是無序的, 則稱該邊為則稱該邊為無向邊無向邊, 否則否則, 稱為稱為有向邊有向邊. 如果如果V = v1, v2, , vn是有限非空點集是有限非空點集, 則稱則稱G為為有限圖有限圖或或n階圖階圖. 8 如果如果E的每一條邊都是無向邊的每一條邊都是無向邊, 則稱則稱G為為無向圖無向圖( (如圖如圖1)1); 如如果果E的每一條邊都是有向邊的每一條邊都是有向邊, 則稱
6、則稱G為為有向圖有向圖( (如圖如圖2)2); 否則否則, 稱稱G為為混合圖混合圖. 圖圖1 1 圖圖2 2并且常記并且常記: : V = v1, v2, , vn, |V | = n ;E = e1, e2, , em(ek=vivj ) , |E | = m.稱點稱點vi , vj為邊為邊vivj的的端點端點. 在有向圖中在有向圖中, 稱點稱點vi , vj分別為邊分別為邊vivj的的始點始點和和終點終點. 該圖稱為該圖稱為(n,m)圖圖9 對于一個圖對于一個圖G = (V, E ), 人們常用圖形來表示它人們常用圖形來表示它, 稱稱其為其為圖解圖解. 凡是有向邊凡是有向邊, 在圖解上都用
7、箭頭標(biāo)明其方向在圖解上都用箭頭標(biāo)明其方向. 例如例如, 設(shè)設(shè)V = v1 , v2 , v3 , v4, E = v1v2 , v1v3 , v1v4 , v2v3 , v2v4 , v3v4, 則則G = (V, E ) 是一個有是一個有4個頂點和個頂點和6條邊的圖條邊的圖, G的圖解如下圖所示的圖解如下圖所示. 10 一個圖會有許多外形不同的圖解一個圖會有許多外形不同的圖解, , 下面兩個圖表示同一個圖下面兩個圖表示同一個圖G = (V, E )的圖解的圖解. .這兩個圖互為這兩個圖互為同構(gòu)圖同構(gòu)圖, ,今后將不計較這種外形今后將不計較這種外形上的差別上的差別, ,而用一個容易理解的、確定
8、的圖解去表示一個圖而用一個容易理解的、確定的圖解去表示一個圖. . 11 有邊聯(lián)結(jié)的兩個點稱為有邊聯(lián)結(jié)的兩個點稱為相鄰的點相鄰的點, 有一個公共端點的邊稱為有一個公共端點的邊稱為相相鄰邊鄰邊. 邊和它的端點稱為邊和它的端點稱為互相關(guān)聯(lián)互相關(guān)聯(lián). 常用常用d(v)表示圖表示圖G中與頂點中與頂點v關(guān)聯(lián)關(guān)聯(lián)的邊的數(shù)目的邊的數(shù)目, d(v)稱為頂點稱為頂點v的的度數(shù)度數(shù). 對于有向圖對于有向圖,還有還有出度出度和和入度入度之之分分. 用用N(v)表示圖表示圖G中所有與頂點中所有與頂點v相鄰的頂點的集合相鄰的頂點的集合. d(v1)= d(v3)= d(v4)=4, d(v2)=2dout(v1)= d
9、out (v3)= dout (v4)=2, dout(v2)=1din(v1)= din(v3)= din(v4)=2, din(v2)=112握手定理握手定理握手定理:握手定理:無向圖中,所有結(jié)點的度數(shù)之和等于2m。右圖:推論推論1:無向圖中必有偶數(shù)個度數(shù)為奇數(shù)的結(jié)點。推論推論2:有向圖中所有結(jié)點的出度之和等于入度之和。d(v1)= d(v3)= d(v4)=4, d(v2)=2mvdnii2)(1147*2)(1niivd我們今后只討論我們今后只討論有限簡單圖有限簡單圖: (1) (1) 頂點個數(shù)是有限的頂點個數(shù)是有限的; (2) (2) 任意一條邊有且只有兩個不同的點與它相互關(guān)聯(lián)任意一
10、條邊有且只有兩個不同的點與它相互關(guān)聯(lián); (3) (3) 若是無向圖若是無向圖, , 則任意兩個頂點最多只有一條邊與之相則任意兩個頂點最多只有一條邊與之相聯(lián)結(jié)聯(lián)結(jié); (4) (4) 若是有向圖若是有向圖, , 則任意兩個頂點最多只有兩條邊與之相則任意兩個頂點最多只有兩條邊與之相聯(lián)結(jié)聯(lián)結(jié). . 當(dāng)兩個頂點有兩條邊與之相聯(lián)結(jié)時,這兩條邊的方向當(dāng)兩個頂點有兩條邊與之相聯(lián)結(jié)時,這兩條邊的方向相反相反. . 如果某個有限圖不滿足如果某個有限圖不滿足(2)(3)(4),(2)(3)(4),可在某條邊上增設(shè)頂點可在某條邊上增設(shè)頂點使之滿足使之滿足. .14 定義定義2 若將圖若將圖G的每一條邊的每一條邊e都對
11、應(yīng)一個實數(shù)都對應(yīng)一個實數(shù)F (e), 則稱則稱F (e)為該邊的為該邊的權(quán)權(quán), 并稱圖并稱圖G為為賦權(quán)圖賦權(quán)圖(網(wǎng)絡(luò)網(wǎng)絡(luò)), 記為記為G = (V, E , F ). 定義定義3 任意兩點均有通路的圖稱為任意兩點均有通路的圖稱為連通圖連通圖. 定義定義4 連通而無圈的圖稱為連通而無圈的圖稱為樹樹, 常用常用T表示樹表示樹. 常用的圖常用的圖給定圖G= 和 G = 是兩個圖,如果有 V V 和 E E,則稱圖G是圖 G 的子圖子圖。若V =V 稱圖G是圖 G 的生成生成子圖子圖;若將圖G的每一條邊e都對應(yīng)一個實數(shù)F(e),則稱F(e)為該邊的權(quán),并稱圖G為賦權(quán)圖賦權(quán)圖(網(wǎng)絡(luò)網(wǎng)絡(luò)), 記為G =
12、。任意兩點均有通路的圖稱為連通圖。連通圖。連通而無圈的圖稱為樹,樹,常用T=表示樹。 若圖G是圖 G 的生成子圖,且G又是一棵樹,則稱G是圖G 的生成樹生成樹。例例 Ramsey問題問題:問題:任何6個人的聚會,其中總會有3個互相認(rèn)識或3人互相不認(rèn)識。圖論模型:圖論模型:用紅、藍(lán)兩種顏色對6個頂點的完全圖K6的邊邊進(jìn)行任意著色,則不論如何著色必然都存在一個紅色的K3或一個藍(lán)色的K3 。對應(yīng)關(guān)系:每個人即為一個結(jié)點;人與人之間的關(guān)系即為對應(yīng)關(guān)系:每個人即為一個結(jié)點;人與人之間的關(guān)系即為一條邊一條邊例例 Ramsey問題圖論證明:圖論證明:用紅、藍(lán)兩種顏色對K6的邊邊進(jìn)行著色,K6的任意一個頂點均
13、有5條邊與之相連接,這5條邊必有3條邊的顏色是相同的,不妨設(shè)為藍(lán)色(如圖)與這3條邊相關(guān)聯(lián)的另外3個節(jié)點之間的3條邊,若都為紅色,則形成紅色的紅色的K3;若另外3個節(jié)點之間的3條邊有一條為藍(lán)色,則與上面的藍(lán)色邊形成藍(lán)色的藍(lán)色的K3;因此必然存在一個紅色的K3或一個藍(lán)色的K3 。18例例 Ramsey問題Ramsey數(shù):數(shù):R(3,3)=6;R(3,4)=9;。例例 過河問題過河問題問題:問題:一擺渡人欲將一只狼、一頭羊、一籃菜從河西渡過河到河?xùn)|。由于船小,一次只能帶一物過河,并且狼與羊,羊與菜不能獨處,給出渡河方法。這里顯然不能用一個節(jié)點表示一個物體。一個物體可能在河?xùn)|,也可能在河西,也可能在
14、船上,狀態(tài)表示不清楚。另外,問題也可以分成幾個小問題,如:問題是否能解?有幾種不同的解法?最快的解決方案是什么?例例 過河問題過河問題解:解:用四維0-1向量表示(人,狼,羊,菜)在河西岸的狀態(tài)(在河西岸則分量取1,否則取0),共有24 =16 種狀態(tài)。在河?xùn)|岸的狀態(tài)類似記作。由題設(shè),狀態(tài)(0,1,1,0),(0,0,1,1),(0,1,1,1)是不允許的;其對應(yīng)狀態(tài):(1,0,0,1), (1,1,0,0),(1,0,0,0)也是不允許的。以可允許的以可允許的10個狀態(tài)向量作為個狀態(tài)向量作為頂點頂點,將可能互相轉(zhuǎn)移的狀,將可能互相轉(zhuǎn)移的狀態(tài)用態(tài)用邊邊連接起來構(gòu)成一個圖。連接起來構(gòu)成一個圖。利
15、用圖論的相關(guān)知識即可回答原問題。例例 過河問題過河問題(1,1,1,1) (1,1,1,0) (1,1,0,1) (1,0,1,1) (1,0,1,0)(0,0,0,0) (0,0,0,1) (0,0,1,0) (0,1,0,0) (0,1,0,1)(0,1,0,1) (0,1,0,0) (0,0,1,0) (0,0,0,1) (0,0,0,0)(1,0,1,0) (1,0,1,1) (1,1,0,1) (1,1,1,0) (1,1,1,1)河西河西=(人人,狼狼,羊羊,菜菜) 河?xùn)|河?xùn)|=(人人,狼狼,羊羊,菜菜) 將10個頂點分別記為A1, A2, , A10 , 從圖中易得到兩條路:A1
16、A6 A3 A7 A2 A8 A5 A10;A1 A6 A3 A9 A4 A8 A5 A10.問題的轉(zhuǎn)換:問題的轉(zhuǎn)換: 過河問題是否能解?即:圖中A1到A10是否連通? 有幾種不同的解法?即: A1到A10之間有多少條不同的路徑? 最快的解決方案是什么?即: A1到A10最短路徑有哪些?22圖的矩陣表示圖的矩陣表示 鄰接矩陣:鄰接矩陣:鄰接矩陣表示了點與點之間的鄰接關(guān)鄰接矩陣表示了點與點之間的鄰接關(guān)系系. .一個一個n階圖階圖G的鄰接矩陣的鄰接矩陣A = (aij )nn , 其中其中 ., 0;, 1EvEvaijijij0101100101001010A23無向圖無向圖G的鄰接矩陣的鄰接矩
17、陣A是一個對稱矩陣是一個對稱矩陣. . 0101101101011110A 權(quán)矩陣權(quán)矩陣 一個一個n階賦權(quán)圖階賦權(quán)圖G = (V, E, F)的權(quán)矩陣的權(quán)矩陣A = (aij ) nn , 其中其中 .,;0),(EvjiEvvvFaijijjiij有限簡單圖基本有限簡單圖基本上可用權(quán)矩陣來上可用權(quán)矩陣來表示表示. .2405420370860A無向圖無向圖G的權(quán)矩陣的權(quán)矩陣A是一個對稱矩陣是一個對稱矩陣. . 02420737064360A25 關(guān)聯(lián)矩陣:關(guān)聯(lián)矩陣:一個有一個有m條邊的條邊的n階有向圖階有向圖G的關(guān)聯(lián)的關(guān)聯(lián)矩陣矩陣A = (aij )nm , 其中其中 若若vi是是ej的始點
18、的始點;若若vi是是ej的終點的終點;若若vi與與ej不關(guān)聯(lián)不關(guān)聯(lián). ., 0, 1, 1ija 有向圖的關(guān)聯(lián)矩陣每列的元素中有且僅有一個有向圖的關(guān)聯(lián)矩陣每列的元素中有且僅有一個1,1,有且僅有且僅有一個有一個 - - 1. 1. 1101100011011000000111011001A26 一個有一個有m條邊的條邊的n階無向圖階無向圖G的關(guān)聯(lián)矩陣的關(guān)聯(lián)矩陣A = (aij )nm , 其中其中 若若vi與與ej關(guān)聯(lián)關(guān)聯(lián);若若vi與與ej不關(guān)聯(lián)不關(guān)聯(lián). ., 0, 1ija 無向圖的關(guān)聯(lián)矩陣每列的元素中有且僅有兩個無向圖的關(guān)聯(lián)矩陣每列的元素中有且僅有兩個1. 1. 1101001010100
19、11001000111A2 2、最短路徑、最短路徑算法算法 定義定義1 設(shè)設(shè)P(u, v) 是賦權(quán)圖是賦權(quán)圖G = (V, E , F) 中從點中從點u到到v的路徑的路徑, 用用E(P) 表示路徑表示路徑P(u, v)中全部邊的集合中全部邊的集合, 記記)()()(PEeeFPF則稱則稱F (P)為路徑為路徑P(u, v) 的的權(quán)權(quán)或或長度長度( (距離距離) ). 定義定義2 若若P0 (u, v) 是是G 中連接中連接u, v的路徑的路徑, 且對任意在且對任意在G 中連中連接接u, v的路徑的路徑P (u, v)都有都有F (P0)F(P), 則稱則稱P0 (u, v) 是是G 中連接中連
20、接u, v的的最短路最短路. 28重要性質(zhì):重要性質(zhì): 若若v0 v1 vm 是是圖圖G中從中從v0到到vm的最短路的最短路, 則則 1km, v0v1 vk 必為必為G中從中從v0到到vk的最短路的最短路. 即:最短路是一條路,且最短路的任一段也是最短路即:最短路是一條路,且最短路的任一段也是最短路. 求非負(fù)賦權(quán)圖求非負(fù)賦權(quán)圖G中某一點到其它各點最短路,一般用中某一點到其它各點最短路,一般用Dijkstra標(biāo)號算法;求非負(fù)賦權(quán)圖上任意兩點間的最短路,一般用標(biāo)號算法;求非負(fù)賦權(quán)圖上任意兩點間的最短路,一般用Floyd算法算法. . 這兩種算法均適用于有向非負(fù)賦權(quán)圖這兩種算法均適用于有向非負(fù)賦權(quán)
21、圖. . 下面分別介紹兩種算法的基本過程下面分別介紹兩種算法的基本過程. .29Dijkstra算法算法指標(biāo)指標(biāo)(a為起點)為起點) 設(shè)設(shè)T為為V的子集,的子集,P=V-T且且aT,對所有,對所有tT,設(shè)設(shè) l(t)表示從表示從a到到t的所有通路中距離最短的一條的長度,的所有通路中距離最短的一條的長度,且這條路徑中不包含且這條路徑中不包含T中其他的結(jié)點,則稱中其他的結(jié)點,則稱l(t)為為t關(guān)于關(guān)于集合集合P的指標(biāo),若不存在這樣的路徑,這記的指標(biāo),若不存在這樣的路徑,這記l(t)= 注:注:l(t)不一定是從不一定是從a到到t的最短路徑,因為最短路徑中可能包含的最短路徑,因為最短路徑中可能包含T
22、中其中其他的節(jié)點。他的節(jié)點。定理定理1 若若t是是T中關(guān)于中關(guān)于P由最小指標(biāo)的結(jié)點,則由最小指標(biāo)的結(jié)點,則l(t)是是a和和t之間的最短距之間的最短距離。離。定理定理2 設(shè)設(shè) T為為V的子集,的子集,P=V-T,設(shè),設(shè) (1)對對P中的任一點中的任一點p,存在一條從存在一條從a到到p的最短路徑的最短路徑,這條路徑僅有這條路徑僅有P中的中的點構(gòu)成點構(gòu)成, (2)對于每一點對于每一點t,它關(guān)于它關(guān)于P的指標(biāo)為的指標(biāo)為l(t),令令x為最小指標(biāo)所在的點為最小指標(biāo)所在的點, 即即: (3)令令P=P Ux,T=T-x,l(t)表示表示T中結(jié)點中結(jié)點t關(guān)于關(guān)于P的指標(biāo)的指標(biāo),則則 ),()(),(min
23、)( txwxltltlTttlxl),(min)(30Dijkstra算法算法(求(求a點到其他點的最短路徑)點到其他點的最短路徑)1、初始化,、初始化,P=a,T=V-a,對每個結(jié)點,對每個結(jié)點t計算指標(biāo)計算指標(biāo) l(t)=w(a,t) 2、設(shè)、設(shè)x為為T中關(guān)于中關(guān)于P有最小指標(biāo)的點有最小指標(biāo)的點, 即即:l(x)=min(l(t) (tT), 3、若、若T=,則算法結(jié)束則算法結(jié)束; 否則否則,令令P=P Ux,T=T-x 按照公式按照公式l(t)=minl(t),l(x)+w(x,t), 計算計算T中每一個結(jié)點中每一個結(jié)點t關(guān)于關(guān)于P的指標(biāo)的指標(biāo). 4、P代替代替P,T代替代替T,重復(fù)步
24、驟重復(fù)步驟2,3 ( 其中:其中:w(x,y)為圖的權(quán)矩陣)為圖的權(quán)矩陣) 31改進(jìn)改進(jìn)Dijkstra算法算法(求(求a點到其他點的最短路徑)點到其他點的最短路徑)1、初始化,、初始化,P=a,T=V-a,對每個結(jié)點,對每個結(jié)點t計算指標(biāo)計算指標(biāo) l(t)=w(a,t) ,pro(t)=a;2、設(shè)、設(shè)x為為T中關(guān)于中關(guān)于P有最小指標(biāo)的點有最小指標(biāo)的點, 即即:l(x)=min(l(t) (tT);3、若、若T=,則算法結(jié)束則算法結(jié)束; 否則否則,令令P=P Ux,T=T-x 按照公式按照公式l(t)=minl(t),l(x)+w(x,t), 計算計算T中每一個結(jié)點中每一個結(jié)點t關(guān)于關(guān)于P的指
25、標(biāo)的指標(biāo). 若若 l(x)+w(x,t) l(t), pro(t)=x;4、P代替代替P,T代替代替T,重復(fù)步驟重復(fù)步驟2,3 ( 其中:其中:w(x,y)為圖的權(quán)矩陣)為圖的權(quán)矩陣) 32例例 求下圖中求下圖中A A點到其他點的最短路點到其他點的最短路. .Floyd算法算法(求任意兩點的最短路徑)(求任意兩點的最短路徑) 設(shè)設(shè)A = (aij )nn為賦權(quán)圖為賦權(quán)圖G = (V, E, F)的權(quán)矩陣的權(quán)矩陣, dij表示表示從從vi到到vj點的距離點的距離, rij表示從表示從vi到到vj點的最短路中前一個點點的最短路中前一個點的編號的編號. 賦初值賦初值. 對所有對所有i, j, dij
26、 = aij, rij = j. k = 1. 轉(zhuǎn)向轉(zhuǎn)向. 更新更新dij , rij . 對所有對所有i, j, 若若dik + dk jdij , 則令則令dij = dik + dkj , rij = k, 轉(zhuǎn)向轉(zhuǎn)向; 終止判斷終止判斷. 若若k = n終止終止; 否則令否則令k = k + 1, 轉(zhuǎn)向轉(zhuǎn)向. 最短路線可由最短路線可由rij得到得到. 34例例 求下圖中任意兩點間的最短路求下圖中任意兩點間的最短路. .03030350201502051504510500A028338235803065508525035205540150352053015035452510450D5333
27、33143333113111133230142212142220R例例 設(shè)備更新問題設(shè)備更新問題 某企業(yè)每年年初某企業(yè)每年年初, ,都要作出決定都要作出決定, ,如果繼續(xù)使用舊設(shè)備如果繼續(xù)使用舊設(shè)備, ,要付要付維修費;若購買一臺新設(shè)備維修費;若購買一臺新設(shè)備, ,要付購買費要付購買費. .試制定一個試制定一個5 5年更新計年更新計劃劃, ,使總支出最少使總支出最少. . 已知設(shè)備在每年年初的購買費分別為已知設(shè)備在每年年初的購買費分別為11,11, 12,12,13. 11,11, 12,12,13. 使使用不同時間設(shè)備所需的維修費分別為用不同時間設(shè)備所需的維修費分別為5,6,8,11,18.
28、5,6,8,11,18. 解解 設(shè)設(shè)bi 表示設(shè)備在第表示設(shè)備在第i 年年初的購買費年年初的購買費, ,ci 表示設(shè)備使用表示設(shè)備使用i 年年后的維修費后的維修費, , V= v1, v2, , v6,點點vi表示第表示第i 年年初購進(jìn)一臺新設(shè)備年年初購進(jìn)一臺新設(shè)備, ,虛設(shè)一個虛設(shè)一個點點v6表示第表示第5 5年年底年年底. . E = vivj | 1ij6,每條每條邊邊vivj表一臺設(shè)備,從第表一臺設(shè)備,從第i年年初購買使年年初購買使用到第用到第j年年初報廢年年初報廢.ijkkijicbvvF1)(36 這樣上述設(shè)備更新問題就變?yōu)椋涸谟邢蛸x權(quán)圖這樣上述設(shè)備更新問題就變?yōu)椋涸谟邢蛸x權(quán)圖G
29、= (V, E, F )(圖解如下圖解如下) )中求中求v1到到v6的最短路問題的最短路問題. 37 由實際問題可知由實際問題可知, ,設(shè)備使用三年后應(yīng)當(dāng)更新設(shè)備使用三年后應(yīng)當(dāng)更新, ,因此刪因此刪除該圖中除該圖中v1到到v5 , ,v1到到v6 , ,v2到到v6的連線;又設(shè)備使用一年的連線;又設(shè)備使用一年后就更新則不劃算后就更新則不劃算, ,因此再刪除該圖中因此再刪除該圖中v1v2 , ,v2v3 , ,v3v4 , ,v4v5 , ,v5v6 五條連線后得到五條連線后得到從上圖中容易得到從上圖中容易得到v1到到v6只有兩條路:只有兩條路:v1v3v6和和v1v4v6. . 而這兩條路都是
30、而這兩條路都是v1到到v6的最短路的最短路. .3 3、最小生成樹、最小生成樹 由樹的定義不難知道由樹的定義不難知道, 任意一個連通的任意一個連通的(n,m)圖圖G適當(dāng)去掉適當(dāng)去掉m - - n +1條邊后條邊后, 都可以變成樹都可以變成樹, 這棵樹稱為圖這棵樹稱為圖G的的生成樹生成樹. 設(shè)設(shè)T是圖是圖G的一棵生成樹的一棵生成樹, 用用F(T)表示樹表示樹T中所有邊的權(quán)數(shù)之和中所有邊的權(quán)數(shù)之和, F(T)稱為稱為樹樹T的權(quán)的權(quán). 一個連通圖一個連通圖G的生成樹一般不止一棵的生成樹一般不止一棵, 圖圖G的所有生成樹中權(quán)的所有生成樹中權(quán)數(shù)最小的生成樹稱為圖數(shù)最小的生成樹稱為圖G的的最小生成樹最小生
31、成樹-Minimum-cost Spanning Tree (MST). 求最小生成樹問題有很廣泛的實際應(yīng)用求最小生成樹問題有很廣泛的實際應(yīng)用. 例如例如, 把把n個鄉(xiāng)鎮(zhèn)用高個鄉(xiāng)鎮(zhèn)用高壓電纜連接起來建立一個電網(wǎng)壓電纜連接起來建立一個電網(wǎng), 使所用的電纜長度之和最短使所用的電纜長度之和最短, 即費即費用最小用最小, 就是一個求最小生成樹問題就是一個求最小生成樹問題. 39KruskalKruskal算算法法 從未選入樹中的邊中選取權(quán)重最小的且不構(gòu)成回路從未選入樹中的邊中選取權(quán)重最小的且不構(gòu)成回路的邊加入到樹中的邊加入到樹中. .(判斷回路比較麻煩)(判斷回路比較麻煩)算法過程:算法過程:1.將各
32、邊按權(quán)值從小到大進(jìn)行排序?qū)⒏鬟叞礄?quán)值從小到大進(jìn)行排序2.找出權(quán)值最小且找出權(quán)值最小且不與已加入最小生成樹集合的邊構(gòu)成回路不與已加入最小生成樹集合的邊構(gòu)成回路的的邊。若符合條件,則加入最小生成樹的集合中。不符合條件則邊。若符合條件,則加入最小生成樹的集合中。不符合條件則繼續(xù)遍歷圖,尋找下一個最小權(quán)值的邊。繼續(xù)遍歷圖,尋找下一個最小權(quán)值的邊。3.遞歸重復(fù)步驟遞歸重復(fù)步驟1,直到找出,直到找出n-1條邊為止,得到最小生成樹。條邊為止,得到最小生成樹。時間復(fù)雜度時間復(fù)雜度只和邊有關(guān),可以證明其時間復(fù)雜度為只和邊有關(guān),可以證明其時間復(fù)雜度為O(mlogm)40求最小生成樹求最小生成樹?2?4?4?2?1
33、?3?7?2?8?6?7?3?B?C?A?F?D?G?E?2?2?1?3?6?3?E?G?D?F?A?C?B41PrimPrim算法算法 把結(jié)點分成兩個集合,已加入樹中的把結(jié)點分成兩個集合,已加入樹中的( (P P) )和未加入樹中的和未加入樹中的( (Q Q) ),然后每次選擇一個點在然后每次選擇一個點在P P中一個點在中一個點在Q Q中的權(quán)重最小的邊,加入樹中的權(quán)重最小的邊,加入樹中,并把相應(yīng)點加入中,并把相應(yīng)點加入P P中。中。類似地類似地, ,可定義連通圖可定義連通圖G 的最大生成樹的最大生成樹. .算法過程:算法過程:1:初始化:任取一個節(jié)點:初始化:任取一個節(jié)點u加入生成樹加入生成
34、樹,P=u0, Q=V-u0, 生成樹的邊集生成樹的邊集TE=。2:在所有:在所有uP,vQ的邊的邊(u,v) (稱為可選邊集稱為可選邊集)中,找一條權(quán)重最小的)中,找一條權(quán)重最小的邊邊(u1,v1),將此邊加進(jìn)集合,將此邊加進(jìn)集合TE中,并將中,并將v加入加入P中。同時對與中。同時對與v關(guān)聯(lián)的邊,若關(guān)聯(lián)的邊,若另一個端點已經(jīng)在另一個端點已經(jīng)在P中,則從可選邊集中刪除,否則加入可選邊集。中,則從可選邊集中刪除,否則加入可選邊集。3:如果:如果P=V,則算法結(jié)束;否則重復(fù)步驟,則算法結(jié)束;否則重復(fù)步驟2。 我們可以算出當(dāng)我們可以算出當(dāng)U=V時,步驟時,步驟2共執(zhí)行了共執(zhí)行了n1次,次,TE中也增
35、加了中也增加了n1條條邊,這邊,這n1條邊就是需要求出的最小生成樹的邊。條邊就是需要求出的最小生成樹的邊。例例 選址問題選址問題 現(xiàn)準(zhǔn)備現(xiàn)準(zhǔn)備在在 n 個個居民點居民點v1, v2, , vn中設(shè)置一銀行中設(shè)置一銀行. .問問設(shè)在哪個點設(shè)在哪個點, ,可使最大服務(wù)距離最小可使最大服務(wù)距離最小? ? 若設(shè)置兩個銀行若設(shè)置兩個銀行, ,問設(shè)在哪兩個點問設(shè)在哪兩個點? ? 模型假設(shè)模型假設(shè) 假設(shè)各假設(shè)各個個居民點都有條件設(shè)置銀行居民點都有條件設(shè)置銀行, ,并并有路相連有路相連, ,且路長已知且路長已知. . 模型建立與求解模型建立與求解 用用Floyd算法求出任意兩算法求出任意兩個個居民居民點點vi
36、 , vj 之間的最短距離之間的最短距離, ,并用并用dij 表示表示. . 設(shè)置一個銀行設(shè)置一個銀行, ,銀行設(shè)銀行設(shè)在在 vi 點點的最大服務(wù)距離為的最大服務(wù)距離為.,.,2 , 1,max1niddijnji43求求k, ,使使.min1inikdd 即若設(shè)置一個銀行即若設(shè)置一個銀行, ,則銀行設(shè)在則銀行設(shè)在 vk 點點, ,可使最大服務(wù)距離最小可使最大服務(wù)距離最小. . 設(shè)置兩個銀行設(shè)置兩個銀行, ,假設(shè)銀行設(shè)假設(shè)銀行設(shè)在在vs , vt 點點使最大服務(wù)距離最小使最大服務(wù)距離最小. .記記.,minmax),(1jkiknkddjid則則s, ,t 滿足:滿足:).,(min),(1j
37、idtsdnji進(jìn)一步進(jìn)一步, ,若設(shè)置多個銀行呢?若設(shè)置多個銀行呢?444 4、遍歷性問題、遍歷性問題一、歐拉圖一、歐拉圖G=(V,E)為一連通無向圖經(jīng)過G中每條邊至少一次的回路稱為巡回巡回;經(jīng)過G中每條邊正好一次的巡回稱為歐拉巡回歐拉巡回;存在歐拉巡回的圖稱為歐拉圖。歐拉圖。二、中國郵遞員問題二、中國郵遞員問題(CPPchinese?postman?problem)?一名郵遞員負(fù)責(zé)投遞某個街區(qū)的郵件。如何為他(她)設(shè)計一條最短的投遞路線(從郵局出發(fā),經(jīng)過投遞區(qū)內(nèi)每條街道至少一次,最后返回郵局)?這一問題是我國管梅谷教授1962年首先提出,國際上稱之為中國郵遞員問題。?45解法:解法: 若本
38、身就是歐拉圖,則直接可以找到一條歐拉巡回就是若本身就是歐拉圖,則直接可以找到一條歐拉巡回就是本問題的解。本問題的解。 若不是歐拉圖,必定有偶數(shù)個奇度數(shù)結(jié)點,在這些奇度若不是歐拉圖,必定有偶數(shù)個奇度數(shù)結(jié)點,在這些奇度數(shù)點之間添加一些邊,使之變成歐拉圖,再找出一個歐數(shù)點之間添加一些邊,使之變成歐拉圖,再找出一個歐拉巡回。拉巡回。具體解法:具體解法:Fleury算法算法+Edmonds最小對集算最小對集算法法46三、哈密爾頓圖三、哈密爾頓圖G=(V,E)為一連通無向圖經(jīng)過G中每點一次且正好一次的路徑稱為哈密爾頓路徑哈密爾頓路徑;經(jīng)過G中每點一次且正好一次的回路稱為哈密爾頓回路哈密爾頓回路;存在哈密爾
39、頓回路的圖稱為哈密爾頓圖。哈密爾頓圖。四、旅行商問題四、旅行商問題(TSPTraveling?Salesman?Problem)一名推銷員準(zhǔn)備前往若干城市推銷產(chǎn)品。如何為他(她)設(shè)計一條最短的旅行路線? 即:從駐地出發(fā),經(jīng)過每個城市恰好一次,最后返回駐地(最小哈(最小哈密爾頓回路)密爾頓回路)對于n個節(jié)點的旅行商問題,n個節(jié)點的任意一個全排列都是問題的一個可能解(假設(shè)任意兩個點之間都有邊)。G個節(jié)點的全排列有(n-1)!個,因此間題歸結(jié)為在(n-1)!個回路中選取最小回路。 TSP問題的解法屬于NPNP完全問題完全問題,一般只研究其近似解法47最鄰近算法最鄰近算法(1) 選取任意一個點作為起始
40、點,找出與該點相關(guān)聯(lián)的權(quán)重最小的邊,形成一條初始路徑.(2) 找出與最新加入到路徑中的點相關(guān)聯(lián)的權(quán)重最小的邊加入到路徑中,且要求不再路徑中產(chǎn)生回路.(3) 重復(fù)(2)直到所有的結(jié)點都加入到路徑中.(4) 將起點和最后加入的結(jié)點之間的邊加入到路徑中,形成Hamilton回路.其他數(shù)值算法:其他數(shù)值算法: 人工神經(jīng)元方法, 遺傳算法等等5 5、二分圖與匹配、二分圖與匹配 定義定義1 1 設(shè)設(shè)X, ,Y 都是非空有限集都是非空有限集, ,且且XY = , , E xy| |xX, ,yY, , 稱稱G =(X, Y, E)為為二部圖二部圖. . 二部圖可認(rèn)為是有限簡單無向圖二部圖可認(rèn)為是有限簡單無向
41、圖. . 如果如果X中的每個點都與中的每個點都與Y中的每個點鄰接中的每個點鄰接, ,則稱則稱G =(X, Y, E)為為完備二部圖完備二部圖. . 若若F:ER + +, ,則稱則稱G =(X, Y, E, F )為為二部賦權(quán)圖二部賦權(quán)圖. . 二部賦權(quán)圖的權(quán)矩陣一般記作二部賦權(quán)圖的權(quán)矩陣一般記作A=(aij )|X|Y | , ,其中其中aij = F (xi yj ). .49 定義定義2 2 設(shè)設(shè)G =(X, Y, E)為二部圖為二部圖, ,且且M E. .若若M中任意兩條邊中任意兩條邊在在G中均不鄰接中均不鄰接, ,則稱則稱M是是二部圖二部圖G的一個的一個匹配匹配. . 定義定義3 3
42、 設(shè)設(shè)M是二部圖是二部圖G的一個匹配的一個匹配, ,如果如果G的每一個點都是的每一個點都是M中邊的頂中邊的頂點點, ,則稱則稱M是二部圖是二部圖G的的完美匹配完美匹配; 如果如果G中沒有另外的匹配中沒有另外的匹配M0 , ,使使| |M0| | |M|,|,則稱則稱M是二部圖是二部圖G的的最大匹配最大匹配. . 在二部賦權(quán)圖在二部賦權(quán)圖G =(X, Y, E, F )中中, ,權(quán)數(shù)最大的最大匹配權(quán)數(shù)最大的最大匹配M稱為稱為二部賦權(quán)圖二部賦權(quán)圖G的的最佳匹配最佳匹配. . 顯然顯然, ,每個完美匹配都是最大匹配每個完美匹配都是最大匹配, ,反之不一定成立反之不一定成立. .50工作安排問題之一工
43、作安排問題之一 給給n個工作人員個工作人員x1, x2, , xn安排安排n項工作項工作y1, y2, , yn. . n個工作人員中每個人能勝任一項或幾項工作個工作人員中每個人能勝任一項或幾項工作, 但并但并不是所有不是所有工作人員都能從事任何一項工作工作人員都能從事任何一項工作. 比如比如x1能做能做y1, y2工作工作, x2能能做做y2, y3, y4工作等工作等. 這樣便提出一個問題這樣便提出一個問題, 對所有的工作人員能不能都分配對所有的工作人員能不能都分配一件他所能勝任的工作?一件他所能勝任的工作? 我們構(gòu)造一個二部圖我們構(gòu)造一個二部圖G = ( X, Y, E ), 這里這里X
44、 = x1, x2, , xn,Y = y1, y2, , yn, 并且當(dāng)且僅當(dāng)工作人員并且當(dāng)且僅當(dāng)工作人員xi勝任工作勝任工作yj時時, xi與與yj才相鄰才相鄰. 于是于是, 問題轉(zhuǎn)化為求二部圖的一個完美匹配問題轉(zhuǎn)化為求二部圖的一個完美匹配. 因為因為 |X|=|Y|, 所以完美匹配即為最大匹配所以完美匹配即為最大匹配. 51 求二部圖求二部圖G = ( X, Y, E )的最大匹配算法的最大匹配算法( (匈牙利算法匈牙利算法, ,交替鏈交替鏈算法算法) )迭代步驟迭代步驟: 從從G的任意匹配的任意匹配M開始開始. . 將將X中中M的所有的所有非飽和點非飽和點都給以標(biāo)號都給以標(biāo)號0 0和標(biāo)
45、記和標(biāo)記* *, , 轉(zhuǎn)向轉(zhuǎn)向. . M的非飽和點即非的非飽和點即非M的某條邊的頂點的某條邊的頂點. . 若若X中所有有標(biāo)號的點都已去掉了標(biāo)記中所有有標(biāo)號的點都已去掉了標(biāo)記* *, , 則則M是是G的最大的最大匹配匹配. . 否則任取否則任取X中一個既有標(biāo)號又有標(biāo)記中一個既有標(biāo)號又有標(biāo)記* *的點的點xi , , 去掉去掉xi的標(biāo)的標(biāo)記記* *, , 轉(zhuǎn)向轉(zhuǎn)向. . 找出在找出在G中所有與中所有與xi鄰接的點鄰接的點yj , , 若所有這樣的若所有這樣的yj都已有標(biāo)都已有標(biāo)號號, , 則轉(zhuǎn)向則轉(zhuǎn)向, , 否則轉(zhuǎn)向否則轉(zhuǎn)向. .52 對與對與xi鄰接且尚未給標(biāo)號的鄰接且尚未給標(biāo)號的yj都給定標(biāo)號
46、都給定標(biāo)號i. . 若所有的若所有的 yj 都是都是M的的飽和點飽和點, ,則轉(zhuǎn)向則轉(zhuǎn)向, ,否則逆向返回否則逆向返回. . 即由即由其中其中M的任一個非飽和點的任一個非飽和點 yj 的標(biāo)號的標(biāo)號i 找到找到xi , ,再由再由 xi 的標(biāo)號的標(biāo)號k 找到找到 yk , , ,最后由最后由 yt 的標(biāo)號的標(biāo)號s找到標(biāo)號為找到標(biāo)號為0 0的的xs時結(jié)束時結(jié)束, ,獲得獲得M- -增廣路增廣路xs yt xi yj , , 記記P = xs yt , , xi yj ,重新記重新記M為為M P, ,轉(zhuǎn)向轉(zhuǎn)向. . 不必理會不必理會M- -增廣路增廣路的定義的定義. . M P = MP MP, ,
47、 是對稱差是對稱差. . 將將yj在在M中與之鄰接的點中與之鄰接的點xk , ,給以標(biāo)號給以標(biāo)號 j 和標(biāo)記和標(biāo)記* *, , 轉(zhuǎn)向轉(zhuǎn)向. .53例例 求下圖所示二部圖求下圖所示二部圖G的最大匹配的最大匹配解解 取初始匹配取初始匹配M0 = x2 y2 , x3 y3 , x5 y5 ( (上圖粗線所示上圖粗線所示). ). 給給X中中M0的兩個非飽和點的兩個非飽和點x1, ,x4都給以標(biāo)號都給以標(biāo)號0 0和標(biāo)記和標(biāo)記* * ( (如如下圖所示下圖所示). ). 去掉去掉x1的標(biāo)記的標(biāo)記*, 將與將與x1鄰接的兩個點鄰接的兩個點y2, y3都給以標(biāo)號都給以標(biāo)號1.1. 因因為為y2, y3都是
48、都是M0的兩個飽和點的兩個飽和點, ,所以將它們在所以將它們在M0中鄰接的兩個點中鄰接的兩個點x2, x3都給以相應(yīng)的標(biāo)號和標(biāo)記都給以相應(yīng)的標(biāo)號和標(biāo)記* (如下圖所示如下圖所示). 54 去掉去掉x2的標(biāo)記的標(biāo)記*, 將與將與x2鄰接且尚未給標(biāo)號的三個點鄰接且尚未給標(biāo)號的三個點y1, y4, y5都給以標(biāo)號都給以標(biāo)號2 (如下圖所示如下圖所示). 因為因為y1是是M0的非飽和點的非飽和點, 所以順著標(biāo)號逆向返回依次得到所以順著標(biāo)號逆向返回依次得到x2, y2, 直到直到x1為為0為止為止. .于是得到于是得到M0的增廣路的增廣路x1 y2x2 y1, 記記P = x1 y2 , y2x2 ,
49、x2 y1. 取取M1 = M0P = x1 y2 , x2 y1 , x3 y3 , x5 y5, 則則M1是比是比M多一邊的匹配多一邊的匹配(如下圖所示如下圖所示). 55 再給再給X中中M1的非飽和點的非飽和點x4給以標(biāo)號給以標(biāo)號0和標(biāo)記和標(biāo)記*, 然后去掉然后去掉x4的的標(biāo)記標(biāo)記*, 將與將與x4鄰接的兩個點鄰接的兩個點y2, y3都給以標(biāo)號都給以標(biāo)號4. 因為因為y2, y3都是都是M1的兩個飽和點的兩個飽和點, , 所以將它們在所以將它們在M1中鄰接的兩中鄰接的兩個點個點x1, x3都給以相應(yīng)的標(biāo)號和標(biāo)記都給以相應(yīng)的標(biāo)號和標(biāo)記* (如下圖所示如下圖所示). 去掉去掉x1的標(biāo)記的標(biāo)記
50、*, 因為與因為與x1鄰接的兩個點鄰接的兩個點y2, y3都有標(biāo)號都有標(biāo)號4, 所所以去掉以去掉x3的標(biāo)記的標(biāo)記*. 而與而與x3鄰接的兩個點鄰接的兩個點y2, y3也都有標(biāo)號也都有標(biāo)號4, 此時此時X中所有有標(biāo)號中所有有標(biāo)號的點都已去掉了標(biāo)記的點都已去掉了標(biāo)記*(如下圖所示如下圖所示), 因此因此M1是是G的最大匹配的最大匹配. G不存在飽和不存在飽和X的每個點的匹配的每個點的匹配, 當(dāng)然也不存在完美匹配當(dāng)然也不存在完美匹配.56工作安排問題之二工作安排問題之二 給給n個工作人員個工作人員x1, x2, , xn安排安排n項工作項工作y1, y2, , yn. . 如如果每個工作人員工作效率
51、不同果每個工作人員工作效率不同, 要求工作分配的同時考慮總效要求工作分配的同時考慮總效率最高率最高. 我們構(gòu)造一個二部賦權(quán)圖我們構(gòu)造一個二部賦權(quán)圖G = ( X, Y, E , F ), 這里這里X = x1, x2, , xn,Y = y1, y2, , yn, F(xi yj )為工作人員為工作人員xi勝任工作勝任工作yj時的工作效率時的工作效率. 則問題轉(zhuǎn)化為:求二部賦權(quán)圖則問題轉(zhuǎn)化為:求二部賦權(quán)圖G的最佳匹配的最佳匹配. 在求在求G 的最佳匹配時的最佳匹配時, 總可以假設(shè)總可以假設(shè)G為完備二部賦權(quán)圖為完備二部賦權(quán)圖. .若若xi與與yj不相鄰不相鄰, 可令可令F(xi yj )=0.
52、同樣地同樣地, 還可虛設(shè)點還可虛設(shè)點x或或y, ,使使|X|=|Y|. .如此就將如此就將G 轉(zhuǎn)化為完備二部賦權(quán)圖轉(zhuǎn)化為完備二部賦權(quán)圖, ,而且不會影響結(jié)果而且不會影響結(jié)果. 57 定義定義 設(shè)設(shè)G =( (X, Y, E, F) )為完備的二部賦權(quán)圖為完備的二部賦權(quán)圖, , 若若L:X Y R + + 滿足:滿足: xX, yY, L(x) + L(y)F(xy), ,則稱則稱L為為G的一個的一個可行點標(biāo)記可行點標(biāo)記, ,記相應(yīng)的生成子圖為記相應(yīng)的生成子圖為GL =( (X, Y, EL , F),),這里這里EL = xyE| |L(x) + L (y) = F (xy). 求完備二部賦權(quán)
53、圖求完備二部賦權(quán)圖G = (X, Y, E, F )的最佳匹配算法迭代步驟:的最佳匹配算法迭代步驟: 設(shè)設(shè)G =( (X, Y, E, F) )為完備的二部賦權(quán)圖為完備的二部賦權(quán)圖, ,L是其一個初始可是其一個初始可行點標(biāo)記行點標(biāo)記, ,通常取通常取 L(x) = max F (x y) | yY , xX, L(y) = 0, , yY. 58M是是GL的一個匹配的一個匹配. . 若若X的每個點都是飽和的的每個點都是飽和的,則則M是最佳匹配是最佳匹配.否則取否則取M的非飽和點的非飽和點uX,令令S =u, T = ,轉(zhuǎn)向轉(zhuǎn)向. 記記NL(S)=v|uS,uvGL. 若若NL(S)= T, 則
54、則GL沒有完美匹配沒有完美匹配, 轉(zhuǎn)向轉(zhuǎn)向. 否則轉(zhuǎn)向否則轉(zhuǎn)向. 調(diào)整標(biāo)記調(diào)整標(biāo)記, 計算計算aL=minL(x) + L (y) - - F (xy)|xS, yYT. 由此得新的可行點標(biāo)記由此得新的可行點標(biāo)記.),(,)(,)()(ccLLTSvvLTvavLSvavLvH 令令L = H, GL = GH , 重新給出重新給出GL的一個匹配的一個匹配M, 轉(zhuǎn)向轉(zhuǎn)向. 取取yNL (S) T , 若若y是是M的飽和點的飽和點, 轉(zhuǎn)向轉(zhuǎn)向. 否則否則, 轉(zhuǎn)向轉(zhuǎn)向. 設(shè)設(shè)x yM, 則令則令S = S x , T = T y , 轉(zhuǎn)向轉(zhuǎn)向. 在在GL中的中的u - - y路是路是M- - 增廣
55、路增廣路, 設(shè)為設(shè)為P, 并令并令 M = M P, 轉(zhuǎn)向轉(zhuǎn)向. 596 6、網(wǎng)絡(luò)流問題、網(wǎng)絡(luò)流問題 定義定義1 1 設(shè)設(shè)G =(V, E )為有向圖為有向圖, ,在在V中指定一點稱為中指定一點稱為發(fā)點發(fā)點( (記為記為vs ),),和另一點稱為和另一點稱為收點收點( (記為記為vt ), ), 其余點叫做中間點其余點叫做中間點. . 對每一條邊對每一條邊vivjE, ,對應(yīng)一個非負(fù)實數(shù)對應(yīng)一個非負(fù)實數(shù)Cij , ,稱為它的稱為它的容量容量. . 這樣的這樣的G稱為稱為容量網(wǎng)容量網(wǎng)絡(luò)絡(luò), ,簡稱簡稱網(wǎng)絡(luò)網(wǎng)絡(luò), ,記作記作G = (V, E, C ). . 定義定義2 2 網(wǎng)絡(luò)網(wǎng)絡(luò)G = (V,
56、 E, C )中任一條邊中任一條邊vivj有流量有流量 fij , ,稱集合稱集合 f = fij 為網(wǎng)絡(luò)為網(wǎng)絡(luò)G上的一個上的一個流流. . 滿足下述條件的流滿足下述條件的流 f 稱為稱為可行流可行流: ( (限制條件限制條件) )對每一邊對每一邊vivj , ,有有0 fij Cij ; ( (平衡條件平衡條件) )對于中間點對于中間點vk有有fik =fkj , , 即中間點即中間點vk的輸入的輸入量量 = 輸出輸出量量. . 60 如果如果 f 是可行流是可行流, ,則對收、發(fā)點則對收、發(fā)點vt、vs有有fsi =fjt =Wf , ,即從即從vs點發(fā)出的物質(zhì)總量點發(fā)出的物質(zhì)總量 = v
57、t點輸入的量點輸入的量. .Wf 稱為網(wǎng)絡(luò)流稱為網(wǎng)絡(luò)流 f 的總流量的總流量. . 上述概念可以這樣來理解上述概念可以這樣來理解, ,如如G是一個運輸網(wǎng)絡(luò)是一個運輸網(wǎng)絡(luò), ,則發(fā)點則發(fā)點vs表示表示發(fā)送站發(fā)送站, ,收點收點vt表示接收站表示接收站, ,中間點中間點vk表示中間轉(zhuǎn)運站表示中間轉(zhuǎn)運站, ,可行流可行流 fij 表表示某條運輸線上通過的運輸量示某條運輸線上通過的運輸量, ,容量容量Cij表示某條運輸線能承擔(dān)的最表示某條運輸線能承擔(dān)的最大運輸量大運輸量, ,Wf 表示運輸總量表示運輸總量. . 可行流總是存在的可行流總是存在的. .比如所有邊的流量比如所有邊的流量 fij = 0就是
58、一個可行流就是一個可行流( (稱為零流稱為零流).).61 所謂所謂最大流問題最大流問題就是在容量網(wǎng)絡(luò)中就是在容量網(wǎng)絡(luò)中, ,尋找流量最大的可行流尋找流量最大的可行流. . 實際問題中實際問題中, ,一個網(wǎng)絡(luò)會出現(xiàn)下面兩種情況:一個網(wǎng)絡(luò)會出現(xiàn)下面兩種情況: 發(fā)點和收點都不止一個發(fā)點和收點都不止一個. . 解決的方法是再虛設(shè)一個發(fā)點解決的方法是再虛設(shè)一個發(fā)點vs和一個收點和一個收點vt , ,發(fā)點發(fā)點vs到所有到所有原發(fā)點邊的容量都設(shè)為無窮大原發(fā)點邊的容量都設(shè)為無窮大, , 所有原收點到收點所有原收點到收點vt 邊的容量都邊的容量都設(shè)為無窮大設(shè)為無窮大. . 網(wǎng)絡(luò)中除了邊有容量外網(wǎng)絡(luò)中除了邊有容
59、量外, ,點也有容量點也有容量. . 解決的方法是將所有有容量的點分成兩個點解決的方法是將所有有容量的點分成兩個點, ,如點如點v有容量有容量Cv , ,將點將點v分成兩個點分成兩個點v和和v, ,令令C(vv ) = Cv . . 62最小費用流問題最小費用流問題 這里我們要進(jìn)一步探討不僅要使網(wǎng)上的流達(dá)到最大這里我們要進(jìn)一步探討不僅要使網(wǎng)上的流達(dá)到最大, ,或者達(dá)或者達(dá)到要求的預(yù)定值到要求的預(yù)定值, ,而且還要使運輸流的費用是最小的而且還要使運輸流的費用是最小的, ,這就是最小這就是最小費用流問題費用流問題. . 最小費用流問題的一般提法:最小費用流問題的一般提法: 已知網(wǎng)絡(luò)已知網(wǎng)絡(luò)G =
60、(V, E, C ), ,每條邊每條邊vivjE 除了已給容量除了已給容量Cij外外, ,還還給出了單位流量的費用給出了單位流量的費用bij(0).). 所謂最小費用流問題就是求一個總流量已知的可行流所謂最小費用流問題就是求一個總流量已知的可行流 f = f ij 使得總費用使得總費用ijEvvijfbfbji)(最小最小. .63 特別地特別地, ,當(dāng)要求當(dāng)要求 f 為最大流時為最大流時, , 即為即為最小費用最大流問題最小費用最大流問題. . 設(shè)網(wǎng)絡(luò)設(shè)網(wǎng)絡(luò)G = (V, E, C), 取初始可行流取初始可行流 f 為零流為零流, 求解最小費用流求解最小費用流問題的迭代步驟:問題的迭代步驟:
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024福建福州榕發(fā)(福州)置業(yè)有限公司招聘筆試參考題庫附帶答案詳解
- 全面監(jiān)督報告范文
- 取水工程專項報告范文
- 青少年勵志公益報告范文
- 青海省扶貧調(diào)研報告范文
- 2025年度洗車服務(wù)與廣告合作承包合同
- 二零二五年度果樹種植土地托管承包與農(nóng)村旅游發(fā)展合作協(xié)議
- 二零二五年度物流企業(yè)司機安全責(zé)任執(zhí)行協(xié)議
- 2025年度蔬菜育苗與農(nóng)業(yè)產(chǎn)業(yè)扶貧合作合同
- 二零二五年度交通事故財產(chǎn)損失賠償協(xié)議
- 李德新中醫(yī)基礎(chǔ)理論講稿
- Photoshop圖像處理課件(完整版)
- 05844 全國 江蘇 自考國際商務(wù)英語課后習(xí)題答案 詳解
- CPK計算表格EXCEL模板
- 重慶道路交通事故認(rèn)定書(簡易程序)樣本
- 2022年獸醫(yī)外科手術(shù)學(xué)作業(yè)題參考答案
- T∕CAMDI 009.1-2020 無菌醫(yī)療器械初包裝潔凈度 第1部分:微粒污染試驗方法 氣體吹脫法
- 上風(fēng)高科項目管理測試v
- 高中生物規(guī)范答題(課堂PPT)
- 酒店sop管理手冊
- 10KV變電所電氣調(diào)試施工方案
評論
0/150
提交評論