1. 程式人生 > >網絡計劃——關鍵路徑相關問題

網絡計劃——關鍵路徑相關問題

多條 發生 拓撲 bus blog aoe網 常見 做了 markdown

定義

關鍵路徑是指設計中從輸入到輸出經過的延時最長的邏輯路徑(從起點到終點的最長路徑)。

最簡單的求解辦法

有了這個概念就可以求解大部分常見問題啦,比如下面這個AOE網,求一下關鍵路徑和關鍵路徑長度

技術分享圖片
不就是最長的路徑嘛?像這種題如果是選擇、填空或者簡答題,最簡單的辦法就是列出所有路徑長度,找出最長的,就是答案了。此題有2個關鍵路徑,即V1-V2-V5-V7和V1-V4-V5-V7,長度都是10,答案就出來了。大概用時不到半分鐘,如果按步驟用正常方法,估計至少需要幾分鐘的時間。

常規求解辦法

但是遇到求解下面一些概念的時候,則不得不按常規方法做了:

(1) 事件開始的最早時間ve(i);
(2) 事件開始的最晚時間vl(i);
(3) 活動開始的最早時間e(i);
(4) 活動開始的最晚時間l(i) ;

定義e(i)=l(i)的活動叫關鍵活動,也就是關鍵路徑上的活動

下面還是以上圖為例,求解上面4個時間(註意AOE網中頂點代表事件,邊代表活動):
求解順序是,先求ve(i),然後是vl(i),再然後根據這兩個即可分別求得vl(i)、l(i)。

還是這個圖:
技術分享圖片

ve(i):

從起點開始向終點找
先看V1,作為第一個事件,V1的最早開始時間ve(i)毫無疑問應該是0;
然後是V2,從V1到它只有一條路徑(a1=3),那麽它的最早開始時間應該是0+3=3;
同理V3,應該就是0+2=2;
重點是V4,從V1到它有3條路徑,分別是(a1=3,a5=2)、(a2=6)、(a3=2,a6=1),其中第二個路徑最長為6,第3個最短為3。由最早開始,容易想到路徑最短,但是要註意AOE網下面的性質(2):
(1)只有在某頂點所代表的事件發生後,從該頂點出發的各有向邊所代表的活動才能開始。
(2)只有在進入某點的各有向邊所代表的活動都已結束,該頂點所代表的時事件才能發生。


只有a2完成後,才能算都結束,所以V4的最早開始時間ve(i)是6;

小結:Vi的最早開始時間ve(i)就是從起點到它的最長路徑

vl(i):

從終點開始向起點找
先看V7,算V7的ve(i)時就已經得出,從起點到它最多需要10,所以它的最晚開始時間vl(i)也不能再多於10 了,也即vl(i)=ve(i)=10。
然後是V6,V7最晚開始是10,而V6到V7需要4,所以V6再晚也不能晚於10-4=6吧;
同理V5,是10-3=7,V4,是7-1=6;
重點是V2,有V4和V5兩個事件限制它,V5需要它最晚不能晚於7-4=3,V4需要它不能晚於6-2=4,
所以它最晚不能晚於3不難理解吧?

小結:從終點倒推,終點的vl(i)=ve(i)

,事件i的直接後續事件減去活動時間為要求它最晚開始的事件,其中最小的一個就是它的vl(i);

所有事件的ve(i)和vl(i):
技術分享圖片

有了ve(i)和vl(i),e(i)和l(i)就好求了:

e(i):

ai的e(i)就等於ai的起點(弧頭)事件的ve(i),比如a1、a2、a3的e(i)等於V1的ve(i)都是0,a4的e(i)是3;

l(i):

ai的l(i)就等於ai的終點(弧尾)事件的vl(i)減去ai,比如a7的l(i)是V7的vl(i)減去ai,即10-4=6,a5、a2、a6的l(i)分布是6-2=4、6-6=0、6-1=5

最終結果:
技術分享圖片

其中e(i)=l(i)即e(i)-l(i)=0的活動,就是關鍵活動啦。

其他需要註意概念與性質

(1) 求關鍵路徑必須在拓撲排序的前提下進行,有環圖不能求關鍵路徑
(2) 只有縮短關鍵活動的工期才有可能縮短工期;
(3) 若一個關鍵活動不在所有的關鍵路徑上,減少它並不能減少工期;
(4) 只有在不改變關鍵路徑的前提下,縮短關鍵活動才能縮短整個工期。

註意這個“有可能”,還是以上題為例,如果把關鍵活動a4由4縮短為3,並不能縮短關鍵路徑的長度,它還是10,因為這樣V1-V4-V5-V7的最長度為9,已經不是關鍵路徑了;
那麽把公共的關鍵活動a9由3縮短為2呢?這樣是可以的,關鍵路徑長度變為9;
把a9由3縮短為1呢?那V1-V2-V5-V7和V1-V4-V5-V7就都不是關鍵路徑了;

習題

試試下面兩個題?

技術分享圖片
按簡單方法,是不是幾秒鐘就可以選出正確答案?
.
.
.
.
.
.
.
.
.
.
.
.
.
正確答案:A
從上至下第一條路徑的長度就是20,而選項裏最大就是20。

能有效縮短關鍵路徑長度的方法是()。
A.縮短任意一個活動的持續時間
B.縮短關鍵路徑上任意一個關鍵活動的持續時間
C.縮短多條關鍵路徑上共有的任意一個關鍵活動的持續時間
D.縮短所有關鍵路徑上共有的任意一個關鍵活動的持續時間

.
.
.
.
.
.
.
.
.
.
.
.
.
正確答案:D
關鍵路徑是始點和終點間的最長路徑,只有所有關鍵路徑的長度都縮短,整個圖的關鍵路徑才能有效縮短,但也不能任意縮短,一旦縮短到一定程度,該關鍵活動可能變成非關鍵活動了。

網絡計劃——關鍵路徑相關問題