關鍵路徑法是軟考的知識點,我分析了常見的模棱兩可的知識點,并進行了圖解說明,現在分享給正在準備參加軟考試的廣大考友。
01什么是關鍵路徑法CPM?
關鍵路徑法用于在進度模型中估算項目最短工期,確定邏輯網絡路徑的進度靈活性大小。這種進度網絡分析技術在不考慮任何資源限制的情況下,沿進度網絡路徑使用順推與逆推法,計算出所有活動的最早開始ES、最早結束EF、最晚開始LS和最晚完成LF日期。
由此得到的最早和最晚的開始和結束日期并不一定就是項目進度計劃,而只是把既定的參數(活動持續時間、邏輯關系、提前量、滯后量和其他已知的制約因素)輸入進度模型后所得到的一種結果,表明活動可以在該時段內實施。
02什么是關鍵路徑法
關鍵路徑是項目中時間最長的活動順序,決定著可能的項目最短工期。
計算關鍵路徑的長度時,需要將路徑上的所有活動的持續時間、提前量(負的)和滯后量(正的)加總在一起。
最長路徑的總浮動時間最少,通常為零;進度網絡圖可能有多條關鍵路徑。
長度僅次于關鍵路徑的路徑稱為次關鍵路徑,次關鍵路徑也可能有多條。
借助進度計劃軟件來規劃時,為了達成相關方的限制要求,可以自行定義用于確定關鍵路徑的參數。
03關鍵路徑法的作用
關鍵路徑法用來計算進度模型中的關鍵路徑、總浮動時間和自由浮動時間,或邏輯網絡路徑的進度靈活性大小。
04最早時間和最晚時間
1. 最早開始結束時間
ES:最早開始時間(Earliest Start),是指某項活動能夠開始的最早時間,只決定于項目計劃,只要計劃的條件滿足了就可以開始的時間。
EF:最早結束時間(Earliest Finish),是指某項活動能夠完成的最早時間。其中EF = ES+DU, DU為活動持續時間,順推法先知道開始時間。
2. 最晚結束和開始時間
LF:最遲結束時間(Latest Finish),是指為了使項目在要求完工時間內完成,某項活動必須完成的最遲時間。往往決定于相關方(客戶或管理層)的限制。
LS:最遲開始時間(Latest Start),是指為了使項目在要求完工時間內完成,某項活動必須開始的最遲時間。其中LS = LF -DU,DU為持續時間,逆推法先知道結束時間。
3. 圖形表示
按照《PMBOK指南》的推薦,采用圖6-24的方式來標注活動的ES、EF、DU、LF、LS以及活動名稱(ID)
@提示:在考試中未必需要把圖6-24的格子畫出來,只需要按照圖中的方位進行標注就可以了,這樣做的好處時在計算TF和FF時不容易出錯。TF和FF的計算方法參見本節后續內容。
4. 活動從第0天開始還是從第1天開始
采用順推法和逆推法進行進度網絡路徑計算時,需要關注活動是從第0天開始還是從第1天開始,不同的假設計算的結果是不一樣的。首先需要明確以下幾個概念。
活動的持續時間DU是指活動的工作時間段,例如一個活動持續時間是24小時,是指3個工作日(每天8小時)。
活動的開始時間是指活動開工日的上班開始時間;活動結束是指開工日的下班時間。也就是說假設一個活動的持續時間是2天,是指從第1天上班時間,到第2天下班時間的所有工作時間段。
所謂活動從第0天還是第1天開始,意思是說要不要把活動開始的那一天計算在工作時間段內。因為現實中第0天是不存在的,所以活動開始的那一天就不需要計算在內;而活動從第1天開始,由于第1天是存在的,就需要計算在工作時間段內。這兩種情況導致當前活動的EF或者LS,緊后活動的ES和LF在計算時要考慮是否減去或加上這1天的問題。
無論是從第0天開始,還是第1天開始,都不會影響關鍵路徑的和浮動時間的計算方法,但是考試中如果弄錯了則會影響計算結果,考試中為了簡化計算通常采用第0天開始,現實中為了與實際相符合通常采用第1天開始。下面就這兩種方式舉例說明。
圖6-25
第一種情況:活動從第0天開始。如圖6-25
計算公式如下:
(1) 對于當前活動:
順推時 EF = ES + DU;
逆推時 LS= LF – DU
(2)對于緊后活動:
順推時ESi= EFi-1,;
順推時LFi-1 = LS i (例如逆推時活動C相當于活動D的緊后活動)
其中自左向右,“i”代表當前活動,則“i-1”代表“i”的緊前活動。
例如:對于活動A、B的最早時間:
EFA= ESA+DU = 0+5 = 5,
ESB = EFA= 5;
對于活動D和C的最晚時間:
LSD= LFD – DU = 30 -15 =15,
LFC = LSD= 15;
第二種情況:活動從第1天開始。如圖6-26
圖6-26
對于當前活動
順推時 EF = (ES + DU)-1;
逆推時 LS =(LF – DU)+1
對于緊后活動
順推時ESi= EFi-1 +1;
逆推時LFi-1 = LS i -1
其中自左向右,“i”代表當前活動,則“i-1”代表“i”的緊前活動。例如:
對于活動A、B的最早時間:
EFA= ESA+DU-1 = 1+5-1 = 5,
ESB = EFA+1= 5+1 = 6;
對于活動D和C的最晚時間:
LSD= LFD – DU+1 = 30 -15 +1 =16,
LFC =LSD -1 = 15;
@提示:從上兩種計算方法來看,活動從第0天開始顯然對人工計算來說更加直觀簡便,這種方法的缺點是與日歷日期的對應關系是不一致的。活動從第1天開始計算的結果與日歷日期是一致的,但是計算過程是不直觀的。好在考試中一般不會涉及具體的日歷日期,所以推薦使用活動從第0天開始的計算方法。
05順推法與逆推法
自左向右計算最早時間稱為順推;自右向左計算最晚時間稱為逆推。
圖6-27
在順推時會出現如圖6-27(左)的情況,即當前活動有兩個和兩個以上的緊前活動,那么當前活動的ES的取值應該遵循順推取最大的原則,
即ES0 = MAX(EF1,EF2,……)
在逆推時也會出現如圖6-27(右)的情況,即當前活動有兩個和兩個以上的緊后活動,那么當前活動的ES的取值應該遵循逆推取最小的原則,
即ES0 = MIN(EF1,EF2,……)。
@提示:順推法得到的最早工期代表項目期望的計劃工期;逆推法時設定的最晚工期代表相關方的期望工期。
1. 總浮動時間TF
定義:在任一網絡路徑上,進度活動可以從最早開始日期推遲或拖延的時間,而不至于延誤項目完成日期或違反進度制約因素,就是總浮動時間或進度靈活性。
取值:在進行緊前關系繪圖法排序的過程中,取決于所用的制約因素,關鍵路徑的總浮動時間可能是正值、零或負值。
總浮動時間為正值,是由于逆推計算所使用的進度制約因素要晚于順推計算所得出的最早完成日期,即給定的工期比計劃的工期要長。
總浮動時間為負值,是由于持續時間和邏輯關系違反了對最晚日期的制約因素,即給定的工期要比計劃的工期要短。
計算方法:TF = LS – ES = LF – EF,即按照圖6-28箭頭所示的方向求值。
圖6-28
2. 負值浮動時間分析
關鍵路徑出現負的浮動時間意味著,如果不采取措施項目將延期。
負值浮動時間分析是一種有助于找到推動延遲的進度回到正軌的方法的技術,從而找到保證工期的途徑。
為了使網絡路徑的總浮動時間為零或正值,可能需要調整活動持續時間(可增加資源或縮減范圍時)、邏輯關系(針對選擇性依賴關系時)、提前量和滯后量,或其他進度制約因素。
3. 自由浮動時間FF
自由浮動時間就是指在不延誤任何緊后活動最早開始日期或不違反進度制約因素的前提下,某進度活動可以推遲的時間量。
總浮動時間可能等于大于自由浮動時間,TF≥FF。
計算方法,如圖6-29所示
圖6-29
對于圖6-29(左)的情況:活動0的FF0 = ES1 – EF0
對于圖6-29(右)的情況:活動0的FF0 = MIN{ (ES1 – EF0),(ES2 – EF0) ,……}
@提示:由于自由浮動時間的計算涉及前后活動之間的參數不容易記憶,只要記住圖6-29所示的計算方式就不容易搞錯了。
4. 項目浮動
一個項目可以延誤但不影響外界(如客戶或發起人)限制的完工日期的時間。例如客戶要求11.11號完工,項目團隊的計劃是在11.1完工,那么二者之間就有10天的浮動時間;如果按照客戶要求日期完工,則項目浮動會反映在總浮動時間上。
關鍵路徑常見考點小結,請參考表6-7。
表6-7
06關鍵路徑法完整的計算示例
請計算如表6-8所列活動的關鍵路徑,并完成順推計算最早時間和逆推計算最晚時間,計算所有活動的TF和“活動C”的自由浮動時間FF。
表6-8
第一步,畫出網絡圖。如圖6-30(1)
圖6-30(1)
第二步:計算關鍵路徑。列出所有可能的路徑,比較其長度
路徑A-B-F長度為2+2+2 = 6
路徑A-C-F長度為2+3+2 = 7
路徑A-D-E-F長度為2+4+2+2 = 9
故關鍵路徑為A-D-E-F,長度為9
第三步:順推。計算最早時間,按照從第0天開始,如圖6-30(2)
圖6-30(2)
第四步:逆推。計算最晚時間,如圖6-30(3)
圖6-30(3)
第五步,計算所有活動的TF和活動C的FF。如圖6-30(4)所示。活動C的FF為:
FFc = ESF-EFc=8 – 5 = 3
或者采取另一種方法:
FFc = 關鍵路徑耗時 – 包含活動C的路徑耗時 = 10 -- 7 = 3
獲取更多知識,請點擊關注:
嵌入式Linux&ARM
CSDN博客
簡書博客