欢迎来到关键路径分析 (Critical Path Analysis)!
有没有想过像建造摩天大楼或发布新款智能手机这种大型项目,是如何确保进度不落后的呢?他们使用的是一种名为关键路径分析 (Critical Path Analysis, CPA) 的技术。在本章中,我们将学习如何将一个大型项目拆解成较小的任务,厘清各项任务之间的依赖关系,并计算完成所有工作所需的最短时间。如果刚开始看到一大堆方框和箭头觉得眼花缭乱,别担心,我们会一步一步来拆解!
1. 奠定基础:优先级表 (Precedence Tables)
在画图之前,我们需要一个计划。优先级表列出了所有任务(称为活动 (activities)),并显示了在开始下一个任务之前必须完成哪些任务。这些被称为直接前置活动 (immediate predecessors)。
例子:如果你正在泡一杯茶,「烧开水」必须在「把水倒进杯子」之前完成。因此,「烧开水」就是前置活动。
关键术语:
- 活动 (Activity):需要时间和资源的任务(以箭头表示)。
- 事件 (Event):活动的开始或完成点(以圆圈/节点表示)。
- 持续时间 (Duration):完成一项活动所需的时间。
虚拟活动 (Dummy) 的规则
有时我们需要展示任务之间的逻辑联系,而无需增加任何时间。这时我们会使用虚拟活动 (dummy activity)。它被画成一条虚线箭头,持续时间为 0。当遇到以下情况时,你就需要用到虚拟活动:
- 两项活动共享部分(但非全部)相同的前置活动。
- 你需要确保每项活动都能通过其起始和结束节点被唯一识别(你不能让两条箭头从同一圆圈出发并终止于另一个相同的圆圈!)。
温馨提示:活动网络图总是从单一节点开始,并在单一节点结束。
2. 活动网络图 (Activity on Arc, AoA)
在考试中,你将会使用活动箭头法 (Activity on Arc, AoA)。这意味着任务本身写在箭头上,而节点(圆圈)代表任务开始或结束的时间点。
绘图小撇步:
- 箭头原则上应从左向右流动。
- 尽量避免箭头交叉。
- 别忘了:每一条箭头都必须标记名称(活动名称)和持续时间数字。
重点总结:网络图就是项目的“地图”。只要跟着箭头走,你就能准确看出哪条路径会通往终点。
3. 计算时间:顺向与逆向推算 (Forward and Backward Passes)
现在进入数学部分!每个节点通常会分为三个部分:节点编号、最早事件时间 (EET),以及最晚事件时间 (LET)。
顺向推算 (寻找 EET)
我们从起点开始(时间 = 0),一直推算到终点。这能告诉我们每个事件可能发生的最早时间。
- 规则:当有多项活动汇入同一个节点时,选择最大值。
- 计算:\( \text{Previous EET} + \text{Duration} = \text{New EET} \)。
逆向推算 (寻找 LET)
一旦到达终点,我们就向起点反向推算。这能告诉我们在不延误整个项目的前提下,一个事件最晚可以发生的时间。
- 规则:当有多项活动从同一个节点汇出时,选择最小值。
- 计算:\( \text{Next LET} - \text{Duration} = \text{New LET} \)。
你知道吗?如果终点节点的 EET 和 LET 不一致,那你很可能计算出错了。它们在起点 (0) 和终点应该永远匹配!
4. 关键路径与时差 (Critical Path and Float)
关键路径 (Critical Path) 是耗时最长的活动序列。如果此路径上的任何活动延误哪怕一分钟,整个项目都会延期结束!
如何识别关键活动:
如果一项活动符合以下条件,它就是关键活动:
- 其起始节点的 EET 等于 LET。
- 其结束节点的 EET 等于 LET。
- 结束节点的 LET 与起始节点的 EET 之差等于该活动的持续时间:\( \text{LET(end)} - \text{EET(start)} = \text{Duration} \)。
什么是时差 (Float)?
总时差 (Total Float) 是活动拥有的“缓冲空间”或闲置时间。它是指在不延误整个项目的情况下,一项活动可以被延迟的时间量。
计算公式:
\( \text{Total Float} = \text{LET(end node)} - \text{EET(start node)} - \text{Duration} \)
注意:关键活动的总时差永远为 0。
重点总结:记得在图表上用高亮或双线标示关键路径,让它清晰可见!
5. 甘特图与进度安排 (Gantt Charts and Scheduling)
甘特图 (Gantt Chart)(又称级联图)是一种横条图,展示了每项活动发生的时间段。
- 实心长条:代表活动在其“最早开始时间”开始的持续时间。
- 虚线/空白处:代表时差 (float)(可用的额外时间)。
- 关键活动通常会画在最上面的一行,因为它们后面没有任何“空间”(时差)。
安排人手
有时考试会问:“为了准时完成项目,最少需要多少名工人?”
要找出答案,请在甘特图上查看特定时间(例如第 10 天)并画一条垂直线。观察当时有几项活动必须正在进行。如果必须同时进行三项活动,你就至少需要三名工人!
常见错误:在检视甘特图的依赖关系时,忘记了虚拟活动。尽管它们的持续时间为 0,但它们仍然决定了任务何时可以开始!
快速复习清单
- 你能否根据优先级表绘制网络图,并包含虚拟活动?
- 顺向推算时你是否选用了最大值 (Max),逆向推算时是否选用了最小值 (Min)?
- 你是否记住了总时差公式:\( \text{LET}_{\text{end}} - \text{EET}_{\text{start}} - \text{Duration} \)?
- 你能否识别出关键路径(即时差 = 0 的地方)?
- 你能否绘制出同时显示活动持续时间与时差的甘特图?
如果刚开始觉得很难,别担心!绘制的网络图越多,你会越得心应手。记住一口诀:顺向求最大,逆向求最小 (Forward = Maximum, Backward = Minimum)!