一、思路(你可以用拓扑排序来做,但我这里没用拓扑排序)
(1)求事件Vi的最早可能开始时间是从源点V0到顶点Vi的最长路径长度。
如V0=0, V1=6,V2=4,V3=5;V4事件要等V1和V2事件完成后才可以进行,所以要取事件用的最长的时间,即V4=6+1=7,同样道理得出其他时间。
(2)事件Vi的最迟允许开始时间Vl[i]是在保证汇点Vn-1在Ve[n-1]时刻完成的前提下,事件Vi的允许的最迟开始时间。它等于Ve[n-1]减去从Vi到Vn-1的最长路径。
如:事件V2=Ve[n-1]-(a7+a10)-a5 = 18-11-1=6
(3)活动ak的最早可能开始时间Ae[k]=Ve[i](k=1,2,…)(i=0,1,…)
(4)活动ak的最迟允许开始时间Al[k]=Vl[j]-<i,j>
(5)用Al[k]-Ae[k]表示活动ak的最早可能开始时间和最迟允许开始时间的时间余量,也叫做松弛时间。Al[k]==Ae[k]表示活动ak是没有时间余量的关键活动。
事件 |
V0 |
V1 |
V2 |
V3 |
V4 |
V5 |
V6 |
V7 |
V8 |
Ve[i] |
0 |
6 |
4 |
5 |
7 |
7 |
16 |
14 |
18 |
Vl[i] |
0 |
6 |
6 |
Ve[8]-a11-a9-a6=8 |
7 |
10 |
16 |
14 |
18 |
边 |
<0, 1> |
<0, 2> |
<0, 3> |