AOE網
1.介紹
定義:在帶權有向圖中,以頂點表示事件,有向邊表示活動,邊上的權值表示完成該活動的開銷,則稱這種有向圖爲用邊表示活動的網絡,簡稱爲AOE網(Activity On Edge Network)
性質:
- 只有在某頂點所代表的事件發生後,從該頂點出發的各有向邊所代表的活動才能開始
- 只有在進入某一頂點的各有向邊所代表的活動都已經結束時,該頂點所代表的事件才發生
2.幾個詞的解釋
ps:事件是點,活動是邊!!!
關鍵路徑:
從源點到匯點的所有路徑中,具有最長路徑長度的路徑,該路徑上的活動成爲關鍵活動(後面有用先記着)
事件V[k]
的最早發生時間ve[k]
:
從開始頂點V到V[k]的最長路徑長度。
事件V[k]
的最遲發生時間vl[k]
:
不推遲整個工程完成的前提下,即保證它所指向的事件Vi在ve(i)時刻能夠發生時,改事件最遲必鬚髮生的事件。
活動a[i]
的最早開始時間e[i]
: 活動a[i]用邊(V[k],V[j])
表示
e[i]=ve[k]
活動a[i]
的最遲開始時間l[i]
:
l[i]=vl[j]-Weight(V[k],V[j])
一個活動a[i]的鬆弛時間:
d[i]=l[i]-e[i]
或者d[i]=關鍵路徑長度-包含a[i]活動的最長路徑
3.計算
3.1 計算事件的最早和最遲發生時間
ve的計算方法爲從前往後計算,取最大值,例如對於F,ve(F)=max{ve(B)+a5,ve(E)+a7,ve(G)+a8}
,只有一個的話就只取一個,多個的話,多箇中取最大值
vl的計算方法爲從後往前計算,首先另終點J的vl值爲其ve,即vl(J)=ve(J)=18,然後多箇中取最小值,例如對於B,vl(B)=min{vl(C)-a2,vl(F)-a5,vl(D)-a3}=2
;若只有一個,例如對於H,vl(H)=vl(J)-a12=14
最終算出各個頂點的最早和最遲發生時間如下
V | ve(事件最早發生時間) | vl(事件最遲發生事件) |
---|---|---|
A | 0 | 0 |
B | 2 | 2 |
C | 5 | 5 |
D | 4 | 4 |
E | 10 | 10 |
F | 13 | 13 |
G | 7 | 7 |
H | 12 | 14 |
I | 13 | 16 |
J | 18 | 18 |
有以上可以得出ve==vl的點即爲關鍵路徑上的事件,即A,B,C,D,E,F,G,J,則有以上點連接的邊所代表的活動a1,a2,a3,a4,a6,a7,a8,a10疑似爲關鍵活動
注意:
關鍵路徑可能不只有一條,計算到這裏只能得出關鍵路徑上的事件,具體怎麼走還等計算活動的最早和最遲開始時間,如果僅僅需要計算出關鍵路徑,則只需計算幾個疑似關鍵活動的最早和最遲發生時間,爲了清楚,我們這裏就把全部活動的都計算出來
3.2活動的最早和最遲開始時間
活動最早開始時間: 例如a1,爲邊(A,B),則a1=ve(A)=0
;例如a2,爲邊(B,C),則a2=ve(B)=2
活動最晚開始時間:例如對於a1,爲邊(A,B),則a1=vl(B)-weight(a1)=2-2=0
;例如a12,爲邊(H,J),則a12=vl(J)-weight(a12)=18-4=14
最終結果如下
a | e(活動最早開始時間) | l(活動最遲開始事件) |
---|---|---|
a1 | 0 | 0 |
a2 | 2 | 2 |
a3 | 2 | 2 |
a4 | 5 | 5 |
a5 | 2 | 9 |
a6 | 4 | 4 |
a7 | 10 | 10 |
a8 | 7 | 7 |
a9 | 10 | 12 |
a10 | 13 | 13 |
a11 | 7 | 10 |
a12 | 12 | 14 |
a13 | 13 | 16 |
找出e==l的活動ai,這裏爲a1,a2,a3,a4,a6,a7,a8,a10;經觀察可發現這裏有兩條關鍵路徑,分別爲a1,a2,a4,a7,a10和a1,a3,a6,a8,a10
又比如問一個活動的鬆弛時間,即活動ai在不拖延總工程時間的情況下,該活動可以拖延的時間,有兩種解法,比如問BF的鬆弛時間:
解1:BF=a5,所以鬆弛時間=l(a5)-e(a5)=7
解2:包含BF活動的最長路徑爲ABFJ,其長度爲11,又因爲關鍵路徑長度爲18,所以鬆弛時間爲18-11=7