# 关键路径法：软考案例分析里最该拿稳的那道计算题

从网络图怎么读、顺推取大与逆推取小两遍计算，到总时差与自由时差的区别，讲透软考案例计算题里出场率最高的关键路径法

> 案例分析 · 备考策略 · 题型分析 · 约 8 分钟 · 10 月 04 日

## 本篇要点

1. 关键路径法（CPM）是软考中项、高项案例计算题里出场率最高的方法，上午选择题也年年考。
2. 网络图只表达一件事：每个活动的紧前活动都有谁；卷面通常给一张“活动-紧前-工期”的表。
3. ES、EF、LS、LF 四个参数是时刻不是天数，ES 直接等于紧前 EF，不加 1。
4. 顺推取大：ES 取所有紧前 EF 中的最大值，终点活动的 EF 就是项目最短总工期。
5. 逆推取小：终点活动 LF 等于总工期，有多个紧后时 LF 取所有紧后 LS 中的最小值。
6. 总时差 = LS − ES = LF − EF，衡量拖多久不影响总工期；自由时差 = min(紧后 ES) − EF，衡量拖多久不影响紧后活动最早开始。
7. 自由时差永远小于或等于总时差，因为它的约束更紧；C 的总时差 1、自由时差 0，E 的两者都是 1，就是这个差别的实例。
8. 总时差为 0 的活动串起来就是关键路径，其长度等于总工期。
9. 计算题是主观卷里少有的有唯一答案、按步骤给分的部分，题型稳定且能自我校验，值得优先练到不丢分。

---

上一篇拆的是下午那张主观卷——它踩点给分，一道 25 分的大题由若干小问拼成，写到几个得分点就拿几分。在项目管理类科目（中级系统集成项目管理工程师，简称中项；高级信息系统项目管理师，简称高项）的案例卷里，有几类小问年年出现、答案唯一、可以练到基本不丢分。其中最典型的一类就是**计算题**。高项案例分析一共三道大题，其中一道是计算题，关键路径法和挣值管理是这类题的主力考点，相关分值常在 15 分上下 [4]。

计算题里出场率最高的一种叫**关键路径法**（Critical Path Method，缩写 CPM）。它在上午的选择题里也几乎年年出现 [2]。这篇把它从读图讲到结论，顺带说清它为什么是你最该先练熟的题型。

## 网络图：把“谁必须等谁”画出来

一个项目可以拆成若干**活动**，也就是一件件要花时间做完的事。活动之间有先后关系：需求没做完，设计就开不了工——需求是设计的**紧前活动**，设计是需求的**紧后活动**。

把这些活动和它们之间的先后关系连成一张图，就是**网络图**。软考卷面上很少直接给你画好的图，更常见的是给一张表：

| 活动 | 紧前活动 | 工期（天） |
| --- | --- | --- |
| A | 无 | 3 |
| B | A | 4 |
| C | A | 2 |
| D | B | 3 |
| E | C | 4 |
| F | D、E | 2 |

读表只要盯一件事：**每个活动的紧前都有谁**。这张表就是整张网络图，后面所有计算都从它出发。

## 四个时间参数，全是“时刻”不是“第几天”

每个活动会算出一组四个数字：

- 最早开始时间 $ES$：等齐所有紧前活动之后，最早能在哪个时刻开工。
- 最早完成时间 $EF = ES + \text{工期}$。
- 最晚完成时间 $LF$：为了不拖累项目总工期，最迟必须在哪个时刻做完。
- 最晚开始时间 $LS = LF - \text{工期}$。

这四个数都是**时刻**，不是“第几天”。A 从 0 时刻开始、到 3 时刻完成，下一个活动就接着从 3 时刻开始。日常口语会说“第 4 天一早”，公式里写 3。这点后面还会专门说，先记住它是时刻。

## 顺推取大：从前往后走一遍

第一遍叫**顺推**，从起点往终点走，算 $ES$ 和 $EF$。规则两条：起点活动的 $ES$ 记 0；一个活动有多个紧前时，$ES$ 取所有紧前 $EF$ 里**最大**的那个。

套到例子上：

- A 没有紧前：$ES = 0$，$EF = 0 + 3 = 3$。
- B 的紧前是 A：$ES = 3$，$EF = 3 + 4 = 7$。
- C 的紧前是 A：$ES = 3$，$EF = 3 + 2 = 5$。
- D 的紧前是 B：$ES = 7$，$EF = 7 + 3 = 10$。
- E 的紧前是 C：$ES = 5$，$EF = 5 + 4 = 9$。
- F 的紧前是 D 和 E：取 $EF$ 里更大的 10，$ES = 10$，$EF = 10 + 2 = 12$。

终点 F 的最早完成时间 12，就是项目的**最短总工期**：12 天。

为什么取最大？因为紧前活动要**全部**做完当前活动才能开始，起算点只能是最晚收工的那个紧前。

## 逆推取小：从后往前再走一遍

第二遍叫**逆推**，从终点往起点走，算 $LF$ 和 $LS$。起点的规则换了：终点活动的 $LF$ 直接等于它的 $EF$，也就是总工期；一个活动有多个紧后时，$LF$ 取所有紧后 $LS$ 里**最小**的那个。

- F 是终点：$LF = 12$，$LS = 12 - 2 = 10$。
- D 的紧后只有 F：$LF = 10$，$LS = 10 - 3 = 7$。
- E 的紧后只有 F：$LF = 10$，$LS = 10 - 4 = 6$。
- B 的紧后只有 D：$LF = 7$，$LS = 7 - 4 = 3$。
- C 的紧后只有 E：$LF = 6$，$LS = 6 - 2 = 4$。
- A 的紧后有 B 和 C：取 $LS$ 里更小的 3，$LF = 3$，$LS = 3 - 3 = 0$。

取最小的道理和顺推镜像对称：一个活动后面挂着好几个紧后，为了谁都不耽误，它必须在**最早要开工的那个紧后**之前做完——所以看的是最小的那个 $LS$。

## 总时差与自由时差：两种“还能拖多久”

两遍算完，六个时间参数就齐了。这时算两个时差：

$$\text{总时差 } TF = LS - ES = LF - EF$$

$$\text{自由时差 } FF = \min(\text{所有紧后活动的 } ES) - \text{本活动的 } EF$$

两个名字很像，差别在“**不影响谁**”：

- 总时差问的是：拖多久才不影响**项目总工期**。
- 自由时差问的是：拖多久才不影响**紧后活动的最早开始**。

把所有数字填成一张表：

| 活动 | 工期 | ES | EF | LS | LF | 总时差 | 自由时差 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| A | 3 | 0 | 3 | 0 | 3 | 0 | 0 |
| B | 4 | 3 | 7 | 3 | 7 | 0 | 0 |
| C | 2 | 3 | 5 | 4 | 6 | 1 | 0 |
| D | 3 | 7 | 10 | 7 | 10 | 0 | 0 |
| E | 4 | 5 | 9 | 6 | 10 | 1 | 1 |
| F | 2 | 10 | 12 | 10 | 12 | 0 | 0 |

C 和 E 的对比最能说明问题。两个活动的总时差都是 1 天：各拖 1 天，都不会让总工期超过 12 天。但 C 的自由时差是 **0**——C 只要拖上 1 天，紧后活动 E 的最早开始就被从第 5 天顶到第 6 天，E 的完成时间跟着从 9 变成 10。只不过 D 也是在 10 收工，F 要等的是 D 和 E 里更晚的那个，所以总工期仍然不动。E 的自由时差是 1，道理就在这：E 拖 1 天，$EF$ 从 9 变 10，还是没超过 D 的 10，F 依旧在 10 开工。

这里还藏着一条永远成立的规律：**自由时差 ≤ 总时差**。因为自由时差同时受“紧后活动”和“总工期”两重约束，约束越多，能拖的时间只会越短。E 是 1 对 1，C 是 0 对 1，都符合。

## 关键路径：总时差为 0 的那条链

总时差为 0 的活动串起来，就是**关键路径**：A → B → D → F，长度 $3 + 4 + 3 + 2 = 12$，正好等于总工期。

关键路径可以一句话说清：它是从起点到终点**最长**的那条链，而项目不可能比最长的链更早完工，所以这条链的长度就是总工期，链上任何活动拖一天，总工期就跟着多一天。你也能靠枚举所有路径来核对（本例另一条 A → C → E → F 是 $3 + 2 + 4 + 2 = 11$，短于 12），但活动一多，路径数量会爆炸，用总时差为 0 判断更稳。

## 为什么这是最该先练稳的分

**它是下午卷里少有的“有标准答案”的部分。** 上一篇说过主观题踩点给分、允许答案不完整，但计算题不同：数值和结论是客观的，对就是对。作答时通常还要求把计算过程写出来 [1]——公式一条、代入一条、结果一条、结论一条，各自都是得分点。你会算，就能一分不落地收下。

**题型高度固定。** 中项和高项案例里的进度类计算，问来问去就那几件事。2023 年下半年中项的一道案例计算题同时问了四件：关键路径与工期是什么、这张进度图叫什么、任务 A、D、F 的总时差和自由时差各是多少、任务 C 拖延 1 周对项目进度有没有影响 [5]。用的全是这一篇里的方法。

**算出来的数能自己校验。** 自由时差不会大于总时差；关键路径的长度一定等于你算出的总工期。这两条对不上，就说明中间某步错了，不用等对答案才知道。

## 最容易错的一处：时刻，不是天数

最后说一个高频失分点。$ES$ 直接等于紧前活动的 $EF$，**千万不要加 1**。

A 从 0 做到 3，B 紧接其后从 3 开始——这是“0 到 3 三个单位时间”和“3 到 7 四个单位时间”首尾相接的写法。日常你会说“A 干了三天，第四天 B 开工”，但卷面上的时间参数按时刻算，写成 3 [3]。一旦脑子里按自然天数去数，后面每个活动的 $ES$、$EF$ 都会整体偏移，连带关键路径和时差全错。

这里还有一条边界：这一整套计算成立的前提，是每个活动的工期已经估好、依赖关系已经定死。工期本身是估出来的数，所以 CPM 给出的“最短总工期”按的是当前估算；方案一变、工期一调，关键路径可能整条换掉。

## 术语表

- 关键路径法（CPM）：把项目活动按先后关系连成网络图，算出最短总工期和每个活动还能拖多久的方法。
- 网络图：用活动和活动之间的先后关系画出的图，回答“谁必须先做完”。
- 紧前活动 / 紧后活动：必须先于当前活动完成的是它的紧前，必须以它为前置的是它的紧后。
- 四个时间参数（ES、EF、LS、LF）：最早开始、最早完成、最晚开始、最晚完成，都是时刻，通过顺推和逆推两遍算出。
- 顺推取大 / 逆推取小：顺推时 ES 取紧前 EF 的最大值，逆推时 LF 取紧后 LS 的最小值。
- 总时差：在不影响项目总工期的前提下，活动最多能拖多久。
- 自由时差：在不影响紧后活动最早开始的前提下，活动最多能拖多久，永远不超过总时差。
- 关键路径：总时差为 0 的活动串成的那条链，长度就是项目最短总工期。

## 来源

1. [中项进度网络图计算题的公式与作答要求，含 ES/EF/LS/LF、总时差与自由时差的计算式，以及机考下需展示计算过程](https://www.luckeeinc.com/10/267.html)
2. [关键路径法的底层逻辑：顺推取大、逆推取小的对称性，总时差与自由时差的含义与大小关系](https://www.ruankaozhijia.com/article/guan-jian-lu-jing-fa-cpm.html)
3. [关键路径真题演算，重点澄清“时间点 vs 自然天数”，ES 等于紧前 EF、不加 1](https://jishuzhan.net/article/2056566856634961921)
4. [高项知识点分布：案例分析 3 道题，其中计算题围绕挣值管理与关键路径，约 15 分](https://www.educity.cn/rk/5413201.html)
5. [2023 年下半年中项第二批次案例计算真题及答案，含关键路径、A/D/F 时差、C 拖延一周的影响](https://www.cnitpm.com/pm1/152448frq2riz6o0.html)

---

原文：https://pangzhengboyin.com/articles/critical-path-method-cpm-for-ruankao-74d73d4c

> **庞征博引** · 想学的，慢慢都会
>
> 庞征博引是把想学的东西写成连载的 AI 学习工具。说出想学什么，它会先了解你的基础，再把主题写成一篇篇 5–10 分钟能读完的文章；边读边问，接下来学什么跟着你走。这篇就是这样写出来的。
>
> 开始你自己的连载 → https://pangzhengboyin.com
