欢迎来到关键路径分析 (Critical Path Analysis)!

有没有想过,像建造摩天大楼、发射火箭,甚至是筹办大型音乐节这类浩大工程,是如何准时完成的呢?它们并非「自然而然」发生的,而是通过关键路径分析 (Critical Path Analysis, CPA) 精密规划出来的。

在本章中,你将学会如何将大型计划拆解为较小的任务,厘清哪些任务必须优先完成,并找出可能拖累整体进度的「瓶颈」所在。别担心,听起来可能有点复杂,我们会一步一步来拆解!


1. 建立基础:节点作业网络图 (Activity-on-Node Networks)

在开始计算时间之前,我们需要一张计划的地图。在离散数学中,我们使用优先级网络 (Precedence network)。针对你的 AQA 课程,我们特别使用节点作业法 (Activity-on-Node)

什么是优先级表 (Precedence Table)?

每个计划都始于一系列的任务(作业)。有些任务必须等其他任务完成后才能开始,这称为优先级 (Precedence)

例子:你必须先穿上袜子(作业 A),才能穿上鞋子(作业 B)。因此,作业 A 是作业 B 的先行作业 (Preceding activity)

绘制网络图

节点作业法图表中:
1. 每个节点 (Node)(通常是一个方格)代表一项特定任务。
2. 箭头 (Arrows) 表示时间流向以及任务之间的依赖关系。
3. 我们通常会加入一个「开始」节点和一个「完成」节点,让结构更清晰。

小贴士:务必使用铅笔绘图!绘制网络图通常需要多次修改,因为你需要重新调整节点位置,避免箭头乱成一团,像碗意大利面一样。

重点总结:优先级网络图是一张可视化地图,展示了任务必须完成的先后顺序。


2. 前向递推:找出最早开始时间 (Forward Pass)

有了地图后,我们需要为每项作业找出最早开始时间 (Earliest Start Time, EST)。我们透过从左向右遍历网络来完成此步骤,这称为前向递推 (Forward Pass)

如何计算 EST:

1. 开始 (Start) 节点的时间从 0 开始。
2. 对于任何作业,其 EST 是其所有先行作业能够完成的最早时间。
3. 黄金法则:如果一个节点有多个箭头指向它,你必须选择其中的最大值 (Maximum)。为什么呢?因为该作业必须等到最慢的先行任务完成后才能开始!

类比:想象你要跟三位朋友会合去看电影。你必须等到最后一个人到达才能进场。如果他们分别在 6:00、6:15 和 6:30 到达,你必须等到 6:30 才能开始看电影。

快速回顾:
前向递推 = 寻找最早时间。
规则 = 在交汇点取最大值。


3. 后向递推:找出最迟完成时间 (Backward Pass)

一旦知道计划完成的最早时间,我们就要从右向左反向推算,找出最迟完成时间 (Latest Finish Time, LFT)。这告诉我们,一项任务在不延误整个计划的前提下,最迟可以在什么时候结束。

如何计算 LFT:

1. 从完成 (Finish) 节点开始。其 LFT 与它的 EST 相同。
2. 向后推算,减去该作业的持续时间。
3. 黄金法则:如果你在向后推算时遇到一个节点有多个箭头发出,你必须选择其中的最小值 (Minimum)

常见错误:学生在向后推算时,常忘记将「最大值」规则切换为「最小值」。记住:前向 = 高 (Max),后向 = 低 (Min)!

重点总结:后向递推告诉我们每项作业有多少「缓冲空间」。


4. 关键作业与关键路径

这是本章的重点。关键作业 (Critical Activity) 是指完全没有缓冲空间的任务。如果它延误哪怕一秒钟,整个计划就会延误。

如何识别关键作业:

一项作业若符合以下条件即为关键:
\( \text{LFT} - \text{Duration} - \text{EST} = 0 \)
(简单来说:最早开始时间与最迟开始时间完全相同)。

关键路径 (Critical Path)

关键路径是指从「开始」节点到「完成」节点,由关键作业组成的连续路径。
注意:一个计划可能有多于一条关键路径!

你知道吗?计划经理几乎会将所有精力集中在关键路径上,因为那里充满风险。如果非关键作业稍微延误,通常不会产生大碍!


5. 理解「浮动时间」(Float)

不在关键路径上的任务具有所谓的浮动时间 (Float)(或称松弛时间)。这是在不延误整个计划的情况下,一项作业可以延误的时间长度。

计算总浮动时间 (Total Float):

要找出作业的浮动时间,请使用以下简单公式:
\( \text{Total Float} = \text{LFT} - \text{Duration} - \text{EST} \)

记忆辅助:把「浮动时间」想象成游泳池里的「救生浮板」。它是你在让计划「沉没」之前所拥有的额外浮力。

快速回顾栏:
- 关键作业:浮动时间 = 0。
- 非关键作业:浮动时间 > 0。
- 总浮动时间:任务可用的总剩余时间。


6. 优化模型:应对现实世界的变化

课程大纲 (DE4) 要求你理解当情况改变时会发生什么。在考试中,你可能会被问到:「如果作业 C 比预期多花 2 天,会发生什么事?」

情境分析:

1. 如果延误时间小于或等于浮动时间:计划完成时间保持不变。
2. 如果延误时间大于浮动时间:计划将会延误,且可能会产生一条新的关键路径
3. 如果关键作业延误:计划一定会延误同样的时间长度。

例子:如果你在准备晚餐,而「烧水」作业在关键路径上,如果炉子加热多花了 5 分钟,晚餐就会迟 5 分钟。如果「摆餐具」作业有 10 分钟的浮动时间,而你多花了 5 分钟才完成,晚餐仍然会准时开始!


总结检查清单

在练习题目之前,请确保你能:
- [ ] 从优先级表绘制网络图(节点作业法)。
- [ ] 执行前向递推来找出最早开始时间(使用最大值规则)。
- [ ] 执行后向递推来找出最迟完成时间(使用最小值规则)。
- [ ] 识别浮动时间 = 0 的关键路径
- [ ] 计算任何非关键作业的总浮动时间
- [ ] 解释特定任务的延误如何影响整个计划。

刚开始觉得棘手别担心!你画的网络图越多,前向和后向递推的步骤就会变得越「自动化」。你一定做得到的!