1. 程式人生 > >關鍵路徑演算法——AOE網

關鍵路徑演算法——AOE網

AOV網——類似於拓撲排序的樣子,即用有向圖來描述和分析一項工程和計劃的實施過程。

AOE網——即在AOV網上加上權重,有向圖中以頂點表示事件有向邊代表活動,邊上的權重代表活動持續的時間。AOE網與AOV網的區別在於:AOE網不僅僅關心整個工程中各個自工程的實施先後順序,同時也關心整個工程完成的最短時間。

AOE網的特點:只有一個起點和一個終點

關鍵路徑演算法:

關鍵路徑:AOE網中,從起點到終點最長的路徑長度(由於要將所有的活動都完成才算是結束,所以只有按照最長時間的活動路徑來計算。)長度指的是路徑上邊的權重和。

關鍵活動:關鍵路徑上的邊。

最早發生時間:從V0到Vi的最長路徑的長度。

活動的最早發生時間:e(i)表示活動a(i)最早發生時間,例如從V0到V3,有兩條路徑,一條8天完成,一條12天完成,但是活動未完成,V3事件開始不了,所以要等到最長的活動結束,V3事件才能開始,即為最早發生時間。

活動最遲發生時間:用 l(i) 表示,不推遲工期的最晚開工時間

最早發生時間和最遲發生時間是不一樣的概念。兩者區別再後續總結。

關鍵活動:e(i) = l(i) 的活動 a(i) 稱為關鍵活動。

關鍵路徑的步驟:

以上圖為例,最好用表格計算V0——V9事件的關鍵路徑,計算特點:順序計算!從前往後

V1 V2 V3 V4 V5 V6 V7 V8 V9
V0開始,最早發生時間e(i) 3 4 12 15 11 24 19 24 27

所以關鍵路徑應為V0——>V2——>V3——>V4——>V7——>V8——>V9,以上數均為各個活動的最早發生時間。

活動最遲發生時間:計算特點:倒序計算!從後往前

V1 V2 V3 V4 V5 V6 V7 V8 V9
從V9倒推導V0資料 l(i) 9 4 12 15 13 25 19 24 27

在這會發現一個問題,在倒退到V1,V2,V4時,會出現兩個數值,選擇小的那個數值。

當 e(i) = l(i) 時,a(i)為關鍵活動。所以我們可以找到關鍵活動為a(2),a(3),a(4),a(7),a(8),a(9),會發現剛好與上面關鍵路徑相符。

程式碼暫時忽略,後期補充