運籌學(xué)8圖與網(wǎng)絡(luò)分析.ppt
《運籌學(xué)8圖與網(wǎng)絡(luò)分析.ppt》由會員分享,可在線閱讀,更多相關(guān)《運籌學(xué)8圖與網(wǎng)絡(luò)分析.ppt(167頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第八章圖與網(wǎng)絡(luò)分析,主要內(nèi)容:8.1圖的基本概念與基本定理8.2樹和最小支撐樹8.3最短路問題8.4最小費用流問題8.5最大流問題8.6網(wǎng)絡(luò)計劃8.7中國郵遞員問題8.7指派問題,8.1圖的基本概念與基本定理,圖論是應(yīng)用非常廣泛的運籌學(xué)分支,它已經(jīng)廣泛地應(yīng)用于物理學(xué)控制論,信息論,工程技術(shù),交通運輸,經(jīng)濟管理,電子計算機等各項領(lǐng)域。對于科學(xué)研究,市場和社會生活中的許多問題,可以同圖論的理論和方法來加以解決。例如,各種通信線路的架設(shè),輸油管道的鋪設(shè),鐵路或者公路交通網(wǎng)絡(luò)的合理布局等問題,都可以應(yīng)用圖論的方法,簡便、快捷地加以解決。,隨著科學(xué)技術(shù)的進步,特別是電子計算機技術(shù)的發(fā)展,圖論的理論獲得了更進一步的發(fā)展,應(yīng)用更加廣泛。如果將復(fù)雜的工程系統(tǒng)和管理問題用圖的理論加以描述,可以解決許多工程項目和管理決策的最優(yōu)問題。因此,圖論越來越受到工程技術(shù)人員和經(jīng)營管理人員的重視。,關(guān)于圖的第一篇論文是瑞士數(shù)學(xué)家歐拉(E.Euler)在1736年發(fā)表的解決“哥尼,斯堡”七橋難題的論文;,德國的哥尼斯堡城有一條普雷格爾河,河中有兩個島嶼,河的兩岸和島嶼之間有七座橋相互連接,(見圖8.1a)當?shù)氐木用駸嶂杂谶@樣一個問題,一個漫步者如何能夠走過這七座橋,并且每座橋只能走過一次,最終回到原出發(fā)地。盡管試驗者很多,但是都沒有成功。為了尋找答案,1736年歐拉將這個問題抽象成圖8.1b所示圖形的一筆畫問題。,哥尼斯堡七橋問題,圖8.1a,A,B,C,D,哥尼斯堡七橋問題可簡化為以下圖形其中的四個頂點都是奇頂點,A,B,C,D,圖8.1b,即能否從某一點開始不重復(fù)地一筆畫出這個圖形,最終回到原點。歐拉在他的論文中證明了這是不可能的,因為這個圖形中每一個頂點都與奇數(shù)條邊相連接,不可能將它一筆畫出,這就是古典圖論中的第一個著名問題。,在實際的生產(chǎn)和生活中,人們?yōu)榱朔从呈挛镏g的關(guān)系,常常在紙上用點和線來畫出各式各樣的示意圖。,例8.1圖8.2是我國北京、上海、重慶等十四個城市之間的鐵路交通圖,這里用點表示城市,用點與點之間的線表示城市之間的鐵路線。諸如此類還有城市中的市政管道圖,民用航空線圖等等。,圖8.2,例8.2有六支球隊進行足球比賽,我們分別用點v1,v6表示這六支球隊,它們之間的比賽情況,也可以用圖反映出來,已知v1隊戰(zhàn)勝v2隊,v2隊戰(zhàn)勝v3隊,v3隊戰(zhàn)勝v5隊,如此等等。這個勝負情況,可以用圖8.3所示的有向圖反映出來,圖8.3,從以上的幾個例子可以看出,我們用點和點之間的線所構(gòu)成的圖,反映實際生產(chǎn)和生活中的某些特定對象之間的特定關(guān)系。一般來說,通常用點表示研究對象,用點與點之間的線表示研究對象之間的特定關(guān)系。由于在一般情況下,圖中的相對位置如何,點與點之間線的長短曲直,對于反映研究對象之間的關(guān)系,顯的并不重要,因此,圖論中的圖與幾何圖,工程圖等本質(zhì)上是不同的。,綜上所述,圖論中的圖是由點和點與點之間的線所組成的。通常,我們把點與點之間不帶箭頭的線叫做邊,帶箭頭的線叫做弧。如果一個圖是由點和邊所構(gòu)成的,那么,稱為無向圖,記作G=(V,E),其中V表示圖G的點集合,E表示圖G的邊集合。連接點vi,vjV的邊記作vi,vj,或者vj,vi。如果一個圖是由點和弧所構(gòu)成的,那么稱為它為有向圖,記作D=(V,A),其中V表示有向圖D的點集合,A表示有向圖D的弧集合。一條方向從vi指向vj的弧,記作(vi,vj)。,例如.圖8.4是一個無向圖G=(V,E),其中V=v1,v2,v3,v4E=v1,v2,v2,v1,v2,v3,v3,v4,v1,v4,v2,v4,v3,v3,圖8.4,圖8.5是一個有向圖D=(V,A)其中V=v1,v2,v3,v4,v5,v6,v7A=(v1,v2),(v1,v3),(v3,v2)(v3,v4),(v2,v4),(v4,v5),(v4,v6),(v5,v3),(v5,v4),(v5,v6),(v6,v7),圖8.5,下面介紹一些常用的名詞:一個圖G或有向圖D中的點數(shù),記作P(G)或P(D),簡記作P,邊數(shù)或者弧數(shù),記作q(G)或者q(D),簡記作q。如果邊vi,vjE,那么稱vi,vj是邊的端點,或者vi,vj是相鄰的。如果一個圖G中,一條邊的兩個端點是相同的,那么稱為這條邊是環(huán),如圖8.4中的邊v3,v3是環(huán)。如果兩個端點之間有兩條以上的邊,那么稱為它們?yōu)槎嘀剡?,如圖8.4中的邊v1,v2,v2,v1。一個無環(huán),無多重邊的圖稱為簡單圖,一個無環(huán),有多重邊的圖稱為多重圖。,以點v為端點的邊的個數(shù)稱為點v的度,記作d(v),如圖84中d(v1)=3,d(v2)=4,d(v3)=4,d(v4)=3。度為零的點稱為弧立點,度為1的點稱為懸掛點。懸掛點的邊稱為懸掛邊。度為奇數(shù)的點稱為奇點,度為偶數(shù)的點稱為偶點。端點的度d(v):點v作為端點的邊的個數(shù)奇點:d(v)=奇數(shù);,偶點:d(v)=偶數(shù);懸掛點:d(v)=1;懸掛邊:與懸掛點連接的邊;孤立點:d(v)=0;空圖:E=,無邊圖,V=v1,v2,v3,v4,v5,v6,v7,d(v1)=3;d(v2)=5;,d(v3)=4;d(v4)=4;,d(v5)=1;d(v6)=3;,d(v7)=0,其中v5為懸掛點,v7為孤立點。,定理8.1所有頂點度數(shù)之和等于所有邊數(shù)的2倍。證明:因為在計算各個點的度時,每條邊被它的兩個端點個用了一次。,定理8.2在任一圖中,奇點的個數(shù)必為偶數(shù)。證明:設(shè)V1,V2分別是圖G中奇點和偶點的集合,由定理8.1,有,因為是偶數(shù),也是偶數(shù),因此,也必是偶數(shù),從而V1中的點數(shù)是偶數(shù)。,圖的連通性:鏈:由兩兩相鄰的點及其相關(guān)聯(lián)的邊構(gòu)成的點邊序列。如:v0,e1,v1,e2,v2,e3,v3,vn-1,en,vn;v0,vn分別為鏈的起點和終點。記作(v0,v1,v2,,v3,vn-1,vn)簡單鏈:鏈中所含的邊均不相同;初等鏈:鏈中所含的點均不相同,也稱通路;,圈:若v0vn則稱該鏈為開鏈,否則稱為閉鏈或回路或圈;,簡單圈:如果在一個圈中所含的邊均不相同初等圈:除起點和終點外鏈中所含的點均不相同的圈;連通圖:圖中任意兩點之間均至少有一條通路,否則稱為不連通圖。,初等鏈:(v1,v2,v3,v6,v7,v5),初等圈:(v1,v2,v3,v5,v4,v1),簡單圈:(v4,v1,v2,v3,v5,v7,v6,v3,v4),簡單鏈:(v1,v2,v3,v4,v5,v3),以后除特別聲明,均指初等鏈和初等圈。,連通圖,子圖定義:如果V2V1,E2E1稱G2是G1的子圖;真子圖:如果V2V1,E2E1稱G2是G1的真子圖;部分圖:如果V2=V1,E2E1稱G2是G1的部分圖或支撐子圖;導(dǎo)出子圖:如果V2V1,E2=vi,vjvi,vjV2,稱G2是G1中由V2導(dǎo)出的導(dǎo)出子圖。,設(shè)G1=V1,E1,G2=V2,E2,G1,G2真子圖,G3子圖部分圖,G4導(dǎo)出子圖,G5生成樹,G6G5余樹,有向圖:關(guān)聯(lián)邊有方向?。河邢驁D的邊a=(u,v),起點u,終點v;路:若有從u到v不考慮方向的鏈,且各方向一致,則稱之為從u到v的路;初等路:各頂點都不相同的路;初等回路:u=v的初等路;連通圖:若不考慮方向是無向連通圖;強連通圖:任兩點有路;,8.2樹和最小支撐樹,一、樹及其性質(zhì)在各種各樣的圖中,有一類圖是十分簡單又非常具有應(yīng)用價值的圖,這就是樹。例8.3已知有六個城市,它們之間要架設(shè)電話線,要求任意兩個城市均可以互相通話,并且電話線的總長度最短。,如果用六個點v1v6代表這六個城市,在任意兩個城市之間架設(shè)電話線,即在相應(yīng)的兩個點之間連一條邊。這樣,六個城市的一個電話網(wǎng)就作成一個圖。表示任意兩個城市之間均可以通話,這個圖必須是連通圖。并且,這個圖必須是無圈的。否則,從圈上任意去掉一條邊,剩下的圖仍然是六個城市的一個電話網(wǎng)。圖8.8是一個不含圈的連通圖,代表了一個電話線網(wǎng)。,圖8.8,v6,v3,v4,v2,v5,v1,定義8.1一個無圈的連通圖叫做樹。下面介紹樹的一些重要性質(zhì):定理8.3設(shè)圖G=(V,E)是一個樹P(G)2,那么圖G中至少有兩個懸掛點。定理8.4圖G=(V,E)是一個樹的充要條件是G不含圈,并且有且僅有P-1條邊。定理8.5圖G=(V,E)是一個樹的充要條件是G是連通圖,并且有且僅有p1條邊。定理8.6圖G是一個樹的充分必要條件是任意兩個頂點之間有且僅有一條鏈。,從以上定理,不難得出以下結(jié)論:(1)從一個樹中任意去掉一條邊,那么剩下的圖不是連通圖,亦即,在點集合相同的圖中,樹是含邊數(shù)最少的連通圖。(2)在樹中不相鄰的兩個點之間加上一條邊,那么恰好得到一個圈。,二.支撐樹,定義8.2設(shè)圖K=(V,EI)是圖G=(V,E)的,一支撐子圖,如果圖K=(V,EI)是一個樹,那么稱K是G的一個支撐樹。例如,圖8.10b是圖8.10a的一個支撐樹,圖8.10,顯然,如果圖K=(V,EI)是圖G=(V,E)的一個支撐樹,那么K的邊數(shù)是p(G)-1,G中不屬于支撐樹K的邊數(shù)是q(G)-p(G)+1。定理8.7一個圖G有支撐樹的充要條件是G是連通圖。證明:充分性:設(shè)圖G是連通的,若G不含圈,則按照定義,G是一個樹,從而G是自身的一個支撐樹。若G含圈,則任取G的,一個圈,從該圈中任意去掉一條邊,得到圖G的一支撐子圖G1。若G1不含圈,則G1是G的一個支撐樹。若G1仍然含圈,則任取G1的一個圈,再從圈中任意去掉一條邊,得到圖G的一支撐子圖G2。依此類推,可以得到圖G的一個支撐子圖GK,且不含圈,從而GK是一個支撐樹。,定理8.7充分性的證明,提供了一個尋找連通圖支撐樹的方法叫做“破圈法”。就是從圖中任取一個圈,去掉一條邊。再對剩下的圖重復(fù)以上步驟,直到不含圈時為止,這樣就得到一個支撐樹。例8.4用破圈法求出圖8-11的一個支撐樹。,圖8-11,取一個圈(v1,v2,v3,v1),在一個圈中去掉邊e3。在剩下的圖中,再取一個圈(v1,v2,v4,v3,v1),去掉邊e4。再從圈(v3,v4v5,v3)中去掉邊e6。再從圈(v1,v2,v5,v4,v3,v1)中去掉邊e7,這樣,剩下的圖不含圈,于是得到一個支撐樹,如圖8.12所示。,圖8.12,三.最小支撐樹問題定義8.3如果圖G=(V,E),對于G中的每一條邊vi,vj,相應(yīng)地有一個數(shù)Wij,那么稱這樣的圖G為賦權(quán)圖,Wij稱為邊vi,vj的權(quán)。這里所指的權(quán),是具有廣義的數(shù)量值。根據(jù)實際研究問題的不同,可以具有不同的含義。例如長度,費用、流量等等。賦權(quán)圖在圖論及實際應(yīng)用方面有著重要的地位,被廣泛應(yīng)用于現(xiàn)代科學(xué)管理和工程技術(shù)等領(lǐng)域,最小支撐樹問題就是賦權(quán)圖的最優(yōu)化問題之一。,設(shè)G=(V,E)是一個連通圖,G的每一條vi,vj對應(yīng)一個非負的權(quán)Wij。定義8.4如果圖T=(V,EI)是圖G的一個支撐樹,那么稱EI上所有邊的權(quán)的和為支撐樹T的權(quán),記作S(T)。如果圖G的支撐樹T*的權(quán)S(T*),在G的所有支撐樹T中的權(quán)最小,即S(T*)=minTS(T),那么稱T*是G的最小支撐樹。,如前所述,在已知的幾個城市之間聯(lián)結(jié)電話線網(wǎng),要求總長度最短和總建設(shè)費用最少,一個問題的解決可以歸結(jié)為最小支撐樹問題。再如,城市間交通線的建造等,都可以歸結(jié)為這一類問題。,下面介紹尋求最小支撐樹的方法-破圈法。在給定的連通圖中任取一個圈,去掉權(quán)最大的一條邊,如果有兩條以上權(quán)最大的邊,則任意,去掉一條。在剩下的圖中,重復(fù)以上步驟,直到得到一個不含圈的連通圖為止,這個圖便是最小支撐樹。例8.5某六個城市之間的道路網(wǎng)如圖8.13a所示,要求沿著已知長度的道路聯(lián)結(jié)六個城市的電話線網(wǎng),使得電話線的總長度最短。,圖8.13a,圖8.13b,解:這個問題的解決就是要求所示賦權(quán)圖8.13a中的最小支撐樹。用破圈法求解。任取一個圈,例如(v1,v2,v3,v1),去掉這個圈中權(quán)最大的邊v1,v3。再取一個圈(v3,v5,v2,v3),去掉邊v2,v5。再取一個圈(v3,v5,v4,v2,v3),去掉邊v3,v5。再取一個圈(v5,v6,v4,v5),這個圈中,有兩條權(quán)最大的邊v5,v6和v4,v6。任意去掉其中的一條,例如v5,v6。這時得到一個,不含圈的圖,如圖8.13b所示,即是最小支撐樹。關(guān)于破圈法正確性的證明略去。,例用破圈法求出下圖中的最小支撐樹,破圈法和生長法兩個方法:,(1)在網(wǎng)絡(luò)圖中尋找一個圈。若不存在圈,則已經(jīng)得到最短樹或網(wǎng)絡(luò)不存在最短樹;,(2)去掉該圈中權(quán)數(shù)最大的邊;,反復(fù)重復(fù)兩步,直到最短樹。,1.破圈法,從網(wǎng)絡(luò)圖中任意節(jié)點開始尋找與該節(jié)點關(guān)聯(lián)的權(quán)數(shù)最小的邊,得到另一節(jié)點后,再從這個新節(jié)點開始尋找與該節(jié)點關(guān)聯(lián)的權(quán)數(shù)最小的另一邊。注意尋找過程中,節(jié)點不得重復(fù),即在找最小權(quán)數(shù)邊時不考慮已選過的邊,反復(fù)進行,直到得到最短樹或證明網(wǎng)絡(luò)不存在最短樹。,2.成長法,例用成長法求出下圖中的最小支撐樹(最短樹),一.引言最短路徑問題是圖論中十分重要的最優(yōu)化問題之一,它作為一個經(jīng)常被用到的基本工具,可以解決生產(chǎn)實際中的許多問題,比如城市中的管道鋪設(shè),線路安排,工廠布局,設(shè)備更新等等。也可以用于解決其它的最優(yōu)化問題。,8.3最短路問題,例86如圖8.14所示的單行線交通網(wǎng),每個弧旁邊的數(shù)字表示這條單行線的長度?,F(xiàn)在有一個人要從v1出發(fā),經(jīng)過這個交通網(wǎng)到達v8,要尋求是總路程最短的線路。,圖8.14,1,從v1到v8的路線是很多的。比如從v1出發(fā),經(jīng)過v2,v5到達v8或者從v1出發(fā),經(jīng)過v4,v6,v7到達v8等等。但不同的路線,經(jīng)過的總長度是不同的。例如,按照第一個線路,總長度是6+1+6=13單位,按照第二個路線,總長度是1+10+2+4=17單位。從這個例子中,可以給出一般意義下的最短路問題。設(shè)一個賦權(quán)有向圖D=(V,A),,對于每一個弧a=(vi,vj),相應(yīng)地有一個權(quán)wij。Vs,vt是D中的兩個頂點,P是D中從vs到vt的任意一條路,定義路的權(quán)是P中所有弧的權(quán)的和,記作S(p)。最短路問題就是要在所有從vs到vt的路P0中,尋找一個權(quán)最小的路P0,亦即S(P0)=minS(p)。P0叫做從vs到vs的最短路。P0的權(quán)S(P0)叫做從vs到vt的距離,記作d(vs,vt)。由于D是有向圖,很明顯d(vs,vt)與d(vt,vs)一般不相等。,二.Dijkstra算法下面介紹在一個賦權(quán)有向圖中尋求最短路的方法Dijkstra算法,它是在1959年提出來的。目前公認,在所有的權(quán)wij0時,這個算法是尋求最短路問題最好的算法。并且,這個算法實際上也給出了尋求從一個始定點vs到任意一個點vj的最短路。,Dijkstra算法的基本思想是從vs出發(fā),逐步向外尋找最短路。在運算過程中,與每個點對應(yīng),記錄一個數(shù),叫做一個點的標號。它或者表示從vs到該點的最短路權(quán)(叫做P標號),或者表示從vs到該點最短路權(quán)的上界(叫做T標號)。算法的每一步是去修改T標號,把某一個具有T標號的點改變?yōu)榫哂蠵標號的點,使圖D中具有P標號的頂點多一個。這樣,至多經(jīng)過P-1步,就可求出從vs到各點vj的最短路。,以例1為例說明這個基本思想。在例1中,S=1。因為Wij0,d(v1,v1)=0。這時,v1是具有P標號的點?,F(xiàn)在看從v1出發(fā)的三條?。╲1,v2),(v1,v3)和(v1,v4)。如果一個人從v1出發(fā)沿(v1,v2)到達v2,這時的路程是d(v1,v1)+w12=6單位。如果從v1出發(fā),沿(v1,v3)到達v3,則是d(v1,v1)+w13=3單位。同理,沿(v1,v4)到達v4,是d(v1,v1)+w14=1單位。因此,他從v1出發(fā)到達v4的最短路必是(v1,v4),d(v1,v4)=1。,這是因為從v1到達v4的任一條路P,假如不是(v1,v4),則必先沿(v1,v2)到達v2,或者沿(v1,v3)到達v3,而這時的路程已是6或者3單位。由于所有的權(quán)wij0,因此,不論他如何再從v2或者v3到達v4,所經(jīng)過的總路程都不會比1少,于是就有d(v1,v4)=1。這樣就使v4變成具有P標號的點?,F(xiàn)在看從v1和v4指向其余點的弧。如上所述,從v1出發(fā),分別沿(v1,v2),(v1,v3)到達v2,v3,經(jīng)過,的路程是6或者3單位。從v4出發(fā)沿(v4,v6)到達v6,經(jīng)過的路程是d(v1,v4)+w46=1+10=11單位。而mind(v1,v1)+w12,d(v1,v1)+w13,d(v1,v4)+w46=d(v1,v1)+w13=3單位。根據(jù)同樣的理由,可以斷定,從v1到達v3的最短路是(v1,v3),d(v1,v3)=3。這樣,又使點v3變?yōu)榫哂蠵標號的點,不斷重復(fù)以上過程,就可以求出從vs到達任一點vj的最短路。,(0,0),(6,1),(3,1),(1,1),(0,0),(3,1),(1,1),(6,1),(11,4),(0,0),(3,1),(1,1),(5,3),(11,4),(0,0),(3,1),(1,1),(5,3),(11,4),(6,2),(0,0),(3,1),(1,1),(5,3),(10,5),(6,2),(9,5),(12,5),(0,0),(3,1),(1,1),(5,2),(10,5),(6,2),(9,5),(12,5),(0,0),(3,1),(1,1),(5,2),(10,5),(6,2),(9,5),(12,5),從v1到v8的最短路的長度為:12從v1到v8的最短路線為:,v8,v5,v2,v1,步驟:,1、給起點一個永久標號(0,0)。永久標號用下劃線表示;標號中的第一個數(shù)表示從起點到該點的距離;第二個數(shù)表示該點的前面沒有點了。,2、修改非永久標號點vi的臨時標號為(a,b),其中a為以vi為終點的弧,如果其起點為永久標號,則求其永久標號的第一個數(shù)與弧長的和,如果這樣的和有多個,則取最小值。b為前一個點的下標。,3、在臨時標號中取第一個標號的最小值,將該標號該為永久標號,再返回到2步,三、含有負權(quán)的最短路的求法,例:求從v1到v8的最短路,0,-1,-2,3,0,-5,-2,-7,1,-1,5,0,-5,-2,-7,-3,-1,-5,6,0,-5,-2,-7,-3,-1,-5,6,從v1到v8的最短路的長度為:6從v1到v8的最短路線為:,v8,v6,v3,v1,8.4最小費用流問題,一引言在許多實際的網(wǎng)絡(luò)系統(tǒng)中都存在著流量和最大流問題。例如鐵路運輸系統(tǒng)中的車輛流,城市給排水系統(tǒng)的水流問題等等。而網(wǎng)絡(luò)系統(tǒng)流最大流問題是圖與網(wǎng)絡(luò)流理論中十分重要的最優(yōu)化問題,它對于解決生產(chǎn)實際問題起著十分重要的作用。,圖8.19是聯(lián)結(jié)某個起始地vs和目的地vt的交通運輸網(wǎng),每一條弧vi旁邊的權(quán)cij表示這段運輸線的最大通過能力,貨物經(jīng)過交通崗從vs運送到vt.要求指定一個運輸方案,使得從vs到vt的貨運量最大,這個問題就是尋求網(wǎng)絡(luò)系統(tǒng)的最大流問題。,問題描述連通網(wǎng)絡(luò)G(V,A)有m個節(jié)點,n條弧,弧eij上的流量上界為cij,求從起始節(jié)點vs到終點vt的最大流量。,圖8.19,二基本概念定義8.5設(shè)一個賦權(quán)有向圖D=(V,A),在V中指定一個發(fā)點vs和一個收點vt,其它的點叫做中間點。對于D中的每一個?。╲i,vj)A,都有一個權(quán)叫做弧的容量。我們把這樣的圖D叫做一個網(wǎng)絡(luò)系統(tǒng),簡稱網(wǎng)絡(luò),記做D=(V,A,C)。網(wǎng)絡(luò)D上的流,是指定義在弧集合A上的一個函數(shù)f=f(vi,vj)=fjjf(vi,vj)=fij叫做弧(vi,vj)上的流量。,例如圖8.19就是一個網(wǎng)絡(luò)。每一個弧旁邊的權(quán)就是對應(yīng)的容量(最大通過能力)cij.圖8.20表示的就是這個網(wǎng)絡(luò)上的一個流(運輸方案),每一個弧上的流量fij就是運輸量。例如fs1=5,fs2=3,f13=2等等。對于實際的網(wǎng)絡(luò)系統(tǒng)上的流,有幾個顯著的特點:(1)發(fā)點的總流出量和收點的總流入量必相等。(2)每一個中間點的流入量與流出量的代數(shù)和等于零。(3)每一個弧上的流量,不能超過它的最大通過能力(即容量)于是有:,圖8.20,定義8.6網(wǎng)絡(luò)上的一個流f叫做可行流,如果f滿足以下條件(1)容量條件:對于每一個?。╲i,vj)A,有0fijcij.(2)平衡條件:,對于發(fā)點vs,有,對于收點vt,有,對于中間點,有,任意一個網(wǎng)絡(luò)上的可行流總是存在的。例如零流v(f)=0,就是滿足以上條件的可行流。網(wǎng)絡(luò)系統(tǒng)中最大流問題就是在給定的網(wǎng)絡(luò)上尋求一個可行流f,其流量v(f)達到最大值。設(shè)流f=fij是網(wǎng)絡(luò)D上的一個可行流。我們把D中fij=cij的弧叫做飽和弧,fij0的弧為非零流弧,fij=0的弧叫做零流弧.,在圖8.20中,(v4,v3)是飽和弧,其他的弧是非飽和弧,并且都是非零流弧。設(shè)是網(wǎng)絡(luò)D中連接發(fā)點s和收點vt的一條鏈。定義鏈的方向是從s到vt,于是鏈上的弧被分為兩類:一類是弧的方向與鏈的方向相同,叫做前向弧,前向弧的集合記做+。二類是弧的方向與鏈的方向相反,叫做后向弧,,后向弧的集合記做。例如在圖8.19中,在鏈(vs,v1,v2,v3,v4,vt)中,+=vs,v1,(v1,v2),(v2,v3),(v4,vt),=(v4,v3).,增廣鏈:如果鏈滿足以下條件:1在?。╲i,vj)+上,有0fijcij,即+中的每一條弧是非飽和弧。2在?。╲i,vj)上,有0fijcij,即中的每一條弧是非零流弧。,例如在圖8.20中,鏈=(vs,v1,v2,v3,v4,vt)就是一條增廣鏈。設(shè)圖D=(V,A,C),點集S,TV,ST=。將起點在S,終點在T的所有弧作成集合,記做(S,T)。,定義8.8設(shè)一個網(wǎng)絡(luò)D=(V,A,C)。如果點集V被剖分為兩個非空集合v1和,發(fā)點vsv1,收點vt,那么將弧集(v1,)叫做是分離vs和vt的截集。,定義8.9設(shè)一個截集(V1,).將階截集(V1,)中所有的弧的容量的和叫做截集的截量,記做s(V1,),亦即,下面的事實是顯然的:一個網(wǎng)絡(luò)D中,任何一個可行流f的流量v(f)都小于或等于這個網(wǎng)絡(luò)中任何一個截集(V1,)的截量。并且,如果,網(wǎng)絡(luò)上的一個可行流f*和網(wǎng)絡(luò)中的一個截集(V1*,),滿足條件v*(f*)=c(V1*,),那么f*一定是D上的最大流,而(V1*,)一定是D的所有的截集中截量最小的一個(即最小截集),定理8.8網(wǎng)絡(luò)中的一個可行流f*是最大流的充分必要條件是,不存在關(guān)于f*的增廣鏈。定理8.9在一個網(wǎng)絡(luò)D中,最大流的流量等于分離vs和vt的最小截集的截量。,定理8.8為我們提供了一個尋求網(wǎng)絡(luò)系統(tǒng)最大流的方法。亦即,如果網(wǎng)絡(luò)D中有一個可行流f,只要判斷網(wǎng)絡(luò)是否存在關(guān)于可行流f的增廣鏈。如果沒有增廣鏈,那么f一定是最大流。如有增廣鏈,那么可以按照定理8.9中必要性,不斷改進和增大可行流f的流量,最終可以得到網(wǎng)絡(luò)中的一個最大流。,三標號法從網(wǎng)絡(luò)中的一個可行流f出發(fā)(如果D中沒有f,可以令f是零流),運用標號法,經(jīng)過標號過程和調(diào)整過程,可以得到網(wǎng)絡(luò)中的一個最大流。下面用給頂點標號的方法來定義V1*.在標號過程中,有標號的頂點是V1*中的點,沒有標號的點不是V1*中的點。如果vt有了標號,表示存在一條關(guān)于f的增廣鏈。如果標號過程無法進行下去,并且vt未被標號,則表示不存在關(guān)于f的增廣鏈。這樣,就得到了網(wǎng)絡(luò)中的一個最大流和最小截集。,1標號過程在標號過程中,網(wǎng)絡(luò)中的點或者是標號點(分為已檢查和未檢查兩種)?;蛘呤俏礃颂桙c。每個標號點的標號包含兩部分:第一個標號表示這個標號是從那一點得到的。以便找出增廣鏈。第二個標號是為了用來確定增廣鏈上的調(diào)整量。標號過程開始,先給vs標號(0,+)。這時,vs是標號未檢查的點,其它都是未標號點。一般地,取一個標號未檢查點vi,對一切未標號點vj:,(1)如果在?。╲i,vj)上,fij0,那么給vj標號(-vi,l(vj)).其中l(wèi)(vj)=minl(vi),fji.這時,vj成為標號未檢查點。于是vi成為標號已檢查的點。重復(fù)以上步驟,如果所有的標號都已經(jīng)檢查過,而標號過程無法進行下去,則標號法結(jié)束。這時的可行流就是最大流。,2.調(diào)整過程首先按照vt和其它的點的第一個標號,反向追蹤,找出增廣鏈。例如,令vt的第一個標號是vk,則?。╲k,vt)在上。再看vk的第一個標號,若是vi,則弧(vi,vk)都在上。依次類推,直到vs為止。這時,所找出的弧就成為網(wǎng)絡(luò)D的一條增廣鏈。取調(diào)整量=l(vt),即vt的第二個標號,令,但是,如果vt被標上號,表示得到一條增廣鏈,轉(zhuǎn)入下一步調(diào)整過程。,其它不變,再去掉所有的標號,對新的可行流f=fij,重新進行標號過程,直到找到網(wǎng)絡(luò)D的最大流為止。,例8.8求圖8.21的網(wǎng)絡(luò)最大流,弧旁的權(quán)數(shù)表示(cij,fij)。,圖820例88網(wǎng)絡(luò)圖,解:用標號法。1.標號過程。(1)首先給vs標號(0,+)(2)看vs:在弧(vs,v2)上,fs2=cs3=3,不具備標號條件。在弧(vs,v1)上,fs1=10,故給v2標號(-v1,l(v2)),其中l(wèi)(v2)=minl(v1),f21=min4,1=1.,圖821例88網(wǎng)絡(luò)圖,(0,+),(vs,4),(v1,1),(v2,1),(-v2,1),(v3,1),(4)看v2:在?。╲2,v4)上,f24=30,故給v3標號(-v2,l(v3),其中l(wèi)(l(v3)=minl(v2),f32=min1,1=1。(5)在v3,v4中任意選一個,比如v3,在?。╲3,vt)上,f3t=1c3t=2,故給vt標號(v3,l(vt),其中l(wèi)(vt)=minl(v3),(c3t-f3t)=min1,1=1.因為vt被標上號,根據(jù)標號法,轉(zhuǎn)入調(diào)整過程。,2.調(diào)整過程從vt開始,按照標號點的第一個標號,用反向追蹤的方法,找出一條從vs到vt的增廣鏈,如圖822中雙箭線所示。不難看出,+=(vs,v1),(v3,vt),=(v2,v1),(v3,v2),取=1,在上調(diào)整f,得到,圖822例88網(wǎng)絡(luò)圖,(5,2),(1,0),(1,0),(2,2),(cij,fij),調(diào)整后的可行流f*,如圖8.22所示,再對這個可行流從新進行標號過程,尋找增廣鏈。首先給vs標號(0,+),看vs,給v1標號(vs,3)??磛1,在?。╲1,v3)上,f13=c13,?。╲2,v1)上,f21=0,均不符合條件。因此標號過程無法進行下去,不存在從vS到vt的增廣鏈,算法結(jié)束。,這時,網(wǎng)絡(luò)中的可行流f*即是最大流,最大流的流量v(f*)=fs1+fs2=5.同時,也找出D的最小截集(V1,),其中V1是標號的集合,是未標號的集合。,(0,+),(vs,3),圖823例88網(wǎng)絡(luò)圖,例89求圖824所示網(wǎng)絡(luò)的最大流,圖824例89網(wǎng)絡(luò)圖,解:給定初始可行流為全零流,即f(0)=0,給vs標號(0,+),檢查vs:給v1標號(vs,4),給v3標號(vs,3),給v3標號(vs,10),(0,+),(vs,4),(vs,3),(vs,10),檢查v1:給v3標號(v1,1),檢查完畢;,(v1,1),檢查v2:給v5標號(v2,3),檢查完畢;,(v2,3),檢查v5:給vt標號(v5,3),檢查完畢;,(v5,3),因為終點vt已標號,故找出一條從vs到vt的增廣鏈:vsv2v5vt.取=3,(vs,4),(v1,3),(vs,10),(v1,1),(v2,2),(0,+),(v5,2),(vs,2),(v3,3),(vs,10),(v2,3),(v3,4),(0,+),(v4,3),(0,+),(vs,2),(vs,10),(v3,4),(v5,2),(v5,3),(0,+),(vs,2),(vs,4),(v1,1),(v1,1),(v4,1),(0,+),(vs,4),(vs,1),(v3,1),(v5,1),(v4,1),(0,+),(vs,1),(vs,3),(v1,1),(v2,1),(v4,1),(0,+),(vs,3),首先給vs標號(0,+),看vs,給v3標號(vs,3)??磛3,在?。╲3,v2)上,f32=c32,?。╲3,v5)上,f35=c35,均不符合條件。因此標號過程無法進行下去,不存在從vS到vt的增廣鏈,算法結(jié)束。最大流量f*=14。,8.4最小費用最大流問題,在實際的網(wǎng)絡(luò)系統(tǒng)中,當涉及到有關(guān)流的問題的時候,我們往往不僅僅考慮的是流量,還經(jīng)常要考慮費用的問題。比如一個鐵路系統(tǒng)的運輸網(wǎng)絡(luò)流,即要考慮網(wǎng)絡(luò)流的貨運量最大,又要考慮總費用最小。最小費用最大流問題就是要解決這一類問題。,我們首先考察,在一個網(wǎng)絡(luò)D中,當沿可行流f的一條增廣鏈,以調(diào)整量=1改進f,得到的新可行流f的流量,有v(f)=,設(shè)一個網(wǎng)絡(luò)D=(V,A,C),對于每一個弧(vi,vj)A,給定一個單位流量的費用bij0,網(wǎng)絡(luò)系統(tǒng)的最小費用最大流問題,是指要尋求一個最大流f,并且流的總費用達到最小。,=v(f)+1,而此時總費用b(f)比b(f)增加了,結(jié)論:如果可行流f在流量為v(f)的所有可行流中的費用最小,并且是關(guān)于f的所有增廣鏈中的費用最小的增廣鏈,那么沿增廣鏈,我們將叫做這條增廣鏈的費用。,調(diào)整可行流f,得到的新可行流f,也是流量為v(f)的所有可行流中的最小費用流。依次類推,當f是最大流時,就是所要求的最小費用最大流。,顯然,零流f=0是流量為0的最小費用流。一般地,尋求最小費用流,總可以從零流f=0開始。下面的問題是:如果已知f是流量為v(f)的最小費用流,那么就要去尋找關(guān)于f的最小費用增廣鏈。,對此,重新構(gòu)造一個賦權(quán)有向圖M(f),其頂點是原網(wǎng)絡(luò)D的頂點,而將D中的每一條弧(vi,vj)變成兩個相反方向的?。╲i,vj)和(vj,vi),并且定義M(f)中弧的權(quán)wij為:,并且將權(quán)為+的弧從M(f)中略去。,這樣,在網(wǎng)絡(luò)D中尋找關(guān)于f的最小費用增廣鏈就等于價于在M(f)中尋求從vs到vt的最短路。算法開始,取零流f(0)=0.一般地,如果在第K-1步得到最小費用流f(K-1),則構(gòu)造圖M(f(k-1)。在圖M(f(k-1)中,尋求從vs到vt的最短路。如果存在最短路,則f(k-1)就是最小費用最大流。如果存在最短路,則在原網(wǎng)絡(luò)D中得到相對應(yīng)(一一對應(yīng))的增廣鏈0,在增廣鏈上對f(k1)進行調(diào)整,取調(diào)整量,令:,得到一個新的可行流f(k),在對f(k)重復(fù)以上的步驟,直到D中找不到相對應(yīng)的增廣鏈時為止。,例8.9求圖8-24所示網(wǎng)絡(luò)中的最小費用最大流,弧旁的權(quán)是(bij,cij).,圖8-24,解:(1)取初始可行流為零流f(0)=0,構(gòu)造賦權(quán)有向圖M(f(0),求出從vs到vt的最短路(vs,v2,v1,vt),如圖8.25a中雙箭頭所示。,圖8.25a,(2)在原網(wǎng)絡(luò)D中,與這條最短路相對應(yīng)的增廣鏈為=(vs,v2,v1,vt)。(3)在上對f(0)=0進行調(diào)整,取=5,得到新可行流f(1),如圖8.25b所示。按照以上的算法,依次類推,可以得到f(1),f(2),f(3),f(4),流量分別為5,7,10,11,并且分別構(gòu)造相對應(yīng)的賦權(quán)有向圖M(f(1),M(f(2),M(f(3),M(f(4)。由于在M(f(4)中已經(jīng)不存在從vs到vt的最短路,因此,可行流f(4),v(f(1)=11是最小費用最大流。,M(f(1),圖8.25c,M(f(2),圖8.25e,8.6網(wǎng)絡(luò)計劃,大型項目的開發(fā)涉及很復(fù)雜的項目協(xié)調(diào)和管理問題,為使項目管理人員對項目進度有全面的了解,進行有效的控制,必須使用科學(xué)的管理方法.,網(wǎng)絡(luò)計劃法是使用最廣泛的方法之一,關(guān)鍵路徑法(CPM)和項目評審技術(shù)(PERT)是兩種使用最廣泛的網(wǎng)絡(luò)計劃技術(shù)。,網(wǎng)絡(luò)計劃方法的優(yōu)點使它適用于生產(chǎn)技術(shù)復(fù)雜,工作項目繁多,且緊密聯(lián)系的一些跨部門的工作計劃,如:新產(chǎn)品研制開發(fā)大型工程項目建設(shè)生產(chǎn)技術(shù)準備復(fù)雜設(shè)備的大修計劃,網(wǎng)絡(luò)計劃方法的基本原理,將工程項目分解為相對獨立的活動,根據(jù)各活動先后順序、相互關(guān)系以及完成所需時間做出反映項目全貌的網(wǎng)絡(luò)圖;從項目完成全過程著眼,找出影響項目進度的關(guān)鍵活動和關(guān)鍵路線,通過對資源的優(yōu)化調(diào)度,實現(xiàn)對項目實施的有效控制和管理。,網(wǎng)絡(luò)計劃方法的主要功能,1用網(wǎng)絡(luò)圖描述一個實際項目的管理問題(畫網(wǎng)絡(luò)圖);2計算項目的最早、最晚完成和開工時間(網(wǎng)絡(luò)計算);3尋找關(guān)鍵活動和關(guān)鍵路徑(網(wǎng)絡(luò)分析);4根據(jù)以上分析對網(wǎng)絡(luò)進行優(yōu)化。,8.6.1網(wǎng)絡(luò)計劃與網(wǎng)絡(luò)圖,復(fù)雜工程項目可被分解為一系列小的事件或活動,各種事件和活動之間的邏輯順序可以表述為一個由一系列弧和節(jié)點組成的網(wǎng)絡(luò)圖;網(wǎng)絡(luò)圖中的有向弧代表各種活動(或工作),活動完成需要的時間寫在弧上;節(jié)點表示事件(或事項),表示活動的開始與結(jié)束,每個節(jié)點有唯一節(jié)點號;,位于弧的起點和終點的節(jié)點表示活動或事件的開始和結(jié)束,每個活動有一個起點和一個終點:,圓圈和里面的數(shù)字代表各事項,寫在箭桿中間的數(shù)字5表示完成本工作所需時間,即工作a(1,2),事項:(1,2)。,圖8.26,整個網(wǎng)絡(luò)的方向按慣例從左到右地反映活動的邏輯順序,并有唯一的起點和終點。,畫網(wǎng)絡(luò)圖有以下四個階段:一、列出所有活動一個完整的項目必須被分解為一系列獨立,活動(稱為工序),分解程度取決于項目計劃的需要以及相應(yīng)的管理職能。二、確定每個活動的緊前工序項目執(zhí)行的連續(xù)性確定了項目各項活動的前后順序,為了從邏輯上搞清楚活動之間的順序關(guān)系,需要確定每項活動可以開始之前必須完成的活動-緊前工序。,注意:區(qū)分習(xí)慣上發(fā)生的順序和它們在邏輯上應(yīng)該發(fā)生的順序,例如,寄出一個發(fā)票的一般,方法是:,(1)檢查發(fā)票(2)將發(fā)票放入信封(3)封上信封(4)在信封上寫地址這不是唯一正確方法,網(wǎng)絡(luò)圖應(yīng)能反映所有可能性,而不僅僅是傳統(tǒng)方法。,三、畫網(wǎng)絡(luò)圖畫網(wǎng)絡(luò)圖應(yīng)注意以下規(guī)則:,1、網(wǎng)絡(luò)只能有一個總起點和一個總終點;,圖8.27中,有兩個總起點事項,;三個總終點事項,不符合規(guī)則。,圖8.27,2、網(wǎng)絡(luò)圖為有向圖,且不能有回路;,圖8.28中是回路,不符合規(guī)則,圖8.28,3、兩個節(jié)點之間不能有兩條或兩條以上的弧(兩個及兩個以上的工作);,圖8.29不符合規(guī)則。,4、應(yīng)正確表示活動之間的前行后繼關(guān)系;,如4道工作a,b,c,d的關(guān)系為:c必須在a,b均完成后才能開工,而d只要在b完工后,圖8.29,即可開工,如畫成下圖是錯誤的,因本來與a工作的工作d被錯誤地表為必須在a完工后才能開工。,5、虛擬活動的運用,網(wǎng)絡(luò)有時需要包括由虛線表示的虛擬活,圖8.30,動。首先,它可以避免兩個活動有相同的起點和終點;其次,使用虛擬活動可以幫助表示一些特殊的邏輯依賴關(guān)系。,如前面不符合規(guī)則的圖8.27,圖8.29,圖8.30,用添加虛工作的方法改圖為圖8.31,圖8.32,圖8.33就是正確的了。,圖8.32,圖8.31,圖8.33,商業(yè)中心建設(shè)網(wǎng)絡(luò)圖,錯誤的依賴關(guān)系,6、平行工作虛工作還可以用于正確地表示平行工作與交叉工作。一道工作分為幾道工作同時進行,稱為平行工作,如圖圖8.34(a)中市場調(diào)查(2,3)中需12天,如增加人力分為三組同時進行,可畫為(b)。,圖8.34(a),圖8.34(b),7、交叉作業(yè)兩件或兩件以上的工作交叉進行,稱為交叉工作。如工作A與工作B分別為挖溝和埋管子,那么它們的關(guān)系可以是挖一段埋一段,不必等溝全部挖好再埋,這就可以用交叉作,業(yè)來表示,如把這工作各分為三段,A=a1+a2+a3,B=b1+b2+b3,可用圖8.35表示:,圖8.35,如果要盡量避免弧的交叉,圖8.36(a)中許多交叉的弧可以避免,整體改為(b)就比較清晰了。,圖8.36(a),圖8.36(b),四、給節(jié)點編號編號應(yīng)注意以下規(guī)則:每條弧上起點的編號數(shù)小于終點的編號數(shù)。,方法:給起點一個編號數(shù),設(shè)想將該點為起點的弧都去掉,從而又有新的起點,依次給新的起點編號,反復(fù)這樣做直到終點已經(jīng)編號為止。,8.6.2網(wǎng)絡(luò)分析與計算,通過網(wǎng)絡(luò)分析可增加對項目整體的了解,并能發(fā)現(xiàn)活動并行執(zhí)行的機會,網(wǎng)絡(luò)分析可以分以下五個階段:1估計完成活動需要的時間t(i,j)計算每個活動完成的平均或期望時間:根據(jù)歷史數(shù)據(jù)計算平均完成時間;或通過主觀估計得到完成時間的期望值;,2計算最早開始時間(ES)與最早完工(EF)時間從網(wǎng)絡(luò)起點開始,用下列公式計算最早開始時間(tES)和最早完工時間(tEF):最早完工=最早開始時間+活動持續(xù)時間tEF(i,j)=tES(i,j)+t(i,j)最早開始時間=(緊前活動的)最早結(jié)束時間tES(i,j)=maxktEF(k,i)如果一個活動有幾個緊前活動,取其中最晚的最早結(jié)束時間。,tES(i,j)=maxktEF(k,i)tEF(i,j)=tES(i,j)+t(i,j),圖8.37,3計算最晚開始時間與最晚結(jié)束時間從最后活動開始依次按下式計算每個活動最晚結(jié)束時間tLF和最晚開始時間tLS最晚開始時間=最晚結(jié)束時間活動持續(xù)時間tLS(i,j)=tLF(i,j)-t(i,j)最晚結(jié)束時間=(緊后活動的)最晚開始時間tLF(i,j)=minktLS(j,k)如果一個活動有幾個緊后活動,取其中最早的最晚開始時間。,tLF(i,j)=minktLS(j,k)tLS(i,j)=tLF(i,j)-t(i,j),圖8.38,4允許時差允許時差又稱活動的機動或富裕時間,常用的時差有兩種:總時差:不影響總工期條件下,任務(wù)可以延遲的最大幅度,用R(i,j)表示:R(i,j)=tLS(i,j)-tES(i,j)=tLF(i,j)-tEF(i,j)總時差=最晚開始時間最早開始時間=最晚結(jié)束時間最早結(jié)束時間,單時差:不影響緊后工作的最早開工時間的條件下,任務(wù)可以延遲的最大幅度,用r(i,j)表示:r(i,j)=minktES(j,k)-tEF(i,j),圖8.39,5確定關(guān)鍵路徑網(wǎng)絡(luò)計劃技術(shù)根據(jù)活動持續(xù)時間之間的關(guān)系找出項目的關(guān)鍵活動,時差為零的活動是關(guān)鍵活動,它們的延誤將導(dǎo)致整個項目完成時間延誤,所有關(guān)鍵活動形成網(wǎng)絡(luò)中的關(guān)鍵路徑,非關(guān)鍵活動是那些可在某種程度上延誤而不會引起整個項目完成時間延誤的活動。,0,20,20,28,52,34,52,58,70,76,0,7,5,11,10,10,11,18,14,19,16,26,24,30,- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 運籌學(xué) 網(wǎng)絡(luò)分析
鏈接地址:http://m.appdesigncorp.com/p-3257496.html