开场白
最近在准备14年下半年的信息系统项目管理师考试,想着先攻克下午的计算题,把计算题从概念到计算方法,再到具体实例全部整理出来,这样看一遍也就彻底的明白了。准备着整理一个类型发布一篇文章,算是开了一个系列吧。
文章都是自己收集来的,由简入繁,由浅入深,再加上自己的理解,其中难免有纰漏,若路过此处的同行发现错误或有更好的解题思路,请不吝赐教。
关键路径法(CriticalPath Method, CPM)是一种基于数学计算的项目计划管理方法,是网络图计划方法的一种。关键路径法将项目分解成为多个独立的活动并确定每个活动的工期,然后用逻辑关系(结束-开始、结束-结束、开始-开始和开始-结束)将活动连接,从而能够计算项目的工期、各个活动时间特点(最早最晚时间、时差)等。在关键路径法的活动上加载资源后,还能够对项目的资源需求和分配进行分析。关键路径法是现代项目管理中最重要的一种分析工具。
计划评审方法(program evaluation and review technique, PERT)和关键路线法CriticalPath Method,CPM)是网络分析的重要组成部分,它广泛地用于系统分析和项目管理,由于PERT与CPM既有着相同的目标应用,又有很多相同的术语,这两种方法已合并为一种方法,在国外称为PERT/CPM,在国内称为统筹方法(scheduling method)。
根据绘制方法的不同,关键路径法可以分为两种:即箭线图(ADM)和前导图(PDM)。
无论是关键路径法(CPM)还是计划评审法(PERT),最初使用的表示方法都是箭线法(ADM),在之后很长的一段时间箭线法(ADM)都是人们主要使用的方法,直到70年代以后,前导图(PDM)才开始逐渐流行起来,但是箭线法(ADM)仍然使用极为广泛。在90年代以后,美国Primavera公司开发出其Windows版本的计划管理软件时,只采用前导图(PDM)作为其计算平台,从根本上改变了这一局面,从此以后,前导图(PDM)成了人们主要使用的方法,而箭线图(ADM)则很少使用。(所以这里只研究前导图PDM的计算方法)。
在国外前导图(PDM)基本已经成为唯一在使用的方法,而箭线图(ADM)只有在教学和培训中还有时用到。而发展势头曾一度压过关键路径法(CPM)的计划评审技术(PERT),正在使用的已经很少了。
箭线图(ADM)法又称为双代号网络图法,它是以箭线表示活动而以带编号的节点连接活动,活动间可以有一种逻辑关系,结束-开始型逻辑关系。在箭线图中,有一些实际的逻辑关系无法表示,所以在箭线图中需要引入虚工作的概念。
前导图(PDM)法又称为单代号网络图法,它是以节点表示活动而以节点间的连线表示活动间的逻辑关系,活动间可以有四种逻辑关系,结束-开始、结束-结束、开始-开始和开始-结束。
PDM有4种依赖和前导关系,如下(前:代表前导任务:后:代表后续任务):
(前)完成-(后)开始:前导任务的完成导致后续任务的启动。
(前)完成-(后)完成:前导任务的完成导致后续任务的完成。
(前)开始-(后)开始:前导任务的启动导致后续任务的启动。
(前)开始-(后)完成:前导任务的启动导致后续任务的完成。
以上关系中,完成-开始模式是最常用的任务关系,开始-结束模式是最少使用的任务关系。
通常,每个节点的活动会有如下几个时间:最早开始时间(ES)、最迟开始时间(LS)、最早结束时间(EF)、最迟结束时间(LF)。
最早开始时间(Early Start)某项活动能够开始的最早时间。
最早结束时间(Early Finish)某项活动能够完成的最早时间。EF=ES+工期估算
最迟结束时间(Late Finish)为了使项目按时完成,某项工作必须完成的最迟时间。
最迟开始时间(Late Start)为了使项目按时完成,某项工作必须开始的最迟时间。
总时差(Total Float) 指一项活动在不影响整体计划工期的情况下最大的浮动时间,本活动的最迟开始时间(减)本活动的最早开始时间。(物理含义:总时差是该工作的开工允许延误的时间,在该时间内,不影响项目的工期。)
自由时差(Free Float)指活动在不影响其紧后工作的最早开始时间的情况下可以浮动的时间,紧后活动的最早开始时间(减)本活动的最早结束时间(如果有多个紧后活动,则紧后活动的最早开始时间是这些活动的最早开始时间的最早者)。(物理含义:自由时差是该工作的完工允许延误的时间,在该时间内不影响项目的工期。)
计算PDM的方法:
使用正推法计算最早开始时间(ES),最早结束时间(EF)
使用逆推法计算最迟开始时间(LS),最迟结束时间(LF)
开始节点ES为0时:
总时差=LS-ES或LF-EF;
工期=EF-ES或LF-LS;
自由时差=紧后工作的ES-此活动的EF。
开始节点ES为1时:
总时差=LS-ES或LF-EF;
工期=EF-ES+1或LF-LS+1
自由时差=紧后工作的ES-此活动的EF-1
总时差:相同的减。工期:结束减开始。自由时差:晚始-早始=晚完-早完,后早始-前早结。
前导图PDM的绘制方法及说明:
1)画出网络图,以节点标明事件,由箭头代表作业。这样可以对整个项目有一个整体概观。习惯上项目开始于左方终止于右方。
2)在箭头上标出每项作业的持续时间(T)
3)从左面开始,计算每项作业的最早结束时间(EF)。该时间等于最早可能的开始时间(ES)加上该作业的持续时间。
4)当所有的计算都完成时,最后算出的时间就是完成整个项目所需要的时间。
5)从右边开始,根据整个项目的持续时间决定每项作业的最迟结束时间(LF)。
6)最迟结束时间减去作业的持续时间得到最迟开始时间(LS)。
7)每项作业的最迟结束时间与最早结束时间,或者最迟开始时间与最早开始时间的差额就是该作业的时差。
8)如果某作业的时差为零,那么该作业就在关键路线上。
9)项目的关联路线就是所有作业的时差为零的路线。
先看CPM的实例,再来具体分析,带着问题来分析,这样印象会更为深刻:
实例一、在工程网络计划中,工作M的最早开始时间为第16天,其持续时间为5天。该工作有三项紧后工作,他们的最早开始时间分别为第25天、第27天和第30天,最迟开始时间分别为第28天、第29天和第30天。则工作M的总时差为()天。
A、5 B、6 C、7 D、9
解析:工作M的最早开始时间为第16天,其持续时间为5天。因此,工作M的最早结束时间为第16+5=21天。工作M有三项紧后工作,他们的最迟开始时间分别为第28天、第29天和第30天。因此工作M的最迟结束时间为三者之中最小的第28天。工作M的总时差=工作M的最迟结束时间-工作M的最早结束时间=28-21=7天。答案选C。
实例二、下图为某工程进度网络图,结点1为起点,结点11为终点,那么关键路径为(1),此工程最快(2)天完成。
(1)A、1-3-5-8-9-10-11 B、1-2-4-7-11 C、1-3-5-7-11 D、1-2-5-8-10-11
(2)A、18 B、28 C、22 D、20
答案:(12)A,(13)B
实例三、某项目最初的网络图如下图所示,为了压缩进度,项目经理根据实际情况使用了快速跟进的方法:在任务A已经开始一天后开始实施任务C,从而使任务C与任务A并行3天。这种做法将使项目()。
A、完工日期不变 B、提前4天完成 C、提前3天完成 D、提前2天完成
答案:D
实例四、下图中活动G可以拖延( )周而不会延长项目的最终结束日期。
A、0 B、1 C、3 D、4
答案:D
实例五、一项任务的最早开始时间是第3天,最晚开始时间是第13天,最早完成时间第9天,最晚完成时间第19天。该任务( )。
A、在关键路径上 B、有滞后 C、时展情况良好 D、不在关键路径上
解析:若在关键路径上,则ES=LS且EF=LF,故选D。
实例六、某项目的时标网络图如下图所示(时间单位:周),在项目实施过程中,因负责某个子项目实施的网络工程师失误操作发生了质量事故,需整顿返工,造成4~6之间的作业拖后3周,受此影响,工程的总工期将会拖延( )周。
A、0 B、1 C、2 D、3
答案:B
实例七、某车间需要用一台车床和一台×××加工A,B,C,D 4个零件。每个零件都需要先用车床加工,再用×××加工。车床和×××加工每个零件所需的工时(包括加工前的准备时间以及加工后的处理时间)如下表所示。
工时(小时) | A | B | C | D |
车床 | 8 | 4 | 6 | 6 |
××× | 6 | 7 | 2 | 5 |
若以A,B,C,D零件顺序安排加工,则共需29小时。适当调整零件加工顺序,可产生不同实施方案,在各种实施方案中,完成4个零件加工至少共需()小时。
A.25 B.26 C.27 D.28
对于指定的加工顺序,如何描述其加工所需的时间(加工进度计划)呢?这是解答本题首先需要解决的问题。以顺序安排加工A,B,C,D 4个零件为例,人们可以用甘特图将工作进度计划描述如下。
其中横轴表示时间,从零件A在车床上加工开始作为坐标0,并以小时为单位。纵轴表示车床和×××。
车床和×××加工某零件的进度情况(从一时刻到另一时刻)以横道表示。
在车床上,零件A,B,C,D一个接一个顺序加工,需要8+4+6+6=24小时。
在×××上,零件A只能等车床加工完A后才开始,所以,其横道的横坐标为8~14;零件B只能等车床加工完B后才开始,所以,其横道的横坐标为14~21;零件C只能等车床加工完C后才开始,所以,其横道的横坐标为21~23;零件D只能等车床加工完D后才开始,所以,其横道的横坐标为24~29。
这样,顺序加工A,B,C,D零件总共需要29小时。
从上例看出,为缩短总工时,应适当安排加工零件的顺序,以缩短×××最后的加工时间(车床完工后还需要用×××的时间),并缩短车床最先的加工时间(×××启动前需要等待的时间)。所以我们应采取如下原则来安排零件的加工顺序:
在给定的工时表中找出最小值,如果它是×××时间,则该零件应最后加工;如果它是车床时间,则该零件应最先加工。除去该零件后,又可以按此原则继续进行安排。按此原则,本题中,最小工时为2小时,这是零件C所用的×××加工时间。所以,零件C应放在最后加工。除去零件C后,最小工时为4小时,这是零件B所需的车床加工时间。所以,零件B应最先加工。再除去零件B以后,工时表中最小的时间为5小时,是零件D所需的×××加工时间。因此,零件D应安排在零件C之前加工。
这样,最优方案应是按B,A,D,C零件的顺序来加工,其甘特图如下。
在车床上,零件B,A,D,C一个接一个顺序加工,需要4+8+6+6=24小时。
在×××上,零件B只能等车床加工完后才开始,所以,其横道的横坐标为4~11;零件A只能等车床加工完后才开始,所以,其横道的横坐标为12~18;零件D可以在×××加工完A后立即开始(此时车床已加工完零件D),所以,其横道的横坐标为18~23;零件C只能等车床加工完C才能开始(此时×××已加工完零件D),所以,其横道的横坐标为24~26。
这样,按B,A,D,C零件顺序进行加工,总共只需要26小时。这是最优方案。
参考答案:B
实例八、
解析:
CPM在项目管理中的应用
对于一个项目而言,只有项目网络中最长的或耗时最多的活动完成之后,项目才能结束,这条最长的活动路线就叫关键路径(Critical Path),组成关键路径的活动称为关键活动。其通常做法是:
1) 将项目分解为若干个任务(WBS),各项任务视为有一个时间属性的结点,从项目起点到终点进行排列。
2) 用有方向的线段标出各结点的紧前活动和紧后活动的关系,使之成为一个有方向的网络图。
3) 用正推法和逆推法计算出各个活动的最早开始时间,最晚开始时间,最早完工时间和最迟完工时间,并计算出各个活动的时差。
4) 找出所有时差为零或者为负数的活动所组成的路线,即为关键路径。
5) 识别出准关键路径,为网络优化提供约束条件。
它具有以下特点:
1)关键路径上的活动持续时间决定了项目的工期,关键路径上所有活动的持续时间总和就是项目的工期。
2)关键路径上的任何一个活动都是关键活动,其中任何一个活动的延迟都会导致整个项目完工时间的延迟。
3)关键路径上的耗时是可以完工的最短时间量,若缩短关键路径的总耗时,会缩短项目工期;反之,则会延长整个项目的总工期。但是如果缩短非关键路径上的各个活动所需要的时间,也不至于影响工程的完工时间。
4)关键路径上活动是总时差最小的活动,改变其中某个活动的耗时,可能使关键路径发生变化。
5)可以存在多条关键路径,它们各自的时间总量肯定相等,即可完工的总工期。
关键路径是相对的,也可以是变化的。在采取一定的技术组织措施之后,关键路径有可能变为非关键路径,而非关键路径也有可能变为关键路径。
关键路径的基本问题:
1、 什么是关键路径?
只有项目网络中最长的或耗时最多的活动完成之后,项目才能结束,这条最长的活动路线就叫关键路径(Critical Path)
2、 关键路径可以超过一条吗?
可以,可以有两条甚至以上。
3、 关键路径是一成不变的吗?
不是,在进度计划的优化或项目实施过程中,关键路径可能发生变化。
4、 关键路径越多,对项目意味着什么?
关键路径越多,项目的风险越大,就越难管理。
5、 关键路径上可以有虚活动吗?
可以(在箭线法中)。
6、 会出现负浮动时间吗?
会,如果关键路径上的活动被延误了,或者管理层要求比原定日期提前完工。
7、 出现负浮动时间时,怎么办?
负浮动时间必须尽快加以解决,可以进行赶工、快速跟进等。