關鍵路徑求法

2021-08-17 15:20:42 字數 1515 閱讀 8803

關鍵路徑概念:

在無迴路的有向網路中,假設只有乙個入度為0的頂點(稱為源點)和乙個出度為0的頂點(稱為匯點),則從源點到匯點之間的最長的路徑稱為關鍵路徑。

aoe網:

無迴路有向網路可以用來表示乙個包含多項活動的工程計畫:有向邊表示一項活動,邊上的權表示完成這項活動需要的時間;頂點表示"所有入邊代表的活動已完成,出邊代表的活動可以開始"這樣一種狀態或者事件,其中源點表示工程的開始,匯點表示工程的結束;源點到匯點的某一關鍵路徑上邊的權值之和表示完成整個工程的計畫時間。

通過求有向網路的關鍵路徑,可以算出整個工程從開始到結束至少需要多少時間;可以知道哪些活動是影響工程進度的關鍵活動。

這種用邊表示活動且只有乙個源點和乙個匯點的無迴路有向網路稱為邊表示活動的網,簡稱aoe網。

兩個與頂點有關的量:

在下面的討論中,假定aoe網有n個頂點,源點是v1,匯點是vn。

事件vi的可能的最早發生時間earliest(i),它等於從源點v1到頂點vi的最長路徑長度。

-最遲發生時間

在保證匯點事件vn在earliest(n)時刻發生的前提下,事件vi允許的最遲發生時間latest(i),它等於earliest(i)減去從頂點vi到匯點vn的最長路徑長度。

earliest陣列的計算方法:

-令earliest(1)=0;

-按頂點的拓撲順序計算earliest(j):

earliest(j)=max

-例如earliest(a)=max

latest陣列的計算方法:

-令latest(n)=earliest(n);

-按頂點的逆拓撲順序計算latest(i):

latest(i)=min

-例如:

latest(a)=min

兩個與邊有關的量:

對於活動ak=,可以定義它的可能的最早開始時間和允許的最遲開始時間。

(最早發生,從前往後算;最遲發生,從後往前算。)

求關鍵路徑的演算法:

1、計算每個事件可能的最早發生時間

//計算每個事件可能的最早發生時間

templatevoid extlgraph:: earliest(int* earliest, int* order)

} }

2、計算每個事件允許的最遲發生時間

//計算每個事件允許的最遲發生時間

templatevoid extlgraph:: latest(int* latest,int* order,int longest)}}

3、輸出關鍵活動

最早發生時間和最遲發生時間相等的事件,一般就是關鍵活動。

從源點到匯點具有最大長度的路徑叫關鍵路徑,在關鍵路徑上的活動稱為關鍵活動。

Codeup關鍵路徑 關鍵路徑

時間限制 1 sec 記憶體限制 128 mb 提交 261 解決 90 提交 狀態 討論版 命題人 外部匯入 描述 圖的連線邊上的資料表示其權值,帶權值的圖稱作網。上圖可描述為頂點集為 a,b,c,d,e 邊集及其權值為 始點,終點 權值 a b 3 a c 2 b d 5 c d 7 c e 4...

單源最短路徑的求法

2.最短路徑 演算法思想 設圖中有n個結點,設定乙個集會u,存放已經求出最短路徑的結點 初始時u中的元素是源點 v u是尚未確定最短路徑的頂點的集合。每次從v u集合中找這樣乙個結點best j best j是u集合中結點的鄰接點,到源點的距離最短 等於到父結點的距離加上父結點到源點的距離 然後把該...

關鍵路徑法

關鍵路徑法 critical path method,cpm 又稱為要徑法,是計畫專案活動中用到的一種算術方法。1 對於有效的計畫管理而言,關鍵路徑是乙個十分重要的工具。與計畫評核術 project evaluation and reviewtechniqu,pert 非常類似。要徑法所使用的估計作...