软考--关键路径法

一、什么是关键路径法

关键路径法用于在进度模型中估算项目最短工期,确定逻辑网络路径的进度灵活性大小。这种进度网络分析技术不考虑任何资源限制的情况下,沿进度网络路径使用顺推与逆推法,计算出所有活动的最早开始ES、最早结束EF、最晚开始LS和最晚完成LF日期。

由此得到的最早和最晚的开始和结束日期并不一定就是项目进度计划,而只是把既定的参数(活动持续时间、逻辑关系、提前量、滞后量和其他已知的制约因素)输入进度模型后所得到的一种结果,表明活动可以在该时段内实施。

二、关键路径分析

关键路径分析也称为关键路径法(Critical Path Method),是一种用来预测总体项目历时的项目网络分析技术。所谓“关键路径”,是指当我们完成了项目进度计划后,在项目的网络图上,存在着若干条从项目启动到项目结束之间的路径,但是对其中一条(严格的来说,可能存在一条以上)路径上来说:

l         其上所有活动的时间之和就是完成项目的最短历时;

l         路径上任何活动的延误都会导致项目时间的延长;

l         如果我们想缩短项目历时,就必须缩短这条路径上活动的历时;

这条路径就是项目的关键路径。如下图:

图 - 2.        关键路径

怎样确定关键路径呢?它实际是项目网络图中(历时)最长的路径。下面我们来下一个定义,一个项目的关键路径:是指一系列决定项目最早完成时间的活动。在关键 路径上的活动都很“关键”,因为它们直接决定了项目的进度。每个活动都只有最少的浮动时间或时差。所谓浮动时间或时差是指一项活动在不耽误后续活动或项目 完成日期的条件下可以拖延的时间长度。

现在所有的项目管理软件工具都将寻找一个项目的关键路径作为最基本的功能。它是运用某种运算法则来计算而得出项目关键路径信息的。该运算法则被称为正推法和 倒推法,这个法则输出的结果就是项目的关键路径,当然也包括项目的总历时和项目中每个活动关于进度的“关键”信息。虽然今天已经很少需要手工计算来得到项 目的关键路径了,但是仔细了解一下它的算法将会非常有助于更深刻地理解所得到各项信息的意义。下面我们就来看一下如何用正推法和倒推法来计算项目的关键路 径。

正推法和倒推法主要是用来计算有关一个项目活动的:

l         最早开始时间(Early Start,简称ES),在条件具备的情况下,该活动可以开始进行的最早可能;

l         最早结束时间(Early Finish,简称EF), 在条件具备的情况下,该活动可以完成的最早可能;

l         最晚开始时间(Late Start,简称LS),在不拖延项目进度的情况下,该活动可以开始进行的最晚可能;

l         最早结束时间(Late Finish,简称LF), 在不拖延项目进度的情况下,该活动可以完成的最晚可能;

如下图所示,对每一个项目活动的这4个参数都是一个时间点。

图 - 3.        正推法和倒推法的活动参数

所谓正推法就是从项目的第一个活动到最后一个活动跟踪全部活动的先后关系,计算出每个活动的最早开始时间(ES)和最早结束时间(EF)。

所谓倒推法则是从最后一个活动开始向前追溯到第一个活动,计算出每个活动的最晚开始时间(LS)和最晚结束时间(LF)。

 

正推法的计算过程包括四步:

步骤一:设定项目的第一个活动的最早开始时间是从第一天开始,如图:

图 - 4.        关键路径正推法的步骤一

步骤二:计算第一个活动的最早结束时间,可以用第一个活动的最早开始时间加该活动的历时减1得出:EF = ES + 历时-1,如图:

图 - 5.        关键路径正推法的步骤二

步骤三:计算该活动的所有后续活动的最早开始时间(ES):

后续活动的ES=前导活动的EF1

图 - 6.        关键路径正推法的步骤三

步骤四:过重复步骤二、三,为项目中的每个活动计算最早开始时间(ES)和结束时间(EF),如图所示:

EF = ES + 历时 – 1

ES = 前导活动EF + 1

图 - 7.        关键路径正推法的步骤四

但是这里有一种情况需要特别考虑,因为正推法是依赖每个活动的前导活动来决定的,所以如果一个活动存在多个前导活动的话,需要采用前导活动中EF最晚的那个活动来计算该活动的ES。简单来说,当前活动最早什么时候开始,取决于它的所有紧前活动(1一个或者多个)中哪一个是最晚结束的(这里指的是EF的最大值)

 

倒推法的计算过程也包括四个步骤,只不过这次你是从项目的结束时间开始。但这里要用到正推法的结果:

步骤一:因为你不能延误项目的完成时间,因此最后一个活动的最早结束时间EF等同于最晚结束时间LF。(此处要记住!!最后一个活动的EF=LF)

图 - 8.        关键路径倒推法的步骤一

步骤二:计算最后一个活动的最晚开始时间,可以通过用最晚结束时间减去该活动的历时然后加1来得出。

LS = LF – 历时+1

图 - 9.        关键路径倒推法的步骤二

 

步骤三:每个活动必须在后续活动开始之前完成,因此可以为每个活动计算最晚结束时间。

LF = 后续活动 LS – 1

图 - 10.    关键路径倒推法的步骤三

步骤四:然后重复第二、三步骤,计算出每个活动的最晚开始时间和最晚结束时间

图 - 11.    关键路径正推法的步骤四

同样在计算过程中也需要处理一个特殊情况,由于倒推法是依赖每个活动的后续活动来考虑的,所以如果一个活动出现多个后续活动的时候,应该取后续活动中LS最早的那个来计算该活动的LF。简单来说,知道了当前D活动最晚开始时间,假设D前面有并排的B,C活动,那么B和C活动的最晚结束时间等于D活动的最晚开始时间!

 

事实上在完成倒推法的计算之后,我们得到了每个活动有关进度的关键信息:

l         最后一个活动的EFLF)就是项目可能的最早完成时间,也就是项目的最终进度;

l         活动的LS确定了我们需要给该活动提供资源的最晚时间,如果超过了这个时间则意味着可能的项目最早交付时间会被延迟;

l         项目中历时最长的路径就是项目的关键路径

l         如果关键路径上的活动历时没有被延误,那么项目进度就不会有延误;

l         如果我们要缩短项目的历时,就要缩短该路径上活动的历时;

l         我们可以通过公式来计算每个活动的总浮动时间(Total FloatTF = LF-EF,又被称为总时差。它代表了在不影响项目总体进度的前提下,活动可以延误的时间段;

l         我们还可以通过公式计算每个活动的自由浮动时间(Free Float)FF(活动X)=后续活动的ES - EF(活动X)- 1。它代表了该活动不影响后续活动而可以被延误的时间。上面所说的总时差是自由浮动时间的一种。总时差是每个活动历时可以延误的范围,并且可以不影响总体 项目的进度,而自由浮动时间是指在不延误任何活动最早开始的情况下,项目活动可以延误的时间范围。

 

下面我们来看一个例子的推演,帮助大家更好的理解。如下图是一个小项目的网络图,已经完成每个活动的历史估算,我们需要确定利用正推法和倒推法求出个活动的ES-EF-LS-LF,以及项目的关键路径:

图 - 12.    例题-推算关键路径

正推法求ES-EF:

步骤一:活动A的ES=1,EF=ES+20-1=20,如下图:

图 - 13.    例题-推算关键路径正推法步骤一

步骤二:求出以活动A为前导活动的那些活动的ES以及EF。

ES = 前导活动的EF+1  EF = ES + 历时 - 1

如下图:

图 - 14.    例题-推算关键路径正推法步骤二

步骤三:重复步骤二,计算出所有活动的ES-EF。但对于出现了两个前导活动的活动E来说,由于B的EF晚于D的EF,所以其计算取B的EF。如下图:

图 - 15.    例题-推算关键路径正推法步骤三

然后我们用倒推法来计算LS-LF。

步骤一:设最后一个活动E的LF=EF。LS = LF  历时 + 1。如下图:

图 - 16.    例题-推算关键路径倒推法步骤一

步骤二:计算那些以活动E为后续活动的活动的LF-LS。

LF = 后续活动的LS  1    Ls = LF  历时 + 1

如下图:

图 - 17.    例题-推算关键路径倒推法步骤二

步骤三:重复步骤二计算所有活动的LS-LF。其中活动A有两个后续活动B和C,

 

TF=10

图 - 18.    例题-推算关键路径倒推法步骤三

现在我们就得到了这个项目的关键路径:A- B-E。对于每一个活动的进度要求信息也很清楚,我们可以看到每个活动的浮动时间。在关键路径上活动的浮动时间都为0,意味着这些活动不能有半点拖延。而 活动C和D的浮动时间为10,所以只要延误在10以内就不影响项目的总进度。因此我们可以灵活安排活动C和活动D的资源,可以在这些活动即将开始的时候再 安排资源。这些活动也可以在最早开始时间时开始,也可以延后10天才开始,但都不会影响项目的结束。在资源平衡过程中,我们也经常会用到总时差。

实际上,活动C和活动D有10天的浮动时间,并不是意味着每个活动都有10天的浮动时间,而是两个活动共有10天的浮动时间。我们习惯上将活动C的浮动时间扣除掉,即只有活动D有浮动时间。路径CD的浮动时间仅为10天。

 

但是活动C的总时差和活动D的总时差是有差别的。换句话说,就是活动C允许偏离进度的时间和活动D允许偏离进度的时间是有差别的。

如果活动D在第31天开始,这是活动D的最早开始时间,由于活动D有10天的延误时间,那么该活动在第60天结束,那么会不会影响项目的结束呢?回答是:不会。

现在,我们假设活动C 可以准时在第21天开始,并且最晚要在第40天时完成。如果这样的话就不会影响项目的进度。但由于活动C的进度发生偏离,那么会影响项目D不能在最早时间 开始和最早时间结束。如果在工作计划中,被安排到活动D的资源的使用时间段为:第31天到第40天。在第40天的时候,这些资源将被撤走,安排到其它的项 目中。因为活动C的进度延误将会导致活动D的资源出现短缺,因而活动D也会出现延误,并最终导致项目的延误。因此活动C间接地导致了项目的延误。

在这里我就可以看到总时差和自由浮动时间的区别,例如:

FF(活动C)=31(后续活动最早ES)-30(EF(活动C))- 1 = 0

FF(活动D)=61(后续活动最早ES)-50(EF(活动C))- 1 = 10

因此活动D有10天的自由浮动时间,而活动C没有。


注意:如果项目第一个节点的ES设置为0,那么计算起来就方便了,

所谓活动从第0天还是第1天开始,意思是说要不要把活动开始的那一天计算在工作时间段内。因为现实中第0天是不存在的,所以活动开始的那一天就不需要计算在内;而活动从第1天开始,由于第1天是存在的,就需要计算在工作时间段内。这两种情况导致当前活动的EF或者LS,紧后活动的ES和LF在计算时要考虑是否减去或加上这1天的问题。


无论是从第0天开始,还是第1天开始,都不会影响关键路径的和浮动时间的计算方法,但是考试中如果弄错了则会影响计算结果,考试中为了简化计算通常采用第0天开始,现实中为了与实际相符合通常采用第1天开始。



你可能感兴趣的:(海的软考之路)