開場白
最近在準備14年下半年的信息系統項目管理師考試,想着先攻克下午的計算題,把計算題從概念到計算方法,再到具體實例全部整理出來,這樣看一遍也就徹底的明白了。準備着整理一個類型發佈一篇文章,算是開了一個系列吧。
文章都是自己收集來的,由簡入繁,由淺入深,再加上自己的理解,其中難免有紕漏,若路過此處的同行發現錯誤或有更好的解題思路,請不吝賜教。
關鍵路徑法(CriticalPath Method, CPM)是一種基於數學計算的項目計劃管理方法,是網絡圖計劃方法的一種。關鍵路徑法將項目分解成爲多個獨立的活動並確定每個活動的工期,然後用邏輯關係(結束-開始、結束-結束、開始-開始和開始-結束)將活動連接,從而能夠計算項目的工期、各個活動時間特點(最早最晚時間、時差)等。在關鍵路徑法的活動上加載資源後,還能夠對項目的資源需求和分配進行分析。關鍵路徑法是現代項目管理中最重要的一種分析工具。
計劃評審方法(program evaluation and review technique, PERT)和關鍵路線法CriticalPath Method,CPM)是網絡分析的重要組成部分,它廣泛地用於系統分析和項目管理,由於PERT與CPM既有着相同的目標應用,又有很多相同的術語,這兩種方法已合併爲一種方法,在國外稱爲PERT/CPM,在國內稱爲統籌方法(scheduling method)。
根據繪製方法的不同,關鍵路徑法可以分爲兩種:即箭線圖(ADM)和前導圖(PDM)。
無論是關鍵路徑法(CPM)還是計劃評審法(PERT),最初使用的表示方法都是箭線法(ADM),在之後很長的一段時間箭線法(ADM)都是人們主要使用的方法,直到70年代以後,前導圖(PDM)纔開始逐漸流行起來,但是箭線法(ADM)仍然使用極爲廣泛。在90年代以後,美國Primavera公司開發出其Windows版本的計劃管理軟件時,只採用前導圖(PDM)作爲其計算平臺,從根本上改變了這一局面,從此以後,前導圖(PDM)成了人們主要使用的方法,而箭線圖(ADM)則很少使用。(所以這裏只研究前導圖PDM的計算方法)。
在國外前導圖(PDM)基本已經成爲唯一在使用的方法,而箭線圖(ADM)只有在教學和培訓中還有時用到。而發展勢頭曾一度壓過關鍵路徑法(CPM)的計劃評審技術(PERT),正在使用的已經很少了。
箭線圖(ADM)法又稱爲雙代號網絡圖法,它是以箭線表示活動而以帶編號的節點連接活動,活動間可以有一種邏輯關係,結束-開始型邏輯關係。在箭線圖中,有一些實際的邏輯關係無法表示,所以在箭線圖中需要引入虛工作的概念。
前導圖(PDM)法又稱爲單代號網絡圖法,它是以節點表示活動而以節點間的連線表示活動間的邏輯關係,活動間可以有四種邏輯關係,結束-開始、結束-結束、開始-開始和開始-結束。
PDM有4種依賴和前導關係,如下(前:代表前導任務:後:代表後續任務):
(前)完成-(後)開始:前導任務的完成導致後續任務的啓動。
(前)完成-(後)完成:前導任務的完成導致後續任務的完成。
(前)開始-(後)開始:前導任務的啓動導致後續任務的啓動。
(前)開始-(後)完成:前導任務的啓動導致後續任務的完成。
以上關係中,完成-開始模式是最常用的任務關係,開始-結束模式是最少使用的任務關係。
通常,每個節點的活動會有如下幾個時間:最早開始時間(ES)、最遲開始時間(LS)、最早結束時間(EF)、最遲結束時間(LF)。
最早開始時間(Early Start)某項活動能夠開始的最早時間。
最早結束時間(Early Finish)某項活動能夠完成的最早時間。EF=ES+工期估算
最遲結束時間(Late Finish)爲了使項目按時完成,某項工作必須完成的最遲時間。
最遲開始時間(Late Start)爲了使項目按時完成,某項工作必須開始的最遲時間。
總時差(Total Float) 指一項活動在不影響整體計劃工期的情況下最大的浮動時間,本活動的最遲開始時間(減)本活動的最早開始時間。(物理含義:總時差是該工作的開工允許延誤的時間,在該時間內,不影響項目的工期。)
自由時差(Free Float)指活動在不影響其緊後工作的最早開始時間的情況下可以浮動的時間,緊後活動的最早開始時間(減)本活動的最早結束時間(如果有多個緊後活動,則緊後活動的最早開始時間是這些活動的最早開始時間的最早者)。(物理含義:自由時差是該工作的完工允許延誤的時間,在該時間內不影響項目的工期。)
計算PDM的方法:
使用正推法計算最早開始時間(ES),最早結束時間(EF)
使用逆推法計算最遲開始時間(LS),最遲結束時間(LF)
開始節點ES爲0時:
總時差=LS-ES或LF-EF;
工期=EF-ES或LF-LS;
自由時差=緊後工作的ES-此活動的EF。
開始節點ES爲1時:
總時差=LS-ES或LF-EF;
工期=EF-ES+1或LF-LS+1
自由時差=緊後工作的ES-此活動的EF-1
總時差:相同的減。工期:結束減開始。自由時差:晚始-早始=晚完-早完,後早始-前早結。
前導圖PDM的繪製方法及說明:
1)畫出網絡圖,以節點標明事件,由箭頭代表作業。這樣可以對整個項目有一個整體概觀。習慣上項目開始於左方終止於右方。
2)在箭頭上標出每項作業的持續時間(T)
3)從左面開始,計算每項作業的最早結束時間(EF)。該時間等於最早可能的開始時間(ES)加上該作業的持續時間。
4)當所有的計算都完成時,最後算出的時間就是完成整個項目所需要的時間。
5)從右邊開始,根據整個項目的持續時間決定每項作業的最遲結束時間(LF)。
6)最遲結束時間減去作業的持續時間得到最遲開始時間(LS)。
7)每項作業的最遲結束時間與最早結束時間,或者最遲開始時間與最早開始時間的差額就是該作業的時差。
8)如果某作業的時差爲零,那麼該作業就在關鍵路線上。
9)項目的關聯路線就是所有作業的時差爲零的路線。
先看CPM的實例,再來具體分析,帶着問題來分析,這樣印象會更爲深刻:
實例一、在工程網絡計劃中,工作M的最早開始時間爲第16天,其持續時間爲5天。該工作有三項緊後工作,他們的最早開始時間分別爲第25天、第27天和第30天,最遲開始時間分別爲第28天、第29天和第30天。則工作M的總時差爲()天。
A、5 B、6 C、7 D、9
解析:工作M的最早開始時間爲第16天,其持續時間爲5天。因此,工作M的最早結束時間爲第16+5=21天。工作M有三項緊後工作,他們的最遲開始時間分別爲第28天、第29天和第30天。因此工作M的最遲結束時間爲三者之中最小的第28天。工作M的總時差=工作M的最遲結束時間-工作M的最早結束時間=28-21=7天。答案選C。
實例二、下圖爲某工程進度網絡圖,結點1爲起點,結點11爲終點,那麼關鍵路徑爲(1),此工程最快(2)天完成。
(1)A、1-3-5-8-9-10-11 B、1-2-4-7-11 C、1-3-5-7-11 D、1-2-5-8-10-11
(2)A、18 B、28 C、22 D、20
答案:(12)A,(13)B
實例三、某項目最初的網絡圖如下圖所示,爲了壓縮進度,項目經理根據實際情況使用了快速跟進的方法:在任務A已經開始一天後開始實施任務C,從而使任務C與任務A並行3天。這種做法將使項目()。
A、完工日期不變 B、提前4天完成 C、提前3天完成 D、提前2天完成
答案:D
實例四、下圖中活動G可以拖延( )周而不會延長項目的最終結束日期。
A、0 B、1 C、3 D、4
答案:D
實例五、一項任務的最早開始時間是第3天,最晚開始時間是第13天,最早完成時間第9天,最晚完成時間第19天。該任務( )。
A、在關鍵路徑上 B、有滯後 C、時展情況良好 D、不在關鍵路徑上
解析:若在關鍵路徑上,則ES=LS且EF=LF,故選D。
實例六、某項目的時標網絡圖如下圖所示(時間單位:周),在項目實施過程中,因負責某個子項目實施的網絡工程師失誤操作發生了質量事故,需整頓返工,造成4~6之間的作業拖後3周,受此影響,工程的總工期將會拖延( )周。
A、0 B、1 C、2 D、3
答案:B
實例七、某車間需要用一臺車牀和一臺銑牀加工A,B,C,D 4個零件。每個零件都需要先用車牀加工,再用銑牀加工。車牀和銑牀加工每個零件所需的工時(包括加工前的準備時間以及加工後的處理時間)如下表所示。
工時(小時) | A | B | C | D |
車牀 | 8 | 4 | 6 | 6 |
銑牀 | 6 | 7 | 2 | 5 |
若以A,B,C,D零件順序安排加工,則共需29小時。適當調整零件加工順序,可產生不同實施方案,在各種實施方案中,完成4個零件加工至少共需()小時。
A.25 B.26 C.27 D.28
對於指定的加工順序,如何描述其加工所需的時間(加工進度計劃)呢?這是解答本題首先需要解決的問題。以順序安排加工A,B,C,D 4個零件爲例,人們可以用甘特圖將工作進度計劃描述如下。
其中橫軸表示時間,從零件A在車牀上加工開始作爲座標0,並以小時爲單位。縱軸表示車牀和銑牀。
車牀和銑牀加工某零件的進度情況(從一時刻到另一時刻)以橫道表示。
在車牀上,零件A,B,C,D一個接一個順序加工,需要8+4+6+6=24小時。
在銑牀上,零件A只能等車牀加工完A後纔開始,所以,其橫道的橫座標爲8~14;零件B只能等車牀加工完B後纔開始,所以,其橫道的橫座標爲14~21;零件C只能等車牀加工完C後纔開始,所以,其橫道的橫座標爲21~23;零件D只能等車牀加工完D後纔開始,所以,其橫道的橫座標爲24~29。
這樣,順序加工A,B,C,D零件總共需要29小時。
從上例看出,爲縮短總工時,應適當安排加工零件的順序,以縮短銑牀最後的加工時間(車牀完工後還需要用銑牀的時間),並縮短車牀最先的加工時間(銑牀啓動前需要等待的時間)。所以我們應採取如下原則來安排零件的加工順序:
在給定的工時表中找出最小值,如果它是銑牀時間,則該零件應最後加工;如果它是車牀時間,則該零件應最先加工。除去該零件後,又可以按此原則繼續進行安排。按此原則,本題中,最小工時爲2小時,這是零件C所用的銑牀加工時間。所以,零件C應放在最後加工。除去零件C後,最小工時爲4小時,這是零件B所需的車牀加工時間。所以,零件B應最先加工。再除去零件B以後,工時表中最小的時間爲5小時,是零件D所需的銑牀加工時間。因此,零件D應安排在零件C之前加工。
這樣,最優方案應是按B,A,D,C零件的順序來加工,其甘特圖如下。
在車牀上,零件B,A,D,C一個接一個順序加工,需要4+8+6+6=24小時。
在銑牀上,零件B只能等車牀加工完後纔開始,所以,其橫道的橫座標爲4~11;零件A只能等車牀加工完後纔開始,所以,其橫道的橫座標爲12~18;零件D可以在銑牀加工完A後立即開始(此時車牀已加工完零件D),所以,其橫道的橫座標爲18~23;零件C只能等車牀加工完C才能開始(此時銑牀已加工完零件D),所以,其橫道的橫座標爲24~26。
這樣,按B,A,D,C零件順序進行加工,總共只需要26小時。這是最優方案。
參考答案:B
實例八、
解析:
CPM在項目管理中的應用
對於一個項目而言,只有項目網絡中最長的或耗時最多的活動完成之後,項目才能結束,這條最長的活動路線就叫關鍵路徑(Critical Path),組成關鍵路徑的活動稱爲關鍵活動。其通常做法是:
1) 將項目分解爲若干個任務(WBS),各項任務視爲有一個時間屬性的結點,從項目起點到終點進行排列。
2) 用有方向的線段標出各結點的緊前活動和緊後活動的關係,使之成爲一個有方向的網絡圖。
3) 用正推法和逆推法計算出各個活動的最早開始時間,最晚開始時間,最早完工時間和最遲完工時間,並計算出各個活動的時差。
4) 找出所有時差爲零或者爲負數的活動所組成的路線,即爲關鍵路徑。
5) 識別出準關鍵路徑,爲網絡優化提供約束條件。
它具有以下特點:
1)關鍵路徑上的活動持續時間決定了項目的工期,關鍵路徑上所有活動的持續時間總和就是項目的工期。
2)關鍵路徑上的任何一個活動都是關鍵活動,其中任何一個活動的延遲都會導致整個項目完工時間的延遲。
3)關鍵路徑上的耗時是可以完工的最短時間量,若縮短關鍵路徑的總耗時,會縮短項目工期;反之,則會延長整個項目的總工期。但是如果縮短非關鍵路徑上的各個活動所需要的時間,也不至於影響工程的完工時間。
4)關鍵路徑上活動是總時差最小的活動,改變其中某個活動的耗時,可能使關鍵路徑發生變化。
5)可以存在多條關鍵路徑,它們各自的時間總量肯定相等,即可完工的總工期。
關鍵路徑是相對的,也可以是變化的。在採取一定的技術組織措施之後,關鍵路徑有可能變爲非關鍵路徑,而非關鍵路徑也有可能變爲關鍵路徑。
關鍵路徑的基本問題:
1、 什麼是關鍵路徑?
只有項目網絡中最長的或耗時最多的活動完成之後,項目才能結束,這條最長的活動路線就叫關鍵路徑(Critical Path)
2、 關鍵路徑可以超過一條嗎?
可以,可以有兩條甚至以上。
3、 關鍵路徑是一成不變的嗎?
不是,在進度計劃的優化或項目實施過程中,關鍵路徑可能發生變化。
4、 關鍵路徑越多,對項目意味着什麼?
關鍵路徑越多,項目的風險越大,就越難管理。
5、 關鍵路徑上可以有虛活動嗎?
可以(在箭線法中)。
6、 會出現負浮動時間嗎?
會,如果關鍵路徑上的活動被延誤了,或者管理層要求比原定日期提前完工。
7、 出現負浮動時間時,怎麼辦?
負浮動時間必須儘快加以解決,可以進行趕工、快速跟進等。