6.3 工期機率與緩衝設計#
本章導言#
6.2 節的關鍵路徑法把每項活動的工期當作確定數字。但任何有專案經驗的人都知道:沒有人能保證「設計審查一定 5 天內完成」。PERT 在 1957 年誕生時就包含一個機率模組——活動工期服從某個單峰分配、專案完工日是隨機變數——然而這個模組在實務中長年被誤用:管理者拿期望工期當承諾日,結果系統性地延誤。本節要說清楚三件事:(1)PERT 三點估計背後的 β 分配與常態近似;(2)「最長路徑的期望 ≠ 期望的最長路徑」這一根本陷阱;(3)1990 年代以後緩衝管理如何正面擁抱不確定性,把「機率」轉化為「緩衝」這種可管理的資源。這一小節是第 6 章與《機率統計》的最深接口。
三點估計與 β 分配#
PERT 要求承包商對每項活動提供三個估計:樂觀 \(a\) (幾乎不可能比此更短)、最可能 \(m\) 、悲觀 \(b\) (幾乎不可能比此更長)。標準 PERT 公式為:
其背後的建模是:工期 \(X\) 服從 β 分配(平移縮放至 \([a,b]\) 區間),取 \(\mathbb{E}[X] = (a+4m+b)/6\) 、 \(\mathrm{Var}(X) \approx (b-a)^2/36\) 。 \(\frac{1}{6}\) 係數的直覺來源:若 \(b-a\) 約覆蓋 \(\pm 3\sigma\) 的範圍,則 \(\sigma \approx (b-a)/6\) 。這個近似在 \(m\) 接近區間中點時相當好;當分配明顯偏斜時誤差可觀——這是 PERT 被批評之處,也正是 6.3 節後半「緩衝管理」繞過它的理由。
完工時間的常態近似#
設專案網路的關鍵活動為 \(e_1, \ldots, e_k\) ,其工期獨立、期望 \(t_{E,i}\) 、變異數 \(\sigma_i^2\) 。若暫時假設關鍵路徑唯一且不隨機變動,則專案完工時間 \(T\) 滿足
再由中央極限定理(見《機率統計》分配理論章), \(T\) 近似常態 \(\mathcal{N}(\mathbb{E}[T], \sigma_T^2)\) ,於是
「最長路徑的期望 ≠ 期望的最長路徑」:更精細的分析必須對活動工期反覆抽樣(蒙特卡洛模擬),每次抽樣後重算關鍵路徑取最大值。統計上 \(\mathbb{E}[\max] \ge \max[\mathbb{E}]\) ,故以期望工期代入的 PERT 結果系統性偏樂觀——號稱「50% 機率達成」的日期,實際達成率往往不到五成。此外,隨機抽樣下關鍵路徑會「漂移」,次長路徑升格為關鍵路徑的機率不可忽略(即所謂 merge event bias,匯合偏差)。
緩衝管理:從「隱藏安全時間」到「顯式緩衝」#
專案實務中,經理人對工期估計的直覺反應是自己加碼:「他說 5 天,我報 7 天。」每人私藏緩衝導致學生症候群(拿到緩衝就先閒逛)、帕金森定律(工作自動擴張以填滿可用時間),總工期反而膨脹。1997 年 Eliyahu Goldratt 在《關鍵鏈》(Critical Chain)中提出正面對策:
- 用統計估計(如三點法)取期望工期排程,去掉各活動的私藏緩衝;
- 把匯集起來的安全時間設為專案級的項目緩衝(project buffer),置於關鍵鏈末端;
- 資源相依導致的等待設為匯入緩衝(feeding buffer),置於非關鍵鏈匯入點;
- 緩衝消耗比例(緩衝已用 vs 緩沖總量)作為紅黃綠預警,取代逐日進度追蹤。
其量化形式:設各關鍵活動工期獨立、均值 \(t_i\) 、標準差 \(\sigma_i\) ,則
其中 \(z_\alpha\) 由期望服務水準決定——例如 90% 服務水準取 \(z_{0.90} \approx 1.28\) 。這是「服務水準—成本最佳化」思維(4.3 節)在時間維度的翻版:緩衝太薄則延誤概率高,太厚則專案笨重、資金佔用。
例題 6.3.1#
例題 6.3.1:某專案關鍵鏈含三項串聯活動,三點估計(天)如下:甲 \((2,3,4)\) 、乙 \((4,6,14)\) 、丙 \((1,2,3)\) 。求:(1) 各活動 \(t_E\) 與 \(\sigma\) ;(2) 專案期望工期與 \(\sigma_T\) ;(3) 以常態近似求「14 天內完工」機率;(4) 若要求 90% 完工服務水準,項目緩衝應設幾天?
解:
(1) 甲: \(t_E = (2+12+4)/6 = 3\) , \(\sigma = (4-2)/6 = 1/3\) 。乙: \(t_E = (4+24+14)/6 = 7\) , \(\sigma = (14-4)/6 = 5/3\) 。丙: \(t_E = (1+4+3)/6 = 2\) , \(\sigma = (3-1)/6 = 1/3\) 。
(2) \(\mathbb{E}[T] = 3+7+2 = 12\) 天; \(\sigma_T = \sqrt{(1/9) + (25/9) + (1/9)} = \sqrt{3} \approx 1.73\) 天。
(3) 標準化: \(z = (14-12)/1.732 \approx 1.155\) ,查常態表 \(\Phi(1.15) \approx 0.8749\) 。故約 87.5% 機率在 14 天內完工——注意:若管理層把「期望 12 天」當承諾,仍有約一半機率超過 12 天,期望值不是可靠承諾。
(4) 90% 服務水準:緩衝 \(= z_{0.90}\,\sigma_T = 1.2816 \times 1.732 \approx 2.22\) ,取整為 3 天(緩衝宜向上取整)。承諾客戶的日程為 \(12 + 3 = 15\) 天,而服務水準 90%。對比第 3 題:同樣是「留時間」,統學化方法讓我們知道留 3 天背後的機率意義,而非拍脑袋。
三個常見誤區#
- 平均值謬誤:以 \(\mathbb{E}[T]\) 為承諾日。期望值只保證長期平均,單一專案需要的是分位數(quantile)。
- 獨立性誤設:活動工期常受共同衝擊(關鍵工程師生病、需求變更)而相關;相關性使 \(\sigma_T\) 大於獨立假設值,緩衝被低估。
- 忽略匯合偏差:兩條路徑在節點匯合時,取最大值的運算使匯合後的「最晚完成」分配右尾變厚,這是常態近似的系統性低估來源。
前因後果與驅動關係#
- 驅動:北極星計畫的承包商工期資料顯示,以期望值排程的專案大量延誤,暴露了 6.2 節決定論模型的盲點;冷戰導彈交付的政治壓力使「完工機率」成為軍方採購合約的實質議題。更早的技術源流是 1917 年 Erlang 的電話佔線理論(4.1 節)——以分配而非點估計描述「隨機持續時間」,同一數學心態在七十年後移植到專案。
- 回頭改變實務:PERT 的三點估計至今仍是 PMBOK 標準工具;蒙特卡洛完工模擬成為專案軟體標配;Goldratt 的緩衝管理則改變了「誰持有安全時間」的組織設計。這些都與第 8 章的決策分析相通:工期不確定下的承諾,本質上是在「提前承諾的聲譽成本」與「緩衝佔用的資金成本」之間做決策。
- 交叉引用:常態近似與中央極限定理見《機率統計》;分位數與 VaF 的思維同《金融的數學》第 7 章風險度量;緩衝作為「時間存貨」與第 5 章 EOQ/報童模型的「數量緩衝」同構——都是用明確定價的緩衝換取服務水準。
練習#
- 活動三點估計 \((1,2,9)\) ,求 \(t_E\) 與 \(\sigma\) ;並解釋為何 \(\sigma\) 大於「直覺的一半區間」。
- 承例題 6.3.1,求「10 天內完工」的常態近似機率,並評論此數字對管理決策的意義。
- 若甲乙兩活動工期相關係數 \(\rho = 0.5\) , \(\sigma_T^2\) 如何修正?(用 \(\mathrm{Var}(X+Y)=\sigma_X^2+\sigma_Y^2+2\rho\sigma_X\sigma_Y\) 。)
- 某專案 \(\sigma_T = 2\) 天、期望工期 20 天。分別計算 80%、90%、95% 服務水準下的承諾日(用 \(z = 0.84, 1.28, 1.65\) )。
- 思考題:緩衝管理主張「活動工期用期望值、緩衝集中保管」。試從行為經濟角度(學生症候群、帕金森定律)論證這比「每項活動各加安全天數」更有效;同時指出此主張在什麼組織條件下會失效(提示:多方承包商的道德風險)。
名詞速查表#
- 三點估計:以 \((a,m,b)\) 描述工期不確定性的 PERT 標準做法。
- β 分配:PERT 用於建模有界單峰工期的分配族。
- 匯合偏差(merge bias):多路徑取最大值使完工分配右尾變厚的系統性效應。
- 蒙特卡洛完工模擬:對活動工期抽樣並反覆求最長路徑,得到完工日分配。
- 項目緩衝(project buffer):集中保管於關鍵鏈末端的安全時間。
- 緩衝管理:以緩衝消耗比例為預警指標的進度控制法。
(本節完)