# 关键路径分析（Edexcel 国际A-Level 数学 D1）

> Edexcel 国际A-Level 数学 · IAL D1 2018 考纲
> 来源: https://www.owlsprep.com/zh/study/edexcel-ial-math-d1-critical-path-analysis/

本指南覆盖Edexcel 国际A-Level 决策数学1关键路径分析的全部内容，包括AOA网络绘制、事件时间计算、时差、甘特图和基础进度安排。

**先修:** [掌握D1基础有向网络的约定规则](https://www.owlsprep.com/zh/study/edexcel-ial-math-d1-network-fundamentals/); 能够解读简单的紧前关系表

## 学习目标

- 根据给定的紧前关系表绘制弧上活动（含虚活动）网络
- 从已有的弧上活动网络推导出完整的紧前关系表
- 应用关键路径算法计算最早/最晚事件时间、活动开始/结束时间，并识别关键路径
- 计算总时差，解读并绘制甘特图，生成基础项目进度计划

## 根据紧前关系表绘制弧上活动网络

**弧上活动（AOA）网络** — 一种有向图，其中弧代表项目活动，节点代表事件（一个或多个活动的开始或结束），虚线表示持续时间为0的虚弧，用于展示不存在实际活动的逻辑紧前关系。

绘制AOA网络时，先从单个起始节点开始，根据紧前关系表为每个活动添加弧，使用虚活动处理两个活动共享部分而非全部紧前活动的情况，最终确保网络只有一个终止节点。

**例题:** 为以下紧前关系表绘制AOA网络：活动A无紧前活动，活动B无紧前活动，活动C的紧前活动是A，活动D的紧前活动是A和B。

1. 1. 将起始事件标记为节点1，添加弧A（节点1→节点2）和弧B（节点1→节点3），二者均无紧前活动。
2. 2. 活动C仅在A完成后开始，因此添加弧C从节点2指向节点4（该活动的终止事件）。
3. 3. 活动D需要A和B都完成才能开始，因此添加一条持续时间为0的虚线虚弧从节点2指向节点3，表示A是D的紧前活动，再添加弧D从节点3指向节点4（最终终止事件）。

> **考试提示:** 虚活动必须画为虚线并标注持续时间0：如果省略该格式会丢失卷面呈现分数。

*计算器:* allowed

## 从AOA网络推导紧前关系表

要从AOA网络构建紧前关系表，先列出所有非虚活动，再回溯每个活动的所有直接紧前活动，考虑虚活动带来的逻辑关联，但不要把虚活动本身列为活动。

**例题:** 为上一节绘制的AOA网络生成紧前关系表。

1. 1. 列出所有实际活动：A、B、C、D。
2. 2. 活动A从节点1出发，没有入弧，因此它没有直接紧前活动。
3. 3. 活动B从节点1出发，没有入弧，因此它没有直接紧前活动。
4. 4. 活动C从节点2出发，节点2仅接收弧A，因此它的唯一紧前活动是A。
5. 5. 活动D从节点3出发，节点3接收弧B和来自节点2的虚弧（由A提供），因此它的紧前活动是A和B。
6. 6. 将所有活动及其直接紧前活动整理成表格，得到最终的紧前关系表。

> **考试提示:** 永远不要在紧前关系表中包含虚活动，考试仅考核实际项目活动。

*计算器:* allowed

## 关键路径算法：最早与最晚事件时间

**关键路径** — 项目中最长的活动序列，长度等于项目的最小可能总工期。关键路径上任何活动的延误都会导致整个项目延误。

首先完成正向推进计算最早事件时间（$e_i$）：起始节点取$e_1=0$，对每个节点，$e_i$等于所有入弧对应的$e_{prev} + t_{prev,i}$的最大值。接下来完成反向推进计算最晚事件时间（$l_j$）：终止节点取$l_{final} = e_{final}$，对每个节点，$l_j$等于所有出弧对应的$l_{next} - t_{j,next}$的最小值。总时差通过以下公式计算：

$$F(i,j) = l_j - e_i - t_{i,j}$$

**例题:** 沿用之前的网络，活动持续时间为：A=2，B=3，C=4，D=5。计算事件时间、总时差并识别关键路径。

1. 1. 正向推进：$e_1 = 0$，$e_2 = 0+2 = 2$，$e_3 = max(0+3, 2+0) = 3$，$e_4 = max(2+4, 3+5) = 8$。项目总工期为8单位。
2. 2. 反向推进：$l_4 = 8$，$l_3 = 8-5 = 3$，$l_2 = min(8-4, 3-0) = 3$，$l_1 = min(3-2, 3-3) = 0$。
3. 3. 计算时差：A: $3 - 0 - 2 = 1$，B: $3 - 0 - 3 = 0$，C: $8 - 2 - 4 = 2$，D: $8 - 3 -5 = 0$。
4. 4. 关键活动为B和D，因此关键路径是1→3→4，总工期为8。

> **考试提示:** 正向和反向推进的所有计算步骤都要写出来：即使最终关键路径结果错误，你也能拿到步骤分。

*计算器:* allowed

## 总时差、甘特图与基础进度安排

**甘特（瀑布）图** — 一种条形图，每个条形代表一个活动，按时间轴绘制。条形从活动的最早开始时间延伸到最晚结束时间，其中阴影部分代表从最早开始时间算起的活动持续时间，未阴影部分的长度等于总时差。

进行基础进度安排时，优先分配关键活动给工人以避免项目延误，再利用非关键活动的总时差填补工人日程的空白，同时遵守所有紧前规则。

**例题:** 沿用之前的活动数据，安排2名工人完成项目，确保总工期为最小的8单位。

1. 1. 计算每个活动的时间参数：A（最早开始=0，最早结束=2，最晚开始=1，最晚结束=3），B（最早开始=0，最早结束=3，最晚开始=0，最晚结束=3），C（最早开始=2，最早结束=6，最晚开始=4，最晚结束=8），D（最早开始=3，最早结束=8，最晚开始=3，最晚结束=8）。
2. 2. 优先分配关键活动：工人1在0-3时段完成B，随后在3-8时段完成D。
3. 3. 用非关键活动填补空白：工人2在0-2时段完成A，随后在2-6时段完成C。
4. 4. 验证所有紧前规则都被遵守，项目总工期保持为8单位。

> **考试提示:** 绘制甘特图时要清晰标注坐标轴，将活动持续时间部分做阴影处理，和可用总时差区分开。

*计算器:* allowed

## 常见错误

- **错误做法:** 使用节点上活动网络而非弧上活动网络
  - 原因: Edexcel D1仅考核弧上活动网络，使用节点上活动作答本题得0分
  - 正确做法: 严格按照Edexcel考纲要求，用弧代表活动，节点代表事件
- **错误做法:** 重叠紧前规则下忘记添加虚活动
  - 原因: 遗漏虚活动会破坏逻辑紧前关系，导致事件时间和时差计算全部错误
  - 正确做法: 添加持续时间为0的虚线虚弧，展示事件之间必需的逻辑关联
- **错误做法:** 先做反向推进再做正向推进
  - 原因: 终止节点的最晚事件时间等于它的最早事件时间，而该值只有在正向推进完成后才能得到
  - 正确做法: 先完成全部正向推进得到项目总工期，再进行反向推进
- **错误做法:** 在紧前关系表或时差计算中包含虚活动
  - 原因: 虚活动只是持续时间为0的逻辑关联，不是实际项目活动
  - 正确做法: 仅将非虚活动纳入表格、计算和甘特图中
- **错误做法:** 先安排非关键活动再安排关键活动
  - 原因: 即使非关键活动提前完成，关键活动的延误也会延长项目总工期
  - 正确做法: 先把所有关键活动分配给工人，再利用非关键活动的时差填补日程空白

## 速查表

| 概念 | 规则 / 公式 | 关键提示 |
| --- | --- | --- |
| AOA网络 | 弧=活动，节点=事件 | 虚活动=虚线，持续时间0，用于表示紧前逻辑 |
| 正向推进 | $e_i = max(e_{prev} + t_{prev,i})$ | 从第一个节点开始，$e_1 = 0$ |
| 反向推进 | $l_j = min(l_{next} - t_{j,next})$ | 从最后一个节点开始，$l_{final} = e_{final}$ |
| 总时差 | $F(i,j) = l_j - e_i - t_{i,j}$ | 关键活动的$F=0$ |
| 甘特图 | 条形从最早开始延伸到最晚结束，阴影部分为活动持续时间 | 条形未阴影部分的长度等于总时差 |
| 进度安排 | 优先分配关键活动 | 利用非关键活动的总时差填补日程空白 |

## 下一步

你现在已经掌握了Edexcel 国际A-Level D1要求的全部关键路径分析内容。该知识点在每一套D1试卷中通常以8-12分的大题形式出现，因此请完成计时的历年真题练习以提升速度和准确率，尤其要练习绘制标注清晰的AOA网络。接下来你可以复习D1其他核心网络知识点，包括中国邮路问题和线性规划，完成D1的全部备考。你还需要练习紧前关系表和网络的互相转换，这是关键路径考试大题最常见的开篇设问。

---

来自 [OwlsPrep](https://www.owlsprep.com) —— A-Level / IB / AP / IGCSE 免费学习指南，依据官方考纲编写。原页面：https://www.owlsprep.com/zh/study/edexcel-ial-math-d1-critical-path-analysis/
