单代号网络图、双代号网络图、七格图、关键路径、关键链法
一、单代号网络图 (PDM, Precedence Diagramming Method)
(一)单代号网络图 (PDM)
在单代号网络图中,活动由节点(也称为结点或事件)来表示,而节点之间的逻辑关系则通过箭线来表示。这种表示方法强调的是活动之间的顺序关系,而不是活动本身的持续时间。这种图通常不包含虚活动。
(二)特点
· 活动以节点表示;
· 箭头代表活动间的逻辑关系;
· 不需要虚活动来表示逻辑关系。
(三)四种依赖关系
完成到开始 (FS):前一项活动完成后,后一项活动才能开始。
完成到完成 (FF):前一项活动完成后,后一项活动才能完成。
开始到开始 (SS):前一项活动开始后,后一项活动才能开始。
开始到完成 (SF):前一项活动开始后,后一项活动才能完成。
(四)规则
无循环:网络图中不能出现循环路径。
无双向箭头:两个节点之间只能有一条方向明确的箭线。
无悬空箭线:所有箭线都必须有明确的起点和终点。
单一起始和结束节点:整个网络图只有一个起始节点和一个结束节点。
单向性:箭线是从左向右指向的。
无循环和判断:网络图不包含任何循环或决策节点。
无交叉线:尽量避免箭线交叉,若不可避免,则采用过桥法或其他方法处理。
无死胡同:每个节点都必须有进入和离开的箭线。
(五)绘制步骤:
确定活动:列出项目中的所有活动。
确定依赖关系:确定活动之间的逻辑关系。
绘制节点:为每个活动画一个节点。
连接箭线:根据活动间的逻辑关系用箭线连接节点。
检查规则:确保网络图遵循上述规则。
二、 双代号网络图 (ADM, Arrow Diagramming Method)
(一)定义
双代号网络图是另一种描述项目活动及其相互依赖关系的方法。它使用箭头表示活动,节点表示活动之间的关系。
(二)特点:
· 箭线表示活动:箭线表示一个具体的工作或活动。
· 节点表示事件:节点代表活动的开始或结束。
· 代号唯一性:每个活动和事件都有唯一的代号。
· 紧前和紧后事件:箭线的箭尾所对应的节点是紧前事件,箭头所对应的节点是紧后事件。
(三)规则:
唯一代号:网络图中的每一个活动和事件都有唯一的代号。
两个节点间仅一个活动:任意两个节点之间只能存在一个活动(即一条箭线)。
无循环:不允许网络图中有任何形式的循环路径。
无悬空箭线:箭线必须有明确的起点(箭尾)和终点(箭头)。
单一起始和结束节点:整个网络图只有一个起始节点和一个结束节点。
虚活动:虚活动(虚箭线)用于表示逻辑关系而非实际活动,它们既不消耗时间也不消耗资源,仅为了保持活动之间的正确逻辑关系。
避免交叉线:尽量避免箭线交叉,如果必须交叉,则可以使用虚活动或其他技术来实现。
(四)绘制步骤:
确定活动:列出项目中的所有活动。
确定依赖关系:确定活动之间的逻辑关系。
分配代号:给每个活动和事件分配唯一的代号。
绘制节点:为每个事件画一个节点。
绘制箭线:根据活动间的逻辑关系用箭线连接节点。
检查规则:确保网络图遵循上述规则。
(五)示例说明:
假设我们有以下四个活动:
活动A:准备材料
活动B:设计图纸
活动C:施工
活动D:验收
活动之间的逻辑关系如下:
A完成后开始B
B完成后开始C
C完成后开始D
我们可以为每个活动和事件分配代号,例如:
起始节点为1
活动A的结束节点为2
活动B的结束节点为3
活动C的结束节点为4
结束节点为5
三、七格图
相应参数
最早开始时间(ES):指一个活动最早可以开始的时间点。
最早结束时间(EF):某项活动能够完成的最早时间。
EF=ES+工期
最晚结束时间(LF):为了使项目按时完成,某项活动必须完成的最迟时间。
最晚开始时间(LS):指一个活动最晚可以开始而不会影响整个项目的完成时间的时间点。
LS=LF-工期
四、关键路径
(一)相应参数(同七格图中的ES、LS)
最早开始时间(ES):指一个活动最早可以开始的时间点。
最晚开始时间(LS):指一个活动最晚可以开始而不会影响整个项目的完成时间的时间点。
(二)如果一个活动的最早开始时间和最晚开始时间相等,那么这个活动就是关键活动。
这意味着该活动没有浮动时间(也叫自由浮动或总浮动),即它不能被延迟,否则将会影响整个项目的完成日期。
关键路径是由一系列关键活动构成的最长路径,决定了项目的最短完成时间。
关键路径上的任何活动都是关键活动,因为它们对项目的最终完成时间有着直接的影响。如果关键路径上的任何一个活动延期,则整个项目的完成日期也将相应地推后。
(三)关键路径的计算
正向遍历(从起点到终点)确定每个活动的最早开始时间和最早结束时间。
反向遍历(从终点到起点)确定每个活动的最晚开始时间和最晚结束时间。
计算浮动时间:对于非关键活动,可以通过计算最晚开始时间与最早开始时间之差得到其总浮动时间。
关键路径的长度就是所有关键活动的持续时间之和。如果存在多条路径具有相同的最长持续时间,则这些路径都是关键路径。
五、关键链法(通过合理安排资源和使用缓冲时间,提高了项目的可预测性和成功率)
(一)关键链法
关键链法(Critical Chain Method, CCM)是一种项目管理方法,旨在通过优化资源分配和利用缓冲时间来提高项目的完成效率。这种方法由以色列物理学家埃利亚胡·高德拉特(Eliyahu M. Goldratt)提出,它是基于约束理论(Theory of Constraints, TOC)发展而来的。
(二)在关键链法中,有两种类型的缓冲被用来确保项目的顺利完成:
1、项目缓冲:
定义:项目缓冲是放置在关键链末端的一个时间段,用于吸收关键链上所有活动的不确定性所带来的延误,确保项目能够按时完成。
作用:项目缓冲的存在是为了确保关键链的延误不会影响项目的最终交付日期。
2、接驳缓冲(Feeding Buffer):
定义:接驳缓冲是放置在非关键链与关键链之间的缓冲时间,用于保护关键链不受非关键链延误的影响。
作用:接驳缓冲的存在是为了确保非关键链上的延误不会传递到关键链上,从而影响整个项目的进度。
(三)关键链法的核心思想是通过以下步骤来管理和优化项目的进度:
1、构建项目网络图:绘制出项目的任务流程,包括各个任务之间的依赖关系。
2、确定资源约束:识别出项目中的资源限制,如人力资源、设备等。
3、计算关键链:基于资源约束,计算出考虑了资源限制的关键链。
(四)设置缓冲:
在关键链的末端放置项目缓冲。
在关键链与其他链路的交汇点放置接驳缓冲。
监控和管理缓冲:在整个项目执行过程中,密切监控缓冲的使用情况,以确保项目按计划进行。
(五)示例说明:
假设一个项目包含以下活动及其持续时间:
A (5天)、B (3天)、C (4天)、D (2天)、E (3天)
假设A和B并行开始,之后A连接到C,B连接到D,然后C和D同时完成后连接到E。假设资源有限,导致C和D不能同时进行,那么关键链会是A-C-E 或者 B-D-E,具体取决于哪个路径在资源约束下的持续时间最长。
如果经过计算发现A-C-E是最长的路径,那么这就是关键链。
假设项目缓冲为5天,接驳缓冲为2天。
在关键链A-C-E的末端放置5天的项目缓冲。
在非关键链B-D与关键链A-C-E的交汇点放置2天的接驳缓冲。
通过这种方式,即使非关键链出现延误,也不会直接影响关键链,从而确保整个项目能够按照预定的时间完成。
六、正推法
正推法是在项目管理中用于计算项目网络图中各个活动的最早开始时间和最早完成时间的一种方法。这种方法是从项目的起始节点出发,沿着箭头方向(从左到右)进行计算的。
(一)正推法步骤:
1、初始化:
设定项目网络图的起点活动的最早开始时间为0(ES = 0)。
计算起点活动的最早完成时间(EF):EF = ES + 活动持续时间。
2、正向遍历:
从项目网络图的起点开始,沿着箭头方向进行。
对于每一个活动,计算它的最早开始时间(ES)和最早完成时间(EF)。
最早开始时间(ES)等于该活动所有前驱活动的最早完成时间的最大值。
最早完成时间(EF)等于最早开始时间加上该活动的持续时间。
3、计算公式:
最早开始时间(ES)= 所有前驱活动的最早完成时间(EF)的最大值。
最早完成时间(EF)= ES + 活动持续时间。
(二)示例:
假设我们有一个简单的项目网络图如下:
A -> B
A -> C
B -> D
C -> D
假设活动A、B、C、D的持续时间分别为3天、4天、2天、5天。
计算过程:
1、初始化:
活动A的最早开始时间ES(A) = 0。
活动A的最早完成时间EF(A) = ES(A) + 持续时间 = 0 + 3 = 3。
2、计算活动B和C的最早开始时间:
活动B的最早开始时间ES(B) = EF(A) = 3。
活动C的最早开始时间ES(C) = EF(A) = 3。
3、计算活动B和C的最早完成时间:
活动B的最早完成时间EF(B) = ES(B) + 持续时间 = 3 + 4 = 7。
活动C的最早完成时间EF(C) = ES(C) + 持续时间 = 3 + 2 = 5。
4、计算活动D的最早开始时间:
活动D的所有前驱活动为B和C,因此ES(D) = max(EF(B), EF(C)) = max(7, 5) = 7。
5、计算活动D的最早完成时间:
活动D的最早完成时间EF(D) = ES(D) + 持续时间 = 7 + 5 = 12。
通过以上步骤,我们得到了每个活动的最早开始时间和最早完成时间。在这个例子中,活动D的最早完成时间(12天)代表了整个项目的最短完成时间,即项目的总工期。
七、逆推法
逆推法是在项目管理中用于计算项目网络图中各个活动的最晚开始时间和最晚完成时间的方法。这种方法是从项目的终点节点出发,沿着箭头的反方向(从后向前)进行计算的。
(一)逆推法步骤:
1、初始化:
设定项目网络图的终点活动的最晚完成时间等于项目的总工期(LF = 总工期)。
计算终点活动的最晚开始时间(LS):LS = LF - 活动持续时间。
2、反向遍历:
从项目网络图的终点开始,沿着箭头的反方向进行。
对于每一个活动,计算它的最晚开始时间(LS)和最晚完成时间(LF)。
最晚完成时间(LF)等于该活动所有后续活动的最晚开始时间的最小值。
最晚开始时间(LS)等于最晚完成时间减去该活动的持续时间。
3、计算公式:
最晚完成时间(LF)= 所有后续活动的最晚开始时间(LS)的最小值。
最晚开始时间(LS)= LF - 活动持续时间。
(二)示例:
假设我们继续使用之前的简单项目网络图:
A -> B
A -> C
B -> D
C -> D
假设活动A、B、C、D的持续时间分别为3天、4天、2天、5天,且已知活动D的最早完成时间EF(D) = 12天。
计算过程:
1、初始化:
活动D的最晚完成时间LF(D) = EF(D) = 12(假设没有项目缓冲)。
活动D的最晚开始时间LS(D) = LF(D) - 持续时间 = 12 - 5 = 7。
2、计算活动B和C的最晚完成时间:
活动B的最晚完成时间LF(B) = LS(D) = 7。
活动C的最晚完成时间LF(C) = LS(D) = 7。
3、计算活动B和C的最晚开始时间:
活动B的最晚开始时间LS(B) = LF(B) - 持续时间 = 7 - 4 = 3。
活动C的最晚开始时间LS(C) = LF(C) - 持续时间 = 7 - 2 = 5。
4、计算活动A的最晚完成时间:
活动A的所有后续活动为B和C,因此LF(A) = min(LS(B), LS(C)) = min(3, 5) = 3。
5、计算活动A的最晚开始时间:
活动A的最晚开始时间LS(A) = LF(A) - 持续时间 = 3 - 3 = 0。
通过以上步骤,我们得到了每个活动的最晚开始时间和最晚完成时间。在这个例子中,活动A的最晚开始时间(0天)意味着它可以在项目开始时立即开始而不影响项目的完成时间。
八、总时差
总时差(Total Float, TF)是指一项工作在不影响整个项目总工期的前提下所具有的机动时间,即这项工作可以推迟或提前的时间范围,而不影响项目的最终完成时间。
总时差计算方式:
(一)通过最早开始时间和最晚开始时间计算:
TF=LS−ES
其中,LS是最晚开始时间;ES 是最早开始时间。
通过最早完成时间和最晚完成时间计算:
TF=LF−EF
其中,LF 是最晚完成时间;EF 是最早完成时间。
解释:
最早开始时间(ES):指一项工作最早可以开始的时间点。
最早完成时间(EF):指一项工作最早可以完成的时间点。
最晚开始时间(LS):指一项工作最晚可以开始而不会影响整个项目的完成时间的时间点。
最晚完成时间(LF):指一项工作最晚可以完成而不会影响整个项目的完成时间的时间点。
示例:
假设我们有一个简单的项目网络图,其中活动A、B、C、D的持续时间分别为3天、4天、2天、5天,并且活动A、B、C、D之间的关系为A -> B, A -> C, B -> D, C -> D。我们已经计算出了每个活动的最早开始时间(ES)、最早完成时间(EF)、最晚开始时间(LS)和最晚完成时间(LF)。
假设:
活动A: ES = 0, EF = 3, LS = 0, LF = 3
活动B: ES = 3, EF = 7, LS = 3, LF = 7
活动C: ES = 3, EF = 5, LS = 3, LF = 5
活动D: ES = 7, EF = 12, LS = 7, LF = 12
计算总时差:
计算活动A的总时差:TFA=LSA−ESA=0−0=0
计算活动B的总时差:TFB=LSB−ESB=3−3=0
计算活动C的总时差:TFC=LSC−ESC=3−3=0
计算活动D的总时差:TFD=LSD−ESD=7−7=0
(二)使用最早完成时间和最晚完成时间来计算总时差:
计算活动A的总时差:TFA=LFA−EFA=3−3=0
计算活动B的总时差:TFB=LFB−EFB=7−7=0
计算活动C的总时差:TFC=LFC−EFC=5−5=0
计算活动D的总时差:TFD=LFD−EFD=12−12=0
结论:
在这个例子中,所有活动的总时差均为0,这意味着这些活动都是关键活动,它们没有机动时间,即任何延误都会影响整个项目的完成时间。
九、自由时差
(一)定义
自由时差(Free Float, FF)是指一项工作在不影响其紧后工作最早开始时间的前提下所具有的机动时间。换句话说,自由时差衡量的是一个活动可以被推迟的时间,而不会影响到下一个活动的最早开始时间。
(二)自由时差的计算方法:
自由时差可以通过以下公式计算得出:
FF=min(ES后继−EF)
FF=min(ES 后继−EF)
其中,ES后继是紧后工作的最早开始时间;
EF是当前工作的最早完成时间。
(三)示例:
假设我们有一个简单的项目网络图,其中活动A、B、C、D的持续时间分别为3天、4天、2天、5天,并且活动A、B、C、D之间的关系为A -> B, A -> C, B -> D, C -> D。我们已经计算出了每个活动的最早开始时间(ES)和最早完成时间(EF)。
假设:
活动A: ES = 0, EF = 3
活动B: ES = 3, EF = 7
活动C: ES = 3, EF = 5
活动D: ES = 7, EF = 12
计算自由时差:
计算活动A的自由时差:
活动A有两个紧后活动B和C。
FFA=min(ESB−EFA,ESC−EFA)
FFA=min(3−3,3−3)=0
计算活动B的自由时差:
活动B只有一个紧后活动D。
FFB=ESD−EFB=7−7=0
计算活动C的自由时差:活动C只有一个紧后活动D。
FFC=ESD−EFC
FFC=7−5=2
结论:
在这个例子中,
活动A的自由时差为0,意味着它没有任何机动时间。
活动B的自由时差也为0,同样没有机动时间。
活动C的自由时差为2天,意味着它可以被推迟最多2天而不会影响活动D的最早开始时间。
十、时标网络图
(一)定义
时标网络图是一种特殊的双代号网络图,它将项目的进度计划直观地展示在一个带有时间刻度的图表中。这种图表不仅显示了活动的先后顺序,还清晰地表明了各个活动的起止时间以及它们之间的时间间隔。时标网络图特别适合用来解决资源调度问题,如资源平滑和资源平衡等。
(二)时标网络图的特点:
- 时间刻度:图表下方有一条时间轴,通常以天、周或月为单位划分,用来表示时间的流逝。
- 关键路径:关键路径上的活动直接用直线连接,因为这些活动不能延迟,否则会影响整个项目的完成时间。
- 非关键路径:非关键路径上的活动可能会出现波浪线或虚线,表示这些活动具有一定的自由浮动时间或者总浮动时间。
- 自由浮动时间:通过波浪线或虚线来表示,这些线段的长度即代表了该活动可以推迟的时间,而不影响其紧后活动的最早开始时间。
- 总工期:从网络图的起点到终点的总时间长度,可以直接读取时间轴上的数值来确定。
(三)如何制作时标网络图:
- 绘制网络图:首先按照活动间的逻辑关系绘制出标准的双代号网络图。
- 确定时间坐标:在图表底部设置时间坐标轴,根据活动的持续时间和最早开始时间来确定。
- 标注活动位置:将各个活动放置在适当的位置上,使得它们的开始时间和结束时间与时间坐标轴一致。
- 考虑自由浮动时间:对于非关键路径上的活动,如果存在自由浮动时间,则使用波浪线或虚线表示这部分时间。
- 标记关键路径:找到项目中的关键路径,并将其标记出来,以便于识别哪些活动对项目的总工期至关重要。
(四) 使用场景:
- 资源平滑:在不改变项目总工期的前提下,调整资源的分配,避免某些时段内资源需求过大。
- 资源平衡:在必要时延长项目总工期,以减少高峰期的资源需求量,使资源利用更加均衡。
(五)实例操作步骤:
- 计算最早开始时间 (ES) 和最早完成时间 (EF):为每个活动计算其最早的开始时间和完成时间。
- 计算最晚开始时间 (LS) 和最晚完成时间 (LF):为每个活动计算其最晚的开始时间和完成时间。
- 计算自由浮动时间 (FF):使用公式 (FF = \min(\text{ES}_{\text{后继}} - \text{EF})) 来计算每个活动的自由浮动时间。
- 计算总浮动时间 (TF):使用公式 (TF = \text{LS} - \text{ES}) 或者 (TF = \text{LF} - \text{EF}) 来计算每个活动的总浮动时间。
- 绘制时标网络图:在时间坐标轴上标出活动的开始和结束点,并使用波浪线或虚线表示自由浮动时间。
十一、甘特图、横道图
(一)定义
甘特图(Gantt Chart)和横道图实际上是同一种图表的不同称呼方式。甘特图是一种常用的项目管理工具,用于展示项目任务的计划进度和实际进度。它以图形的方式清晰地展示了项目的各个组成部分及其时间跨度,从而有助于项目管理者更好地监控项目的进展。
(二)甘特图的主要特点:
时间轴:甘特图的横轴通常是时间轴,用于表示项目的起始日期和结束日期,以及各个任务的持续时间。
任务条形图:每个任务被表示为一个水平条形图,条形的长度代表任务的持续时间。不同的任务可以用不同颜色的条形表示。
关键路径:在一些复杂的甘特图中,可能会突出显示关键路径上的任务,这些任务对项目的最终完成时间有着直接的影响。
里程碑:重要的时间节点或事件通常会被标记为里程碑,这些里程碑可能表示项目的重大进展或是重要决策点。
依赖关系:甘特图还可以表示任务之间的依赖关系,比如某个任务需要在另一个任务完成后才能开始。
(三)甘特图的应用场景:
项目规划:在项目开始之前,用甘特图来规划项目的各个阶段和任务。
进度跟踪:项目执行过程中,使用甘特图来跟踪实际进度与计划进度之间的差异。
资源分配:通过甘特图可以更直观地看到资源在各个任务中的分配情况。
团队协作:帮助团队成员了解各自的任务以及与其他成员任务的关系。
报告和沟通:向管理层或客户汇报项目进度的一种有效方式。
绘制甘特图的步骤:
列出所有任务:明确项目中的所有任务,并估算每个任务的持续时间。
确定任务之间的关系:分析任务之间的依赖关系,确定哪些任务需要先完成,哪些任务可以并行进行。
设定时间轴:在图表中设定时间轴,确保时间轴的刻度与项目周期相符。
绘制任务条形图:根据每个任务的开始时间和持续时间,在时间轴上绘制对应的条形图。
标注关键信息:在条形图旁边或上方添加任务名称、负责人等信息。
更新进度:随着项目的推进,定期更新甘特图以反映实际进度。
(四)示例:
假设我们有一个简单的项目,包含以下三个任务:
任务A:设计文档,预计需要5天。
任务B:编写代码,预计需要10天,但必须在任务A完成后才能开始。
任务C:测试和修复,预计需要7天,且必须在任务B完成后才能开始。
(五)甘特图
|------------------------|----------------------|------------|
设计文档(5天) 编写代码(10天) 测试(7天)
|------------------------|----------------------|------------|
Day 0 5 15 22