8.1.3 PERT图-01
PERT 图用网络结构表达活动之间的先后依赖。它不仅关注每个任务需要多久,更关注“哪些任务必须先完成,哪些任务才能开始”。这正是它区别于 Gantt 图的地方。
PERT 图的基本读法
| 概念 | 含义 |
|---|---|
| 活动 | 需要消耗时间完成的任务 |
| 事件/里程碑 | 活动开始或完成的状态点 |
| 前驱活动 | 当前活动开始前必须完成的活动 |
| 后继活动 | 当前活动完成后才能开始的活动 |
| 路径 | 从开始到结束的一串活动 |
| 路径长度 | 路径上所有活动持续时间之和 |
| 关键路径 | 从开始到结束持续时间最长的路径 |
项目中很多任务可以并行,但项目不能在所有必要任务完成前结束。因此项目工期不是所有活动时间的简单相加,也不是最短路径,而是由最长的必要路径决定。
为什么关键路径是最长路径
假设一个小项目有两条并行路径:
mermaid
flowchart LR
S["开始"] --> A["A 10天"]
A --> B["B 10天"]
B --> E["结束"]
S --> C["C 30天"]
C --> D["D 15天"]
D --> E上方路径长度为
这就是“完成项目的最少时间”与“最长路径”并不矛盾的原因:最少时间是从整个项目角度说的,最长路径是从所有必要路径中找出的约束。
关键路径、项目工期、关键活动
| 概念 | 关系 |
|---|---|
| 关键路径 | 从起点到终点持续时间最长的路径 |
| 项目工期 | 关键路径的长度 |
| 关键活动 | 位于关键路径上的活动 |
| 松弛时间 | 关键活动通常为 0,非关键活动可能大于 0 |
一个项目可能有多条关键路径,但这些关键路径的长度一定相等,并且都等于项目工期。只要任何一条关键路径上的活动延误,项目总工期就会延误。
松弛时间的直观理解
非关键路径比关键路径短,短出来的部分就是可调整空间。假设关键路径 45 天,另一条路径 20 天,那么短路径最多可以整体延迟 25 天而不影响项目最终完成时间。这个“可延迟而不影响总工期”的时间,就是松弛时间或总时差。
实际计算时,松弛时间不是只靠路径差直觉判断,而要通过最早开始/完成、最迟开始/完成计算。
PERT 图适合回答的问题
| 问题 | PERT 如何回答 |
|---|---|
| 项目最早什么时候能完成 | 找关键路径长度 |
| 哪些活动不能拖 | 找松弛时间为 0 的活动 |
| 某活动能延迟多久 | 算总时差/松弛时间 |
| 多个前驱时什么时候能开始 | 等所有前驱完成,取前驱最早完成最大值 |
| 多个后继时最晚何时完成 | 不能耽误任何后继,取后继最迟开始最小值 |
单代号与双代号网络图
| 类型 | 节点表示 | 箭线表示 | 常见标注 |
|---|---|---|---|
| 单代号网络图 | 活动 | 活动之间的依赖关系 | 节点中标活动编号、持续时间、最早/最迟时间、总时差 |
| 双代号网络图 | 事件或里程碑 | 活动 | 箭线上标活动和持续时间 |
软件设计师考试中两种形式都可能出现。单代号图常用“九宫格”记录活动信息;双代号图常在箭线上给活动持续时间。
例题
PERT 图中的关键路径通常是:
某项目从开始到结束有两条并行路径,路径甲为 20 天,路径乙为 45 天,则项目最短工期是:
本节小结
PERT 图的核心是依赖关系和关键路径。关键路径是最长路径,关键路径长度就是项目工期;关键活动延误会直接影响工期。后续计算最早/最迟时间和松弛时间,本质上都是为了确认关键路径和可调整空间。