计划评审技术
计划评审技术(program evaluation and review technique,PERT)用活动依赖网络分析工期不确定的项目。经典做法为每项活动提供乐观、最可能、悲观三个时间估计,再估计路径工期的均值与方差。它可以整理风险信息,但几个主观数值并不足以自动确定真实工期分布;项目完成概率也不能只凭一条平均最长路径就精确计算。[1]
设三项活动A、B、C必须依次完成,单位为天。三点估计分别为A 、B 、C ,其中第二个数是最可能值,不是已经测得的均值。C视为固定一天,B则有明显较长的悲观尾部。
经典三点估计的含义
对 ,传统PERT常使用 均值在此被最可能值加权拉近,标准差则取极差的六分之一。这是具体的估计约定,不是概率论对任意三点信息必然推出的恒等式。三点也没有一般地唯一确定Beta分布的全部形状参数;若用某种“Beta-PERT”参数化进行模拟,应明确具体参数和由该分布实际算出的方差,不能把不同约定混用。
当 ,可直接用该确定值、方差零;当乐观或悲观值实际只是分位数而非分布边界,也应说明含义。输入数字的精确小数位不代表估计本身准确。
一条顺序链的完整计算
按经典公式,A均值二、方差 ;B均值 、方差一;C均值一、方差零。总工期 满足期望可加: 若进一步假定活动工时相互独立,路径方差估计为 。若不独立,则实际方差还含两两协方差项: 共同的天气或供应短缺可能让这些协方差为正,忽略它们会低估风险;均值相加本身则不要求独立。
再作正态近似,八天内完成的估计概率是 这里仅有两项随机工期,不足以仅凭“相加”就保证中心极限定理的近似精度。这个数字是明确假设下的粗估,不是八十九点七个百分点的验收承诺。实际上本例工期总范围为四至十二天,而正态分布还会给范围外分配非零概率。
路径切换带来的偏差
有并行分支时,项目完成时间是各路径随机总长的最大值。对每次实现都有 ,所以取期望得到 通常为严格不等号。取两条并行活动:一条恒为两天,另一条各以二分之一概率为零或四天。两条的平均都为二,但项目总工期为二或四,平均三。先求每条均值再取最大,只得二,已经漏掉一天。
有多条近关键路径、共享活动或相关工时时,应为整个网络逐次生成工时,再按关键路径法的最大前驱递推计算该次完工时间;充分的观测或模型验证仍不可省略。不能分别模拟每条路径而把共同活动当成相互独立的不同活动。
复算三点估计
下例只计算一条独立顺序链的传统矩估计及正态近似,不模拟真实分布,也不求一般网络的完成概率。
import math
def pert_chain(three_point, deadline):
if not math.isfinite(deadline):
raise ValueError("finite deadline required")
mean = variance = 0.0
for row in three_point:
if len(row) != 3 or any(not math.isfinite(x) for x in row):
raise ValueError("three finite estimates required")
a,m,b = row
if not 0 <= a <= m <= b:
raise ValueError("require 0 <= a <= mode <= b")
mean += (a+4*m+b)/6
variance += ((b-a)/6)**2
if variance == 0:
probability = float(deadline >= mean)
else:
z = (deadline-mean)/math.sqrt(variance)
probability = 0.5*math.erfc(-z/math.sqrt(2))
return mean,variance,probability
mean,var,probability = pert_chain([(1,2,3),(2,3,8),(1,1,1)],8)
print(round(mean,6),round(var,6),round(probability,6))
# 6.666667 1.111111 0.897048
对 项活动一次扫描,时间 、工作空间 ;其计算正确性只针对所写估计规则。变式。 若三项都固定为二、三、一,则总工期确定为六,六天内完成概率为一、五天内为零,应使用确定性判断,不把零方差代入标准化分母。
参考文献
- ↑ Fred E. Williams,PERT Completion Times Revisited (2005),§2—4,第21—27页,经典三点近似、近关键路径与Beta参数的区别;已通过出版社全文读取。
- D. G. Malcolm、J. H. Roseboom、C. E. Clark、W. Fazar,Application of a Technique for Research and Development Program Evaluation,Operations Research 7(5),1959,646—669,DOI:10.1287/opre.7.5.646。历史原始文献;上文近似条件参照Williams的公开全文审查。