基于蒙特卡洛模拟的IT项目进度风险量化评估方法研究

摘 要

摘 要:针对IT项目进度基线定义质量普遍偏低的问题,提出了一种资源约束条件下基于蒙特卡洛模拟的进度风险量化评估方法。首先,考虑资源对进度的限制问题,提出资源约束条件下的活

摘 要:针对IT项目进度基线定义质量普遍偏低的问题,提出了一种资源约束条件下基于蒙特卡洛模拟的进度风险量化评估方法。首先,考虑资源对进度的限制问题,提出资源约束条件下的活动历时抽样方法;其次,提出在在活动历时随机变化情况下,项目关键路径动态识别方法,研究项目工期概率分布问题。最后,通过实例表明,资源约束条件下的蒙特卡洛模拟方法,能够有效地评估IT项目中的进度风险,辅助项目决策。

关键词:资源约束  蒙特卡洛模拟  IT项目进度  风险量化评估

1、引言

在多种管理方法、技术和手段对项目活动涉及的风险采取有效控制,以保证安全、可靠地实现总目标。IT项目进度问题是项目管理四大目标之一,进度的管理关系到整个项目的成败[1]。然而,由于进度风险的不确定性和复杂性,人们对项目进度难以做出有效的分析和评估,以致常常做出错误的决策。因此,如何对IT项目进度风险进行合理、有效地评估,是项目管理专家们一直讨论的热门话题。

国内外专家对项目进度风险分析的现有研究,按成果主要有活动历时的研究、经典PERT网络的研究、关键路径从概率方面的定义研究、蒙特卡洛(Monte Carlo)在风险分析中的应用研究等。目前,在项目管理实践中,用得较为广泛的是以经典PERTCPM为核心的网络计划技术,但其在活动历时估算和关键路径的确定上的存在明显缺陷,从而导致预测误差,影响项目决策[2][6]

蒙特卡洛方法作为一种模拟技术,在项目风险等复杂随机问题的处理上有很大的优势;同时,随着计算机技术的发展,可以进行大量的抽样,问题求解精度越来越高,具有了很高的可靠性,能很好的指导实践[4][5]。本文定位在资源约束条件下研究基于蒙特卡洛的IT项目进度风险量化评估方法,以期在活动历时随机波动的情况下,更合理地分析项目工期变化规律,辅助项目决策。

2、相关研究基础和概念

21蒙特卡洛方法原理

蒙特卡洛方法又称随机抽样技巧或统计试验方法,是一类以概率统计理论为基础,通过随机变量的统计分析、随机模拟,求解数学、物理、工程技术问题近似解的方法[2][4]。蒙特卡洛方法能够比较逼真地描述事物的特点和过程,解决一些传统数值方法难以解决的问题,因而该方法的应用领域日趋广泛。

蒙特卡洛方法主要是利用各种不同分布的随机变量的抽样序列模拟特定的问题,求出该问题解的估计值。有这样一个故事,在一次战争中,一位将军要测量一个湖的面积,包围湖的空地的面积已知,但是无法通过敌人严密的防线。于是他令炮兵向湖面及周围空地发射炮弹,同时他带着几个人用望远镜观察弹着点。包围湖面的空地的总面积为S,随机发射的炮弹总数是M,而落入湖中的炮弹数是M1,则由统计关系

SS1=MM1

即可以计算出湖的面积S1

这就是蒙特卡洛的基本思想,即:当所求问题的解与某个事件的数字特征有关时,可以通过某种试验的方法得出该数字特征值,通过它求得实际问题的解。假设所要求解的变量X是随机变量,数学期望E(x),那么近似确定X的方法是对x进行N次重复抽样,产生相互独立的x的序列x1x2,…,xn,并计算其算术平均值:

根据柯尔莫哥罗夫大数定理有:

 

因此,当N充分大时,xN≈E(x)x成立的概率为等于l,也就是说xN作为X的估计值。

使用蒙特卡洛方法解决问题的一般过程可以分为四个步骤:

1)对求解的问题建立概率统计模型,使所求的解恰好是该模型的概率分布或数学期望。对于本身就具有随机性质的问题,如粒子运输问题,主要是正确地描述和模拟这个概率过程。对于本来不具备随机性质的确定性问题,比如计算定积分、解线性方程组等,就必须事先构造一个人为的概率过程,它的某些参数正好是所要求问题的解。

2)根据概率统计模型的特点和计算实践的需要,尽量改进模型,以便减小方差和降低模拟费用,提高计算的效率。

3)建立对随机变量的抽样方法。有了明确的概率过程后,为了实现过程的数字模拟,必须实现从已知概率分布的随机数的抽样。例如为了得到E(x)的估计值xN,关键在于得到x的序列:x1x2,…,xNx的产生是由随机变量x的分布f决定的。这种根据己知分布规律产生的随机变量杏的具体数值x1x2,…,xN,称为分布f的一个子样,xk为子样的一个元素。

4)给出获得所求解的统计估计值及其方差。

22 IT项目资源约束

IT项目中,活动资源对计划活动的历时有影响,因为分配给计划活动的资源,以及这些资源是否用于项目,将影响大多数活动历时。为说明这个问题,首先明确几个概念,即活动历时、活动工时和资源单位[3][5]

1)活动历时:表示完成该任务所经历的实际时间。

2)活动工时:表示资源执行任务的工作时间。

3)资源单位:是对资源每一单位任务持续时间内的工作时间的度量单位,通常用百分数表示。

他们之间的关系:活动工时=活动历时×资源单位

在实际中,对于特定的任务,常常因为资源的使用是固定的,需要适当地调节活动时间来平衡。

23 风险量化评估

风险是指损失发生的不确定性(或称可能性),是不利事件发生的概率及其后果的函数,即R=f(pC),式中R为风险,P是不利事件发生的概率,C是不利事件发生所导致的后果。风险分析主要分为定性和定量两种,以定性分析为主的评估方法是通过界定风险源,初步判明风险的严重程度,并对系统风险进行评估的方法。以定量分析为主的评估方法是在定性分析的逻辑基础上,基于定性风险分析的数学处理,得出各个风险源的风险量化指标,再经过合成,得到所要评估的风险的大小或重要程度。目前,比较成熟的以定量分析为主的风险评估方法有:蒙特卡洛(Monte Carlo)模拟法、决策树等[1]

24 经典PERT网络计算

经典PERT方法认为,每一活动历时为随机变量,不能给出确定的数值,但可以通过专家给出三种时间的估计:即最小值a,最可能值和最大值b。并假定各活动相互独立,活动历时服从b分布。各活动的历时期望值Di和方差s2i可以用下列公式估算:

在确定了各活动历时Di和方差s2i后,经典PERT经不确性问题转化为确定性问题,并用CPM方法解决[9]。但经典PERT假定项目工期服从正态分布,同时只有一条关键路径,忽略了其它路径成为关键路径的可能,从而导致了进度评估的精度不足。

3、资源约束条件下基于蒙特卡洛模拟的IT项目进度风险评估方法

随着计算机的发展,蒙特卡洛模拟的应用越来越广泛,现在可以很方便地应用它来处理项目风险评估等随机问题。应用蒙特卡洛方法进行IT项目进度风险评价的主要思路是:对于项目中历时为随机型的活动,假定它服从一定的分布,然后再利用计算机产生符合该分布的随机数来模拟应该活动的历时,再运用CPMPERT法找出项目的关键路线,并求出项目的模拟工期,经过大量模拟就可以统计其分布特征,从而分析项目的进度风险[2]。当然,本文是在资源约束条件下在对活动历时进行抽样。下面对进度风险评估中的几个关键问题进行阐述:

31资源约束条件下的活动历时抽样

本文选取项目活动历时为随机变量,进行随机数的抽取。首先,通过参考文献和历史数据分析其分布规律,常用的主要有均匀分布、三角分布、b分布等,本文采用三角分布。三角分布由三个参数来定义:最小值a,最可能值和最大值b。三角形分布常被作为其它分布的粗略估计,如正态分布,或在缺少数据时使用。其概率函数密度可由下式给出:

 

其分布函数为F(x),均值为(a+m+b)3,方差为(a2+b2+m2-ab-am-bm)18)

 

三角分布的三个参数可以基于专家三点评估法对每个活动历时的估计得到,利用随机数发生器就可以产生相应的随机数。

同时,由于活动资源是有限的,活动历时在按其分布随机变化过程中,还必须受资源的约束。如22节所述:活动工时=活动历时×资源单位,在资源单位一定的情况下,按其概率分布抽取出来的活动历时如果不能满足约束条件,仍将被过滤掉,不得不重新进行抽样。如此往复循环,直到抽到足够的数据进行模拟分析[5][10]

32项目关键路径动态识别和工期概率分布

在有资源约束条件的蒙特卡洛模拟过程中,每次对各活动历时抽样所得到的随机值,如果满足资源约束条件,将作为时间参数,再利用关键路径法,求解项目模拟工期,并记录关键路径上的各个活动信息。如此,完成了一次循环。

连续多次抽样后,项目关键路径和工期随着活动历时的变化而不断变化,我们可以从网络图很直观地看到相应的变化。得到多组关键路径和工期的数据后,对其进行统计分析,绘制项目工期概率分布图。判断每个模拟工期是由哪条关键路径确定的,对各路径成为关键路径以及活动成为关键活动的概率分别进行统计,研究其变化规律。同时,可以利用灵敏度图研究各活动历时变化对项目总工期的影响,并据此给出合理的项目风险描述[11]

基于此,我们可以得到项目进度风险中的宏观和微观信息,为项目决策提供了依据。

33资源约束条件下蒙特卡洛模拟流程

资源约束条件下的蒙特卡洛模拟整个流程总结如下:

1)选取活动历时为随机变量,假定其满足三角分布;

2)在水晶球中建立电子表格模拟模型;

3)确定模拟次数N,以满足精度要求;

4)抽取随机数模拟活动历时,并按资源约束条件进行过滤;

5)记录工期、关键路径以及关键活动信息。

6)按以上步骤连续N次模拟后,对随机数、项目工期和关键路径进行统计分析,绘制统计特征图。

经以上步骤,可以得到项目的大量模拟数据,据此进行统计分析,分析项目风险,提供有用的信息辅助项目决策。

4、实例分析

41项目背景概况

国内某汽车企业为提高市场竞争力,加快了公司信息化的步伐,目前已具有建设计算机信息网络的良好基础环境,网络覆盖率及网络传输不断提高。但公司员工计算机整体水平不高,企业资源共享不够,沟通仍然存在一定困难。为进一步消除“信息孤岛”,提高公司自动化管理水平和核心竞争力,公司决策层决定在企业实施ERP。在资源有限的情况下,企业高层希望ERP实施在190天内完成,并想知道以90%的概率完成大概需要多少天;如果在1150个工时的限制条件下,情况又会如何。为对该期望工期进行评估,减少进度风险,给项目进度计划编制提供科学依据,本例结合专家意见给出各活动历时和资源数量估计,用蒙特卡洛方法对该企业ERP实施进度的实际发生情况进行模拟。为更好地绘制网络图,先分析了ERP实施的几个主要阶段和每个阶段的工作以及应达成的目标,其工作内容和阶段目标如表l所示:

 

 

42项目网络进度计划

根据ERP项目实施过程和各阶段活动之间的逻辑关系,基于专家三点评估得到的活动历时、活动资源单位如表2所示:

 

43模拟及输出评价

先建立电子表格模型(如图2所示,所显示数据仅为模拟数据一组),其中:

 

1)N列为假设单元格,分别为对应活动的历时,本文中均设为三角分布;

2)FG列为资源数量,在IT项目中主要是工时资源;

3)U列识别活动是否在关键路径上,若为关键活动,显示为l,否则显示为0;经多次抽样,可将活动成为关键活动的可能性输出到V列;

4)S29为预测单元格,对应项目模拟工期,即关键路径长度,根据它可以绘制出工期分布图,从宏观角度判定各工期下项目完成的可能性;

5)S30为项目总工时,对其加以限制将会对已经抽取到的不满足资源约束条件的活动历时随机数进行剔除,避免影响判断。

设置模拟次数为100000次,设总工时上限为1150,对模拟得到的项目工期数据进行剔除后剩下40901组数据,统计结果如表3所示:

 

可知最大模拟工期为210天,最小模拟工期为172天,模拟工期均值为194天,方差为16。在单位区段上,工期频率分布如下图:

3

 

由图3分析,可得出结论,在资源约束条件下,项目在190天内完成的概率为20.457%,以90%的概率完成需要200天,由此可见,190天内完成项目的风险太大,200天基本能保证项目的完成,因此做决策时项目经理必须适当修改项目计划或加强风险管理才能保证项目顺利实施。但是如何修改计划和进行风险管理,还需要知道哪些关键活动影响工期,才能采取针对性的措施。因此,需要进一步分析项目活动对工期的影响程度。

灵敏度图(4)给出了各个假设单元格(即活动历时)及该单元格与预测单元格(项目工期)的相关联系数,关联系数显示了活动历时与项目工期之间的依存关系的强度。

 

由上图可知,活动W的历时变化比其他的任何一个活动历时都有相对较高的相互关联系数,所以在活动w上的任何延迟都会推迟项目的工期。而统计数据也说明了活动w是最容易变化的,它的最可能时间与悲观估计时间相差5天,所以超过最可能时间的较长延迟也会经常发生。由于相当高的相互关联系数,缩减项目工期的最好方法是关注于引起活动W历时变化的深层次因素。

 

在模拟过程中,我们可以看到关键路径(蓝色)随活动历时的变化而变化。在模拟运行结束时,单代号网络图所显示的数据为各活动成为关键路径上活动概率。结合灵敏图可知活动w对项目工期的影响极大,在关键路径上的概率几乎为100%;活动u成为关键路径上活动的概率为87%,与工期的相关系数为17.4%;同时我们可以看到活动bc成为关键路径上活动的可能性为0,活动f出现在关键路径上的可能性仅为10%。

综合以上分析,活动Wu等均以较高的概率出现在关键路径上,同时由灵敏度图可知两个活动历时和项目工期相互关联系数较大,因此对于此类活动应该高度关注。

44本方法与其它方法的对比分析

441本方法与经典PERTCPM方法的对比

由经典PERTCPM算法(上文已有叙述),经运算得,项目工期期望值:E(T)=185;方差D(T)=12,满足正态分布。

由表3知,资源约束条件下计算所得平均工期为194天,比PERTCPM方法计算所得期望工期l85天较长,且分布范围较宽,方差l6大于ERTCPM方法所得工期方差l2也印证了在实际项目中工期会有较大波动。模拟结果确定了项目在190天内完成的概率为20.457%,即使提高模拟次数,变化也不大,因而,可以认为20.457%是规定时间内相对精确的项目完成概率。同时,可知本项目实际完成时间为193天,显然本方法计算所得模拟工期更接近实际值。

此外,由上一节分析可知,活动f10%的可能出现在关键路径上,对工期仍然会有一定的影响,而在PERTCPM方法中,活动f对工期的影响体现不出来,这是由于经典PERTCPM方法忽略关键路径随活动历时的变化而变化。

综上所述,资源约束条件下的蒙特卡洛方法所得模拟工期比经典PERTCPM方法更具有实用性,预测结果也更加可靠。

442本方法与无资源约束条件的蒙特卡洛方法对比分析

普通的蒙特卡洛模拟设定活动历时为随机变量,但无资源约束条件,经模拟分析,对活动历时抽样100000次,得到工期频率分布直方图如图所示:

 

可知,模拟工期分布范围为[177214],平均值为200;由表3可知,资源约束条件下蒙特卡洛计算所得模拟工期分布范围为[172210],平均值为194,该方法所得模拟工期方差为l6,小于无资源约束条件下模拟工期方差21。这是因为考虑资源约束条件后,各活动历时随机浮动的同时受到了资源的约束,所以其浮动变小了,对项目工期的浮动的贡献有了一定的消减作用,充分体现了资源在项目中的重要地位。同时,本项目实际完成时间为193天,显然资源约束条件下模拟工期平均值更接近实际项目工期。因此,从IT项目实际情况出发,考虑资源约束的模拟能更准确地预测项目工期,有更强的实用性。

5、结束语

针对IT项目进度风险评估的准确性问题,本文探索了在资源约束条件下对项目工期因活动历时的随机波动而带来的变化进行研究,形成了一种资源约束条件下基于蒙特卡洛模拟的IT项目进度风险量化评估方法,该方法能够为IT项目进度关键路径的识别和基线定义提供一种有效实用的手段,辅助项目决策,提高风险管理质量。

 

参考文献:

[1]张珞玲,李师贤.软件项目风险管理方法比较和研究[J].计算机工程,2003(03)

[2]钟登华,刘奎建,杨晓刚.施工进度计划网络仿真的不确定性研究[J].系统工程理论与实践,2005(2)

[3]万伟,蔡晨.在两资源约束项目环境中的关键链管理[J].中国管理科学,2003-1011(Special Issue)4-8

[4]王仁超,欧阳斌,王琳,褚春超.工程项目计划“关键性”问题拓展研究[J].系统工程与电子技术,2004-726(7)914-923

[5]王祖和,亓霞.多资源均衡的权重优选法[J].管理工程学报,200216(3)91-93

[6]Ming Lu and SMAbout Risic Simplified CPMPERT Simulation ModelJContrEngrg

And Mgmt.,ASCE 2000126(3)219-226

[7]陈魁.应用概率统计[M].清华大学出版社,2000

[8]WrightSallyandArnold MInformation SystemAssurance for Enterprise Resource Planning SystemsUnique Risk Considerations[J]Journal of Information SystemsSpringVol.16Issue l2002 Supplementpl5-99

[9]李平,顾新一.PERT网络工程风险计算方法的研究[J].统计与决策,2004年第5

[10]Samuel JMntelJack RMeredithScott MSharerMargaret MSuttonproject ManagementinPracticeJohn Wiley&50115Inc2001

[11]唐爱国,王如龙.基于贝叶斯网络的软件项目风险评估模型[J].计算机工程,2008(22)

 

本文作者:刘学刚

作者单位:中海油气开发利用公司