歡迎來到關鍵路徑分析 (Critical Path Analysis)!
你有沒有想過像建造摩天大樓或推出新款智慧型手機這樣的龐大項目,是如何保持進度不落後的呢?答案就是使用關鍵路徑分析 (CPA)。在本章中,我們將學習如何將大型項目拆解為較小的任務、找出最重要的環節,並精確計算整個項目所需的時間。如果一開始看到滿滿的方格和箭頭,別擔心——一旦掌握了「前向傳遞」(Forward Pass) 和「後向傳遞」(Backward Pass) 的節奏,這就跟解拼圖一樣簡單!
1. 建立網絡:節點活動法 (AoN)
在開始計算時間之前,我們需要一張地圖。在 AQA 的課程大綱中,我們使用節點活動法 (Activity-on-Node)。這意味著每個任務(活動)都由一個方格(節點/Node)表示,而箭頭(弧/Arcs)則顯示它們必須進行的順序。
關鍵術語
- 活動 (Activity):需要耗費時間的特定任務(例如:「粉刷牆壁」)。
- 先行關係 (Precedence):在執行某項任務前必須先完成的任務。我們通常會使用先行關係表 (Precedence Table) 來列出這些規則。
- 工期 (Duration):完成一項活動所需的時間。
如何繪製節點方格 (Node)
在 AQA 考試中,標準的節點方格通常劃分如下:
[ 活動標籤 | 工期 ]
[ 最早開始時間 (EST) | 最遲完成時間 (LFT) ]
(注意:請務必檢查考卷中提供的具體圖示,因為佈局有時會略有不同,但這四項資訊是核心!)
快速回顧:網絡規則
- 每個網絡都應該只有一個「開始」節點和一個「完成」節點。
- 箭頭永遠從左指向右。
- 不允許出現「迴路 (loops)」!你不能有依賴於自身的任務。
2. 排程:前向與後向傳遞
現在進入數學部分!我們需要為每個任務找到最早開始時間 (EST) 和最遲完成時間 (LFT)。
前向傳遞 (計算 EST)
我們從起點開始,向終點推算。我們要尋找的是一項任務可以開始的最早可能時間。
- 第一個活動從時間 0 開始。
- EST + 工期 = 最早完成時間 (EFT)。
- 如果一個任務有多於一個箭頭指向它,你必須選擇其中的最大值 (LARGEST)。
類比:想像你在等兩個朋友到齊才能開始玩遊戲。朋友 A 在 2:00 到達,朋友 B 在 2:30 到達。你必須等到 2:30 才能開始。在前向傳遞中,「最晚」到達的人決定了「最早」開始的時間。
後向傳遞 (計算 LFT)
我們從「完成」節點開始,向回推算,找出在不延誤整個項目的前提下,一項任務最遲可以完成的時間。
- 最後一項活動的 LFT 等於其 EFT(即整個項目的持續時間)。
- LFT - 工期 = 最遲開始時間 (LST)。
- 如果一個活動有多於一個箭頭從中發出(向回推算時),你必須選擇其中的最小值 (SMALLEST)。
常見錯誤
學生常會弄混,在前向傳遞時選了最小值,在後向傳遞時選了最大值。請記住:前向 = 最大值 (MAX),後向 = 最小值 (MIN)。
關鍵重點:前向傳遞告訴你項目需要多長時間完成;後向傳遞則告訴你每個任務的最後期限。3. 關鍵活動、關鍵路徑與浮動時間
並非所有任務都是平等的。有些任務有「迴旋餘地」,有些則沒有。
什麼是關鍵活動?
如果延誤某項任務會導致整個項目延誤,該任務即為關鍵活動 (Critical)。對於這些任務,其最早開始時間與最遲開始時間是完全相同的。
關鍵路徑 (Critical Path)
關鍵路徑是一條從開始到結束、由關鍵活動組成的連續路徑。它代表了網絡中最長的路徑。
浮動時間 (Float):所謂的「迴旋餘地」
總浮動時間 (Total Float) 指的是在不延誤整個項目的前提下,一項活動可以被推遲的時間。
公式:\( \text{Total Float} = \text{LFT} - \text{Duration} - \text{EST} \)
(或更簡單地說:LST - EST)
你知道嗎?
關鍵活動的總浮動時間永遠為零。如果你計算出的浮動時間是負數,很可能是在後向傳遞時出錯了!
關鍵重點:識別出關鍵路徑有助於管理者確切知道哪些任務需要最嚴格的監控,以避免延誤。4. 視覺化項目:甘特圖 (Gantt Diagrams)
甘特圖(也稱為級聯圖 Cascade Diagram)是一種顯示進度的橫條圖。對於非數學專業的人來說,它比網絡圖更容易閱讀!
如何繪製甘特圖
- X 軸代表時間。
- Y 軸列出各項活動。
- 實心橫條顯示活動從其 EST 開始的持續時間。
- 虛線(或陰影區域)顯示活動之後的浮動時間 (Float)。
- 關鍵活動不會有虛線——它們的橫條是「鎖定」在特定位置的。
資源直方圖 (Resource Histograms)
有時任務需要工人(資源)。資源直方圖是一個柱狀圖,顯示在假設每個任務都儘早(在 EST)開始的情況下,任何特定時間點所需的工人數量。
關鍵重點:甘特圖顯示事情何時發生;資源直方圖顯示需要什麼資源。5. 優化模型:資源平衡 (Resource Levelling)
在現實世界中,你可能只有 3 名工人,但你的直方圖顯示週二需要 5 名。這時就需要資源平衡。
啟發式程序 (Heuristic Procedures)
「啟發式」只是一個高階詞彙,意思是「經驗法則」或邏輯策略。為了平衡資源,我們利用浮動時間:
- 找出工人需求超過上限的時間點。
- 尋找在該時間點進行的非關鍵活動。
- 推遲這些活動(將其移入浮動時間內),直到有足夠的工人可用。
如果無法平衡怎麼辦?
如果你推遲一項活動超過了它的浮動時間,它就會變成新的關鍵路徑,整個項目的工期將會增加。在考試中,你可能會被要求透過解釋工期或工人數量的變化如何影響完成日期來「優化模型」(DE4 部分)。
記憶技巧:把浮動時間想像成「懶惰時間」。如果你有 2 天的浮動時間,你可以「偷懶」2 天再開始,而不會惹麻煩給老闆(項目經理)!
關鍵重點:利用浮動時間來平滑工作量。如果用完了浮動時間卻依然沒有足夠的工人,項目就會延誤。快速回顧總結
1. 繪製網絡:使用先行關係表連接方格。
2. 前向傳遞:找出 EST(在交會點取最大值)。
3. 後向傳遞:找出 LFT(在交會點取最小值)。
4. 找出關鍵路徑:尋找浮動時間 = 0 的路徑。
5. 計算浮動時間:\( \text{LFT} - \text{Duration} - \text{EST} \)。
6. 甘特圖/直方圖:繪製排程並檢查資源是否超載。