1. 程式人生 > >AOE閘道器鍵路徑之白話解析

AOE閘道器鍵路徑之白話解析

一、AOE網的概念

使用有向圖來抽象工程,使用節點表示事件,有向邊表示活動,邊的權值表示活動執行時間,邊的方向代表事件觸發的先後順序,這樣的有向圖稱作AOE網,常被用作工程中預計進度。AOE網中入度為0(沒有雙親節點)的節點稱為源點,出度為0(沒有子節點)的節點稱為匯點,一般就工程抽象而來的AOE網,只有一個源點和一個匯點。從源點到匯點的過程即為工程的實施過程。

二、AOE網的目的

AOE網的一個主要目的是找出關鍵路徑(從源點到匯點的最大路徑長度稱作關鍵路徑),而這個關鍵路徑就是用來表示工程完成至少需要的時間。這裡也許初學者很是困惑,為什麼求耗時最小卻要找最長路徑長度,與以前學的最短路徑耗時最短有矛盾。如果你有這樣的困惑證明你的理解一開始出現了偏差,工程的完成是需要觸發所有的事件和活動的,也就是說工程完成所需最少時間是完成所有活動和事件所需的最少時間,而就AOE網而言,則是從源點觸發訪問所有的節點和邊最後到達匯點的時間為完成工程所需時間,那麼最少時間是要把所有活動事件花費的時間求和嗎?當然不是,在AOE網中,沒有前後順序關係的事件、邊是可以同時訪問的,即工程實施過程中,有些事件和活動是可以同時進行的。

如下圖,V2、V4、V3是可以同時進行的,因此,工程真正必須花費的時間是源點到匯點所有路徑中,由耗時最長的一條來決定的,又把它稱作關鍵路徑,因此AOE網只要找到一條最長路徑即可。