簡單理解關鍵路徑

一,關鍵路徑問題的相關概念

通常,一個項目可以被拆分成多個子項目,多個子項目間會具有並行和串行的特點。

例如造汽車時,造發動機和造車輪是兩個可以並行完成的任務,而組裝整車又必須等發動機和車輪等部件完成後才能開始,具有串行的特點。
舉例

  • 關鍵路徑是指能影響項目整體時間的活動和事件的集合,是項目中最長的路徑。
  • 關鍵路徑問題也即指從多個子項目中流程中找到影響項目整體運營時間的關鍵路徑。

對以上問題進行建模可以得到如下常用例子:
在這裏插入圖片描述

  • 活動結點(V1~V9),表示整個項目的階段性結點,比如V2就是活動W1的結束結點,也是W4的開始結點,類似於圖一中的組裝發動機結束,組裝完成等;
  • 活動持續時間(W1~W11),表示整個項目的子項目活動,其值表示該活動的持續時間。

我們先事後諸葛亮一把,可以知道其中W1>W4>W7>W10是關鍵路徑,我們把除以上四個活動其他活動的時間縮短,並不能縮短整個項目的時長,只有減少關鍵路徑上的活動持續時間才能減少整個項目的時間。也即,減少造輪子的時長對整個造車項目時長無影響,但縮短造發動機時長就能立即減少整個造車時長。

那怎麼才能找到這樣一條關鍵路徑呢?這裏我們需要引入一些概念:

AOE網(Activity On Edge Network)指一個帶權值有向圖中,結點表示活動結點,邊表示活動,權值表示活動持續時間。AOE網具有特性:

  • 只有所有引入邊表示的活動都完成後,該活動結點才達成。 比如使V5達成,必須要W4和W5代表的活動完成,如果一個沒完成就需要等待其完成(這裏有邏輯關係“and”的特點)。
  • 只有在活動結點達成後,從該結點出發的活動才能開始。 比如V5達成後,W7和W8事件才能開始。

另外,還有四個要用到的時間點定義:

  • 結點最早達成時間VE(Vertex Early):能達成該結點的最早時間,這就需要所以到該結點的活動都執行完(並不是最早到達該結點的時間,這點容易搞混,是必須所有活動到達的and關係,不是某個到達的or關係);
  • 結點最晚達成時間VL(Vertex Late):爲了在規定時間內使下一個結點達成,當前結點的最晚達成的時間,也可以稱爲下一任務的最晚開始時間。

對以上兩個概念進行舉例解釋,你有9個小時完成你的作業,你的作業完成需要2個小時,只要在9個小時內抽出2個時間完成作業即可,極端的選擇有兩種:
在這裏插入圖片描述其中V1表示開始寫作業結點,V2表示寫完作業結點。

如果選擇立馬開始寫作業,也即左圖,則結點V2最早達成時間VE(2) = 2,也即寫完作業結點最早達成在2時;

如果選擇最後再寫作業,也即右圖,則結點V1最晚達成時間VL(1) = 7,也即開始寫作業結點最晚達成要在7時;

  • 活動最早開始時間AE(Activity Early),指對應與邊的活動的最早開始時間,區別於結點。
  • 活動最晚開始時間AL(Activity Late),指對應邊的活動的最晚開始時間,區別於結點。

有人說,這和上面講的結點的兩個時間一樣啊,其實在單邊對單點時時一樣的,但如果出現對邊對單點,單點對多邊時,取值會不相同。以上四個定義的概念之間的準確關係爲:

  • VE(j) = max{VE(i) + W(i,j)},i可以取多個值,迭代過程從原點到終點;i左j右;
  • VL(i) = min{VL(j) – W(i,j)},j可以取多個值,迭代過程從終點到原點;i左j右;
  • AE(當前活動) = VE(當前活動的起始結點);通過結點時間求活動邊時間;
  • AL(當前活動) = VL(當前活動的結束結點) – W(當前活動);通過結點時間求活動邊時間;

二,關鍵路徑求解算法

  • 步驟1:求解所有結點的VE和VL;
  • 步驟2:根據VE和VL求解所有邊的AE和AL;
  • 步驟3:找到AE和AL相同的邊,連接起來及爲關鍵路徑。

以下圖爲例,完成上述步驟:
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

另一種解釋:

我們應該見過一種遊戲,我們關注這種遊戲的不同長度的方塊之間的位置關係,比如卒可以在黃忠旁邊上下移動。
在這裏插入圖片描述
這裏我們把每個活動的持續時間作爲方框的長度,根據活動之間的先後關係放置方框,可以將AOE網改成如下圖所示:
在這裏插入圖片描述其中V5有兩個活動輸入,則V5的位置在W4和W5之後,因爲W4更長因而選擇V5接在W4活動之後,同理V8和V9也是如此。我們也可以理解V5,V8,V9爲一種“多路對齊器”。

首先,整個項目的所有活動W1~W11都往左靠,也即儘量趕早運行,滿足“多路對齊器”,得到最早V9在18時完成項目。

再以18時爲結束時間,整體活動W1~W11往右靠,也即都趕晚運行,但也必須滿足V5,V8,V9處的“多路對齊器”。

可以發現活動W1,W4,W7,W10無論趕早趕晚,其路徑上的結點時間都不變,這就是關鍵路徑!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章