---
title: "Critical path method (CPM) — 关键路径法 (CPM)"
source: "https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)"
wiki: "systems-analysis.info/int"
article: "Critical_path_method_(CPM)_—_关键路径法_(CPM)"
language: "zh"
categories:
  - "Category:Chinese"
  - "Category:Operations research"
  - "Category:Project management"
revision_id: 1336
wiki_created_at: 2026-09-06T22:47:09Z
wiki_modified_at: 2026-09-06T22:47:09Z
downloaded_at: 2026-09-07T22:45:31Z
---

# Critical path method (CPM) — 关键路径法 (CPM)

**关键路径法 (CPM)**（英语：*Critical Path Method*，*CPM*）是一种用于网络计划和项目管理的确定性方法，用于计算工作序列和项目可能的最短完成时间。关键路径是网络模型中持续时间最长的路径；该路径上任何活动的延迟都会推迟整个项目的结束时间<sup>[\[1\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-enwiki-1)[\[2\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-kelley1959-2)</sup>。

## 历史

CPM由詹姆斯·凯利（James Kelley，来自Remington Rand）和摩根·沃克（Morgan Walker，来自DuPont）于20世纪50年代末开发。他们于1959年发表的报告开启了该方法的工业应用；后来，作者们发表了一篇关于CPM起源的历史回顾<sup>[\[2\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-kelley1959-2)[\[3\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-origins-3)</sup>。与此同时，美国开发了概率方法PERT，CPM经常与之结合使用<sup>[\[1\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-enwiki-1)</sup>。

## 基本概念

- **活动** (activity) — 具有持续时间 **d** 并依赖于前置活动的一项工作。
- **事件/里程碑** — 没有持续时间的时间点，用于标记项目的状态。
- **关键路径** — 模型中从开始到结束总持续时间最长的一系列活动；该路径上的活动总浮动时间为零<sup>[\[1\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-enwiki-1)</sup>。
- **前置关系** 通过FS、SS、FF、SF关系以及可能的滞后时间来定义；实践中通常使用PDM / AON（活动节点法），而历史上的ADM / AOA（活动箭线法）则较少使用<sup>[\[4\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-pdm-4)[\[5\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-adm-5)[\[6\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-dependency-6)</sup>。

## 日期与浮动时间的计算

计算通过网络图的正向和反向推导完成。

**正向推导**（最早日期）：

对于起始活动：**ES = 0**（或根据所采用的时间刻度）；

对于每个活动 *j*：**ES<sub>j</sub> = max{ 所有前置活动 *i* 的 EF<sub>i</sub> }**；

**EF = ES + d**。

**反向推导**（最晚日期）：

对于结束活动：**LF** 等于项目的总工期（或最终里程碑的最早完成时间）；

对于每个活动 *j*：**LS = LF − d**；**LF<sub>j</sub> = min{ 所有后续活动 *s* 的 LS<sub>s</sub> }**<sup>[\[7\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-baker-7)[\[8\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-cmu-8)</sup>。

**浮动时间** (float/slack)：

**总浮动时间 (TF)**: **TF = LS − ES = LF − EF** — 在不影响项目整体完成时间的前提下，一项活动可以延迟的时间。

**自由浮动时间 (FF)**: **FF = min{ ES<sub>succ</sub> } − EF** — 在不影响任何后续活动最早开始时间的前提下，一项活动可以延迟的时间<sup>[\[9\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-pressbooks-9)[\[10\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-pmi-ff-10)</sup>。

## 关系与滞后时间

在PDM中，支持四种基本依赖关系类型：**FS**（完成-开始）、**SS**（开始-开始）、**FF**（完成-完成）、**SF**（开始-完成）。每种关系都可以带有滞后时间（正值或负值），例如 **FS + 2d** 指后续活动在前置活动完成后两天开始<sup>[\[6\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-dependency-6)</sup>。

## 进度压缩 (赶工与快速跟进)

项目工期的缩短可以通过以下方式实现：

- **赶工 (Crashing)** — 通过增加额外成本来有针对性地缩短关键活动的持续时间；优先选择成本“斜率”最低的活动进行压缩。

**成本斜率**（每单位压缩时间的成本）：**(C<sub>crash</sub> − C<sub>normal</sub>) / (D<sub>normal</sub> − D<sub>crash</sub>)**<sup>[\[11\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-crash-11)</sup>。

- **快速跟进 (Fast-tracking)** — 将原本顺序执行的活动改为并行执行（例如，FS → SS），这会增加返工的风险<sup>[\[1\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-enwiki-1)</sup>。

## 应用领域

CPM被用于制定建筑、能源、机械工程、IT项目和研发（R&D）领域的进度计划。该方法是项目管理和系统工程标准（如PMI、NASA）中的基础方法，并得到各种规划软件的广泛支持<sup>[\[1\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-enwiki-1)[\[12\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-pmi-12)[\[13\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-nasa-13)</sup>。

## 优点

- 清晰地识别关键路径和“瓶颈”；帮助项目经理确定关注的优先事项<sup>[\[1\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-enwiki-1)</sup>。
- 计算最早/最晚日期和浮动时间的规则简单；变更带来的影响透明可见<sup>[\[7\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-baker-7)</sup>。
- 与PDM/甘特图以及用于分析加速方案的工具兼容<sup>[\[4\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-pdm-4)</sup>。

## 局限性

- 基本的CPM模型未考虑资源限制和持续时间的随机性；为此，需要应用资源平衡和扩展方法（例如，*关键链*）<sup>[\[1\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-enwiki-1)</sup>。
- 当使用复杂的依赖关系和滞后时间时，浮动时间的解释可能变得不那么直观；建议在合同文件中对浮动时间的计算规则进行正式定义和控制<sup>[\[10\]](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_note-pmi-ff-10)</sup>。

## 与其他方法的关系

- PERT — 采用概率性的持续时间估算（三点估算，β分布近似）；而CPM使用确定性的持续时间。
- 甘特图 — 进度的日历化可视化工具，常与CPM/PERT结合使用。
- 网络计划技术 — 一组方法的总称（包括CPM、PERT、ADM/AOA、PDM/AON）。

## 参见

- PERT
- 甘特图
- 网络计划技术

## 参考文献

- Kelley, J. E.; Walker, M. R. (1959). *Critical‑Path Planning and Scheduling*. IRE‑AIEE‑ACM '59 (Eastern). *ACM Digital Library*. <a href="https://dl.acm.org/doi/10.1145/1460299.1460318" class="external autonumber" rel="nofollow">[14]</a>
- Kelley, J. E.; Walker, M. R. (1989). *Origins of CPM: A Personal History*. PM Network. *PMI*. <a href="https://www.pmi.org/learning/library/origins-cpm-personal-history-3762" class="external autonumber" rel="nofollow">[15]</a>
- PMI. *PMBOK® Guide*. <a href="https://www.pmi.org/pmbok-guide-standards/foundational/pmbok" class="external autonumber" rel="nofollow">[16]</a>
- NASA. *Systems Engineering Handbook* (SP‑2016‑6105 Rev2). <a href="https://www.nasa.gov/connect/ebooks/nasa-systems-engineering-handbook/" class="external autonumber" rel="nofollow">[17]</a>
- «Critical path method». *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Critical_path_method" class="external autonumber" rel="nofollow">[18]</a>
- «Precedence diagram method». *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Precedence_diagram_method" class="external autonumber" rel="nofollow">[19]</a>
- «Dependency (project management)». *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Dependency_%28project_management%29" class="external autonumber" rel="nofollow">[20]</a>
- «Arrow diagramming method». *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Arrow_diagramming_method" class="external autonumber" rel="nofollow">[21]</a>
- Baker, S. L. *Critical Path Method (CPM) — Analysis Steps*. University of South Carolina. <a href="https://sambaker.com/courses/J716/CPM/CPM.html" class="external autonumber" rel="nofollow">[22]</a>
- «Creating an Activity Network Diagram». *CSU Pressbooks*. <a href="https://pressbooks.ulib.csuohio.edu/project-management-navigating-the-complexity/chapter/7-4-creating-an-activity-network-diagram/" class="external autonumber" rel="nofollow">[23]</a>
- «Crashing Example». An‑Najah National University (教学示例). <a href="https://staff-old.najah.edu/sites/default/files/CrashingExample.pdf" class="external autonumber" rel="nofollow">[24]</a>

## 注释

1.  <span id="cite_note-enwiki-1">↑ <sup>[1.0](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-enwiki_1-0)</sup> <sup>[1.1](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-enwiki_1-1)</sup> <sup>[1.2](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-enwiki_1-2)</sup> <sup>[1.3](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-enwiki_1-3)</sup> <sup>[1.4](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-enwiki_1-4)</sup> <sup>[1.5](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-enwiki_1-5)</sup> <sup>[1.6](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-enwiki_1-6)</sup> “Critical path method”. *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Critical_path_method" class="external autonumber" rel="nofollow">[1]</a></span>
2.  <span id="cite_note-kelley1959-2">↑ <sup>[2.0](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-kelley1959_2-0)</sup> <sup>[2.1](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-kelley1959_2-1)</sup> Kelley, J. E., Jr.; Walker, M. R. (1959). «Critical-Path Planning and Scheduling». *IRE‑AIEE‑ACM '59 (Eastern)*. *ACM Digital Library*. <a href="https://dl.acm.org/doi/10.1145/1460299.1460318" class="external autonumber" rel="nofollow">[2]</a></span>
3.  <span id="cite_note-origins-3">[↑](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-origins_3-0) Kelley, J. E.; Walker, M. R. (1989). «Origins of CPM: A Personal History». *PM Network*. *Project Management Institute*. <a href="https://www.pmi.org/learning/library/origins-cpm-personal-history-3762" class="external autonumber" rel="nofollow">[3]</a></span>
4.  <span id="cite_note-pdm-4">↑ <sup>[4.0](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-pdm_4-0)</sup> <sup>[4.1](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-pdm_4-1)</sup> «Precedence diagram method». *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Precedence_diagram_method" class="external autonumber" rel="nofollow">[4]</a></span>
5.  <span id="cite_note-adm-5">[↑](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-adm_5-0) «Arrow diagramming method». *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Arrow_diagramming_method" class="external autonumber" rel="nofollow">[5]</a></span>
6.  <span id="cite_note-dependency-6">↑ <sup>[6.0](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-dependency_6-0)</sup> <sup>[6.1](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-dependency_6-1)</sup> «Dependency (project management)». *Wikipedia (en)*. <a href="https://en.wikipedia.org/wiki/Dependency_%28project_management%29" class="external autonumber" rel="nofollow">[6]</a></span>
7.  <span id="cite_note-baker-7">↑ <sup>[7.0](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-baker_7-0)</sup> <sup>[7.1](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-baker_7-1)</sup> Baker, S. L. «Critical Path Method (CPM) — Analysis Steps». University of South Carolina. <a href="https://sambaker.com/courses/J716/CPM/CPM.html" class="external autonumber" rel="nofollow">[7]</a></span>
8.  <span id="cite_note-cmu-8">[↑](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-cmu_8-0) «Fundamental Scheduling Procedures». *Project Management*, Carnegie Mellon University. <a href="https://www.cmu.edu/cee/projects/PMbook/10_Fundamental_Scheduling_Procedures.html" class="external autonumber" rel="nofollow">[8]</a></span>
9.  <span id="cite_note-pressbooks-9">[↑](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-pressbooks_9-0) «Creating an Activity Network Diagram». *Project Management — Navigating the Complexity*. Cleveland State University Pressbooks. <a href="https://pressbooks.ulib.csuohio.edu/project-management-navigating-the-complexity/chapter/7-4-creating-an-activity-network-diagram/" class="external autonumber" rel="nofollow">[9]</a></span>
10. <span id="cite_note-pmi-ff-10">↑ <sup>[10.0](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-pmi-ff_10-0)</sup> <sup>[10.1](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-pmi-ff_10-1)</sup> «Critical Path Method Calculations». *PMI*. <a href="https://www.pmi.org/learning/library/critical-path-method-calculations-scheduling-8040" class="external autonumber" rel="nofollow">[10]</a></span>
11. <span id="cite_note-crash-11">[↑](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-crash_11-0) «Crashing Example». An‑Najah National University (教学示例). <a href="https://staff-old.najah.edu/sites/default/files/CrashingExample.pdf" class="external autonumber" rel="nofollow">[11]</a></span>
12. <span id="cite_note-pmi-12">[↑](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-pmi_12-0) PMI. *A Guide to the Project Management Body of Knowledge (PMBOK® Guide)*. <a href="https://www.pmi.org/pmbok-guide-standards/foundational/pmbok" class="external autonumber" rel="nofollow">[12]</a></span>
13. <span id="cite_note-nasa-13">[↑](https://systems-analysis.info/int/Critical_path_method_(CPM)_%E2%80%94_%E5%85%B3%E9%94%AE%E8%B7%AF%E5%BE%84%E6%B3%95_(CPM)#cite_ref-nasa_13-0) NASA. *Systems Engineering Handbook* (NASA/SP‑2016‑6105 Rev2). <a href="https://www.nasa.gov/connect/ebooks/nasa-systems-engineering-handbook/" class="external autonumber" rel="nofollow">[13]</a></span>
