數據結構——手工求解關鍵路徑


這里先回顧一下幾個概念:

AOE網

AOE網是活動在邊上的網(Activity On Edge network,AOE)的英文簡稱。AOE網是用有向圖來表示的,在有向圖中,邊表示活動,邊具有權值,邊的權值代表了活動的持續時間。頂點表示事件,事件是圖中新活動開始或者舊活動結束的標識。與AOV網相同的是,AOE網也是有向無環圖,不同的是在AOV網中頂點表示活動,邊無權值,邊代表活動之間的先后關系。對於一個表示工程的AOE網,只存在一個入度為0的頂點,成為源點,表示整個工程的開始;也只有一個出度為0的頂點,稱為匯點,表示整個工程的結束。

關鍵路徑

在AOE網中,從源點到匯點的所有路徑中,具有最大路徑長度的路徑成為關鍵路徑。關鍵路徑所代表的時間就是完成整個工期的最短時間。關鍵路徑上的活動(邊)稱為關鍵活動。

事件最早發生時間ve(k)

設ve(k)代表事件(頂點)k的最早發生時間,即從源點到頂點k的路徑中的最長者,即ve(k)=max{ve(j)+<j,k>},其中j為k的前驅事件,且j可能有多個。初始時,將源點事件的最早發生時間ve(0)設置為0。

事件最晚發生時間vl(k)

設vl(k)代表事件(頂點)k的最晚發生時間,即在不推遲整個工程完成的前提下,事件k最遲必須發生的時間,即vl(k)=min{vl(j)-<k,j>},其中j為k的后繼事件,j可能有多個。對於匯點時間來說,它的最早發生時間是整個工程的結束時間,因此他的最早發生時間也是最遲發生時間,即初始時將匯點事件的最晚發生時間vl(n)設置為ve(n)。

活動最早發生時間e(i)

設e(ak)代表當前活動(邊)ak的最早發生時間,由於事件代表一個新活動的開始或一個舊活動的結束,因此事件的最早發生時間就是有這個事件所發出的活動的最早時間。即若存在邊ak1:<i,j>,ak2:<k,j>,則e(ak1)=e(ak2)=ve(i)。

活動最晚發生時間l(i)

設l(ak)代表當前活動(邊)ak的最晚發生時間,由於圖中事件的最遲發生時間代表了以它為結束點的活動的最遲結束時間,因此用時間的最遲發生時間減去以它為結束點的活動的持續時間,就得到活動的最遲發生時間。即若存在邊ak:<i,j>,權值為w,則l(ak)=vl(j)-w。

獲取關鍵活動與關鍵路徑

對於每個活動(頂點),如果活動的最早發生時間和最晚發生時間相同,則該活動就是關鍵活動。活動剩余時間等於活動的最晚發生時間減去活動的最早發生時間,剩余時間反映了該活動完成的一種松弛度。關鍵活動的活動剩余時間為0,這也體現了關鍵活動在整個工程中的重要性,關鍵活動沒有緩期執行的余地。而由關鍵活動(頂點)組成的路徑就是關鍵路徑。

手工求解關鍵路徑

 

1、改造圖

在草稿紙上對圖進行改造,將頂點代表的事件用圓形表示,一份為二,表示事件最早發生時間和事件最遲發生時間;將邊代表的活動用矩形表示,同樣一份為二,表示活動最早開始時間和最遲開始時間。

 

 

 

 

2、求ve

 

3、求vl

4、求e

5、求l

6、求關鍵路徑、關鍵活動

7、制表

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM