?關鍵路徑法是在不考慮任何約束和假設條件的情況之下,根據項目進度網絡圖進行推演所得到項目進度結果的一種方法。
我們知道,項目中的所有活動,都有四個時間:活動的最早開始時間(ES)、活動的最早結束時間(EF)、活動的最晚開始時間(LS)和活動的最晚結束時間(LF),如下圖:
使用關鍵路徑法的要領就是采用順推法和逆推法分別計算出項目中每一個活動的最早開始時間(ES)、最早結束時間(EF)、最晚開始時間(LS)和最晚結束時間(LF)。
首先,采用順推法,按活動之間的邏輯順序,從前往后推算出每一個活動的最早開始時間(ES)和最早結束時間(EF);如果第一個活動從第0天開始計算,那么活動的最早結束時間 = 最早開始時間 + 工期,緊后活動的最早開始時間 = 緊前活動的最早結束時間(如果一個緊后活動有多個緊前活動,則緊后活動的最早開始時間 = 所有緊前活動的最早結束時間最大的那個值)(針對FS——完成到開始的邏輯關系);如果第一個活動從第1天開始計算,那么活動的最早結束時間 = 最早開始時間 + 工期 - 1(即活動的最早開始時間表示是當天上班,活動的最早結束時間表示是當天下班),緊后活動的最早開始時間 = 緊前活動的最早結束時間 + 1(如果一個緊后活動有多個緊前活動,則緊后活動的最早開始時間 = 所有緊前活動的最早結束時間最大的那個值 + 1)(針對FS——完成到開始的邏輯關系)。
利用順推法,在沒有推錯的情況之下,最后一個活動的最早結束時間就代表著本項目的工期(因為項目進度網絡圖中第一個活動和最后一個活動一定在關鍵路徑上。如果項目的最后一個活動有并列多個,則項目工期自然就是這些任務中最早結束時間最大的那個值)。
如下的這個項目進度網絡圖,如果第一個活動從第0天開始,則順推之后的結果如下:
如果第一個活動從第1天開始,則順推之后的結果如下:
然后再逆推,逆推法是從項目最后一個活動開始,反向將每個活動的最晚結束時間和最晚開始時間一一找出來;如果第一個活動取的是從第0天開始計算,那么最晚開始時間 = 最晚結束時間–工期,緊前活動的最晚結束時間 = 緊后活動的最晚開始時間(如果一個緊前活動有多個緊后活動,則緊前活動的最晚結束時間 = 所有緊后活動的最晚結束時間最小的那個值)(針對FS——完成到開始的邏輯關系);如果第一個活動取的是從第1天開始計算,那么最晚開始時間 = 最晚結束時間–工期 + 1(即活動的最晚結束時間表示是當天下班,活動的最晚開始時間表示是當天上班),緊前活動的最晚結束時間 = 緊后活動的最晚開始時間 - 1(如果一個緊前活動有多個緊后活動,則緊前活動的最晚結束時間 = 所有緊后活動的最晚結束時間最小的那個值 - 1)(針對FS——完成到開始的邏輯關系)。
采用逆推法時最后一個活動的最晚結束時間等于該活動的最早結束時間(如果項目的最后一個活動有并列多個,則并列為最后一個活動的所有活動的最晚結束時間自然就是這些活動中最早結束時間最大的那個值,即項目的工期)。
如下的這個項目進度網絡圖,如果第一個活動從第0天開始,則逆推之后的結果如下:
如果第一個活動從第1天開始,則逆推之后的結果如下:
關鍵路徑即為活動總時差(活動總時差 = 活動最晚開始時間–活動最早開始時間 = 活動最晚結束時間–活動最早結束時間)全為“0”的那(幾)條路徑(如上圖,關鍵路徑為ACDE)。