关键路径+松弛时间

1. 什么是关键路径?

官方定义 :在项目网络图中,从起点到终点的最长路径,它决定了项目的最短总工期。关键路径上的任何一个活动延误,都会直接导致整个项目延期。

通俗类比:装修一套房子,有很多并行的工作:

  • 拆墙→水电→瓦工→木工→油漆(这是一条主线)
  • 同时可以做:定制家具、买家电、做窗帘

关键路径就是那条最长、最不能耽误的主线。哪怕定制家具晚了 10 天,只要主线没耽误,房子还是能按时入住;但如果瓦工晚了 10 天,整个装修工期就一定会延长 10 天。

2. 什么是松弛时间(浮动时间)?

官方定义 :在不影响整个项目总工期的前提下,一个活动可以延误的最大时间

通俗类比:还是装修的例子:

  • 定制家具需要 30 天,而主线从水电到油漆需要 45 天。那么定制家具就有15 天的松弛时间------ 它可以晚 15 天开始,或者中间耽误 15 天,都不会影响总工期。
  • 而瓦工没有任何松弛时间,它晚 1 天,整个项目就晚 1 天。

核心结论

  • 关键路径上的所有活动,松弛时间 = 0
  • 非关键路径上的活动,松弛时间 > 0

二、两个重要的松弛时间(考试必区分)

很多人搞不清这两个,我用表格一次性讲清楚:

表格

类型 定义 计算公式 核心含义 影响范围
总松弛时间 不影响整个项目总工期的前提下,活动可延误的最大时间 LS-ES 或 LF-EF 这个活动最多能拖多久,才会让整个项目延期 影响整个项目
自由松弛时间 不影响紧后活动最早开始时间的前提下,活动可延误的最大时间 紧后活动 ES - 本活动 EF 这个活动最多能拖多久,才会影响到下一个活动 只影响紧后活动

举个例子

  • 活动 A:买水泥,最早完成时间是第 3 天
  • 紧后活动 B:瓦工进场,最早开始时间是第 5 天

那么活动 A 的自由松弛时间 = 5-3=2 天。也就是说,买水泥可以晚 2 天完成(第 5 天完成),瓦工还是能按时进场。如果晚了 3 天(第 6 天完成),瓦工就只能第 6 天进场了。

三、手把手教你计算关键路径和松弛时间(考试必考步骤)

我们用一个软件项目的真实例子来计算,所有步骤都和考试完全一致。

项目背景:开发一个简单的登录功能

表格

活动 活动名称 持续时间(天) 紧前活动
A 需求分析 3
B 数据库设计 2 A
C 前端页面开发 4 A
D 后端接口开发 5 B
E 前后端联调 2 C、D
F 测试上线 1 E

计算步骤(共 4 步)

第一步:绘制项目网络图(节点图)

我们用节点表示活动,箭线表示依赖关系:

plaintext

复制代码
A(3) → B(2) → D(5) → E(2) → F(1)
       ↘
        C(4) ↗
第二步:正推法(从左到右)计算最早开始 (ES) 和最早完成 (EF)
  • 规则:最早开始时间 = 所有紧前活动最早完成时间的最大值
  • 公式:EF = ES + 持续时间

计算过程:

  • A:ES=0,EF=0+3=3
  • B:ES=3(A 的 EF),EF=3+2=5
  • C:ES=3(A 的 EF),EF=3+4=7
  • D:ES=5(B 的 EF),EF=5+5=10
  • E:ES=max (7,10)=10(C 和 D 的 EF 最大值),EF=10+2=12
  • F:ES=12(E 的 EF),EF=12+1=13

项目最短总工期 = 13 天

第三步:逆推法(从右到左)计算最晚完成 (LF) 和最晚开始 (LS)
  • 规则:最晚完成时间 = 所有紧后活动最晚开始时间的最小值
  • 公式:LS = LF - 持续时间

计算过程:

  • F:LF=13(总工期),LS=13-1=12
  • E:LF=12(F 的 LS),LS=12-2=10
  • D:LF=10(E 的 LS),LS=10-5=5
  • C:LF=10(E 的 LS),LS=10-4=6
  • B:LF=5(D 的 LS),LS=5-2=3
  • A:LF=min (3,3)=3(B 和 C 的 LS 最小值),LS=3-3=0
第四步:计算总松弛时间,找出关键路径
  • 公式:总松弛时间 = LS - ES = LF - EF

计算结果:

  • A:0-0=0
  • B:3-3=0
  • C:6-3=3
  • D:5-5=0
  • E:10-10=0
  • F:12-12=0

关键路径 :总松弛时间为 0 的活动组成的路径 → A→B→D→E→F非关键活动:C,总松弛时间 = 3 天

四、关键路径和松弛时间的核心特点(考试高频考点)

关键路径的特点

  1. 决定项目总工期:关键路径的长度就是项目的最短总工期
  2. 没有松弛时间:关键路径上的任何活动延误,都会导致总工期延误
  3. 可能有多条:一个项目可以有 2 条或更多条关键路径,它们的长度相同
  4. 会动态变化:当某个非关键活动的延误超过了它的松弛时间,它就会变成关键活动,关键路径也会随之改变

松弛时间的特点

  1. 总松弛时间是整条路径共享的:如果一条非关键路径上有多个活动,它们共享同一个总松弛时间。比如路径 A→C→E 的总松弛时间是 3 天,如果 C 用了 2 天,那么 E 就只剩下 1 天的松弛时间了。
  2. 自由松弛时间是活动独有的:自由松弛时间用完了,才会影响到紧后活动,进而影响总松弛时间。
  3. 松弛时间为负:如果项目要求的工期比关键路径的长度短,就会出现负的松弛时间,这意味着项目需要赶工。

五、实际应用中的重要技巧

  1. 缩短项目工期的唯一方法:压缩关键路径上活动的持续时间。压缩非关键路径的活动,对总工期没有任何影响。
  2. 风险管控:多条关键路径的项目风险更高,因为任何一条关键路径延误都会导致项目延期。
  3. 资源优化:可以把非关键路径上的资源暂时调到关键路径上,来缩短总工期。比如把前端开发的一部分人调到后端开发,因为后端在关键路径上。
  4. 进度监控:重点监控关键路径上的活动,只要关键路径按计划进行,项目就不会延期。

试题分析

  • 关键路径 :从项目起点到终点的最长路径,决定了项目的最短总工期。关键路径上的里程碑(节点)和活动(边)的任何延迟都会直接导致总工期延长。
  • 最早开始时间(ES):某个里程碑最早可以开始的时间,等于所有指向该里程碑的活动中,最晚完成的那个活动的结束时间(取最大值)。
  • 最晚开始时间(LS):某个里程碑在不影响总工期的前提下,最晚可以开始的时间,等于所有从该里程碑出发的活动中,最早需要开始的那个活动的开始时间(取最小值)。
  • 活动总时差 :某个活动在不影响总工期的前提下,最多可以延迟开始的时间,计算公式为:活动总时差 = 活动最晚开始时间 - 活动最早开始时间

二、步骤 1:计算所有里程碑的最早开始时间(ES)

从起点 A(START)开始,顺推计算,取所有前驱路径的最大值

  • A(起点):ES = 0
  • B:仅由 A→B(3 天)到达,ES = 0+3 = 3
  • C:仅由 A→C(4 天)到达,ES = 0+4 = 4
  • D:仅由 A→D(5 天)到达,ES = 0+5 = 5
  • E:仅由 B→E(5 天)到达,ES = 3+5 = 8
  • F:由 B→F(6 天,3+6=9)和 C→F(3 天,4+3=7)到达,取最大值 9,ES = 9
  • G:仅由 D→G(3 天)到达,ES = 5+3 = 8
  • H:仅由 E→H(2 天)到达,ES = 8+2 = 10
  • I:仅由 G→I(2 天)到达,ES = 8+2 = 10
  • J:由 H→J(2 天,10+2=12)、F→J(5 天,9+5=14)和 I→J(4 天,10+4=14)到达,取最大值 14,ES = 14
  • K:由 J→K(2 天,14+2=16)和 I→K(4 天,10+4=14)到达,取最大值 16,ES = 16
  • L(终点):由 J→L(8 天,14+8=22)和 K→L(3 天,16+3=19)到达,取最大值 22,ES = 22

结论:项目总工期为 22 天。

三、步骤 2:计算所有里程碑的最晚开始时间(LS)

从终点 L(FINISH)开始,逆推计算,取所有后继路径的最小值

  • L(终点):LS = ES = 22(终点不能延迟)
  • K:仅指向 K→L(3 天),LS = 22-3 = 19
  • J:指向 J→L(8 天,22-8=14)和 J→K(2 天,19-2=17),取最小值 14,LS = 14
  • I:指向 I→J(4 天,14-4=10)和 I→K(4 天,19-4=15),取最小值 10,LS = 10
  • H:仅指向 H→J(2 天),LS = 14-2 = 12
  • G:仅指向 G→I(2 天),LS = 10-2 = 8
  • F:仅指向 F→J(5 天),LS = 14-5 = 9
  • E:仅指向 E→H(2 天),LS = 12-2 = 10
  • D:仅指向 D→G(3 天),LS = 8-3 = 5
  • C:仅指向 C→F(3 天),LS = 9-3 = 6
  • B:指向 B→E(5 天,10-5=5)和 B→F(6 天,9-6=3),取最小值 3,LS = 3
  • A(起点):指向 A→B(3 天,3-3=0)、A→C(4 天,6-4=2)和 A→D(5 天,5-5=0),取最小值 0,LS = 0

四、步骤 3:确定关键路径与非关键里程碑

关键路径上的里程碑满足:最早开始时间 = 最晚开始时间(ES=LS)

对比各节点的 ES 和 LS:

表格

里程碑 ES LS 是否在关键路径上
A 0 0
B 3 3
C 4 6
D 5 5
E 8 10
F 9 9
G 8 8
H 10 12
I 10 10
J 14 14
K 16 19
L 22 22

关键路径(共 2 条,总工期均为 22 天)

  1. A → B → F → J → L(3+6+5+8=22 天)
  2. A → D → G → I → J → L(5+3+2+4+8=22 天)

不在关键路径上的里程碑:C、E、H、K(第 (15) 题答案为这四个中的一个,通常考试选项会设置为 C)。

五、步骤 4:计算活动 BE 的总时差(第 (16) 题)

活动 BE 是从里程碑 B 到 E 的活动,持续时间 5 天。

  • 活动最早开始时间 = 前驱里程碑 B 的 ES = 3 天
  • 活动最晚开始时间 = 后继里程碑 E 的 LS - 活动持续时间 = 10-5 = 5 天
  • 活动总时差 = 最晚开始时间 - 最早开始时间 = 5-3 = 2 天

验证:如果 BE 晚 2 天开始(第 5 天开始),则 E 在第 10 天结束,E→H 在第 12 天结束,H→J 在第 14 天结束,刚好赶上 J 的最早开始时间(14 天),总工期仍为 22 天。如果晚 3 天开始,J 的最早开始时间将推迟到 15 天,总工期变为 23 天,影响项目交付。

六、最终答案

(15) C(或 E、H、K,根据选项选择) (16) 2

相关推荐
liulilittle1 小时前
TCP BBR调优及监控
linux·网络·网络协议·tcp/ip·win
金玉满堂@bj1 小时前
Inspect.exe:Windows 桌面自动化的定位利器与 Pywinauto 实战
运维·windows·自动化
土星云SaturnCloud1 小时前
边缘计算赋能工业智能化:重大危险源监测+产线控制+视觉分析一体化解决方案
服务器·人工智能·ai·边缘计算
handler011 小时前
TCP(传输控制协议)核心机制与底层原理
linux·网络·c++·笔记·网络协议·tcp/ip·操作系统
运维全栈笔记1 小时前
Harbor生产级部署实战:PostgreSQL+Redis+MinIO全解耦架构详解
linux·运维·服务器·笔记·架构·kubernetes·k8s
W23035765731 小时前
Linux C++ 基于 timerfd + epoll 实现高性能定时器队列(完整源码 + 超详细解析)
linux·开发语言·c++·线程池
wanhengidc1 小时前
云手机中虚拟技术的功能
运维·服务器·网络·安全·web安全·智能手机
皓月盈江1 小时前
Linux Ubuntu系统使用Docker搭建vulhub靶场环境
linux·ubuntu·docker·tomcat·vulhub·漏洞靶场
念恒123062 小时前
Docker基础--namespace空间隔离实战(包含部分指令)
linux·运维·服务器