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

你有没有想过像建造摩天大楼或推出新款智能手机这样的庞大项目,是如何保持进度不落后的呢?答案就是使用关键路径分析 (CPA)。在本章中,我们将学习如何将大型项目拆解为较小的任务、找出最重要的环节,并精确计算整个项目所需的时间。如果一开始看到满满的方格和箭头,别担心——一旦掌握了“前向传递”(Forward Pass) 和“后向传递”(Backward Pass) 的节奏,这就跟解拼图一样简单!

1. 建立网络:节点活动法 (AoN)

在开始计算时间之前,我们需要一张地图。在 AQA 的课程大纲中,我们使用节点活动法 (Activity-on-Node)。这意味着每个任务(活动)都由一个方格(节点/Node)表示,而箭头(弧/Arcs)则显示它们必须进行的顺序。

关键术语

  • 活动 (Activity):需要耗费时间的特定任务(例如:“粉刷墙壁”)。
  • 先行关系 (Precedence):在执行某项任务前必须先完成的任务。我们通常会使用先行关系表 (Precedence Table) 来列出这些规则。
  • 工期 (Duration):完成一项活动所需的时间。
例子:你不能在穿鞋子之后才穿袜子。穿袜子就是穿鞋子的先行活动

如何绘制节点方格 (Node)

在 AQA 考试中,标准的节点方格通常划分如下:

[ 活动标签 | 工期 ]
[ 最早开始时间 (EST) | 最迟完成时间 (LFT) ]

(注意:请务必检查考卷中提供的具体图示,因为布局有时会略有不同,但这四项信息是核心!)

快速回顾:网络规则
  • 每个网络都应该只有一个“开始”节点和一个“完成”节点。
  • 箭头永远从左指向右。
  • 不允许出现“回路 (loops)”!你不能有依赖于自身的任务。
关键重点:网络是一张逻辑地图。如果活动 B 依赖于活动 A,那么必须有一条从 A 指向 B 的箭头。

2. 排程:前向与后向传递

现在进入数学部分!我们需要为每个任务找到最早开始时间 (EST)最迟完成时间 (LFT)

前向传递 (计算 EST)

我们从起点开始,向终点推算。我们要寻找的是一项任务可以开始的最早可能时间。

  1. 第一个活动从时间 0 开始。
  2. EST + 工期 = 最早完成时间 (EFT)
  3. 如果一个任务有多于一个箭头指向它,你必须选择其中的最大值 (LARGEST)

类比:想象你在等两个朋友到齐才能开始玩游戏。朋友 A 在 2:00 到达,朋友 B 在 2:30 到达。你必须等到 2:30 才能开始。在前向传递中,“最晚”到达的人决定了“最早”开始的时间。

后向传递 (计算 LFT)

我们从“完成”节点开始,向回推算,找出在不延误整个项目的前提下,一项任务最迟可以完成的时间。

  1. 最后一项活动的 LFT 等于其 EFT(即整个项目的持续时间)。
  2. LFT - 工期 = 最迟开始时间 (LST)
  3. 如果一个活动有多于一个箭头从中发出(向回推算时),你必须选择其中的最小值 (SMALLEST)
常见错误

学生常会弄混,在前向传递时选了最小值,在后向传递时选了最大值。请记住:前向 = 最大值 (MAX),后向 = 最小值 (MIN)。

关键重点:前向传递告诉你项目需要多长时间完成;后向传递则告诉你每个任务的最后期限。

3. 关键活动、关键路径与浮动时间

并非所有任务都是平等的。有些任务有“回旋余地”,有些则没有。

什么是关键活动?

如果延误某项任务会导致整个项目延误,该任务即为关键活动 (Critical)。对于这些任务,其最早开始时间最迟开始时间是完全相同的。

关键路径 (Critical Path)

关键路径是一条从开始到结束、由关键活动组成的连续路径。它代表了网络中最长的路径。

浮动时间 (Float):所谓的“回旋余地”

总浮动时间 (Total Float) 指的是在不延误整个项目的前提下,一项活动可以被推迟的时间。

公式:\( \text{Total Float} = \text{LFT} - \text{Duration} - \text{EST} \)

(或更简单地说:LST - EST)

你知道吗?

关键活动的总浮动时间永远为。如果你计算出的浮动时间是负数,很可能是在后向传递时出错了!

关键重点:识别出关键路径有助于管理者确切知道哪些任务需要最严格的监控,以避免延误。


4. 可视化项目:甘特图 (Gantt Diagrams)

甘特图(也称为级联图 Cascade Diagram)是一种显示进度的横条图。对于非数学专业的人来说,它比网络图更容易阅读!

如何绘制甘特图

  • X 轴代表时间。
  • Y 轴列出各项活动。
  • 实心横条显示活动从其 EST 开始的持续时间。
  • 虚线(或阴影区域)显示活动之后的浮动时间 (Float)
  • 关键活动不会有虚线——它们的横条是“锁定”在特定位置的。

资源直方图 (Resource Histograms)

有时任务需要工人(资源)。资源直方图是一个柱状图,显示在假设每个任务都尽早(在 EST)开始的情况下,任何特定时间点所需的工人数量。

关键重点:甘特图显示事情何时发生;资源直方图显示需要什么资源


5. 优化模型:资源平衡 (Resource Levelling)

在现实世界中,你可能只有 3 名工人,但你的直方图显示周二需要 5 名。这时就需要资源平衡

启发式程序 (Heuristic Procedures)

“启发式”只是一个高阶词汇,意思是“经验法则”或逻辑策略。为了平衡资源,我们利用浮动时间

  1. 找出工人需求超过上限的时间点。
  2. 寻找在该时间点进行的非关键活动
  3. 推迟这些活动(将其移入浮动时间内),直到有足够的工人可用。
如果无法平衡怎么办?

如果你推迟一项活动超过了它的浮动时间,它就会变成新的关键路径,整个项目的工期将会增加。在考试中,你可能会被要求通过解释工期或工人数量的变化如何影响完成日期来“优化模型”(DE4 部分)。

记忆技巧:浮动时间想象成“懒惰时间”。如果你有 2 天的浮动时间,你可以“偷懒”2 天再开始,而不会惹麻烦给老板(项目经理)!

关键重点:利用浮动时间来平滑工作量。如果用完了浮动时间却依然没有足够的工人,项目就会延误。


快速回顾总结

1. 绘制网络:使用先行关系表连接方格。
2. 前向传递:找出 EST(在交会点取最大值)。
3. 后向传递:找出 LFT(在交会点取最小值)。
4. 找出关键路径:寻找浮动时间 = 0 的路径。
5. 计算浮动时间:\( \text{LFT} - \text{Duration} - \text{EST} \)。
6. 甘特图/直方图:绘制排程并检查资源是否超载。