生活实例:装修房子中的活动安排
假设你要装修一套房子,主要流程如下:
- 拆旧(活动 A,3 天) → 拆旧完成(事件 X)
- 水电改造(活动 B,4 天) → 水电完成(事件 Y)
- 拆旧完成(事件 X) + 水电完成(事件 Y) → 开始砌墙(事件 Z)
- 砌墙(活动 C,5 天) → 砌墙完成(事件 W)
- 铺地板(活动 D,3 天) → 装修结束(终点事件)
活动的最早开始时间(Earliest Start Time, ES)
- 活动 A(拆旧):无前置任务,直接开始 → ES=0 天
- 活动 B(水电改造):必须等拆旧完成(事件 X 的最早时间 = 3 天) → ES=3 天
- 活动 C(砌墙):需等拆旧完成(事件 X=3 天)和水电完成(事件 Y=3+4=7 天) → ES=max (3,7)=7 天
- 活动 D(铺地板):必须等砌墙完成(事件 W=7+5=12 天) → ES=12 天
数学化解释
- ES 的定义:活动必须在所有前驱事件全部完成后才能开始的最早时间。
- 若前驱事件有多个,取最大的那个事件完成时间(因为必须等待最慢的那个)。
- ES 的计算方法**:**ES = max {前驱事件的最早发生时间(TE)}
总结
-
ES 的本质:活动的 “起跑线”,由所有前置任务的最长耗时路径决定。
-
ES 的意义:确保活动不会早于所有前置任务完成的时间开始。
-
关键活动:ES=LS,无缓冲时间,一旦延迟直接影响总工期。
活动的最迟开始时间(LS)
继续用之前的装修例子,假设总工期必须严格控制在 15 天内,现在计算每个活动的最迟开始时间(LS)。
-
活动 D(铺地板):必须在总工期(15 天)前完成 → LS = 15 天 - 3 天 = 12 天(即第 12 天必须开始铺地板)。
-
活动 C(砌墙):必须在铺地板的 LS(12 天)前完成 → LS = 12 天 - 5 天 = 7 天(即第 7 天必须开始砌墙)。
-
活动 B(水电改造):必须在砌墙的 LS(7 天)前完成 → LS = 7 天 - 4 天 = 3 天(即第 3 天必须开始水电改造)。
-
活动 A(拆旧):必须在水电改造的 LS(3 天)前完成 → LS = 3 天 - 3 天 = 0 天(即第 0 天必须开始拆旧)。
数学化解释
- LS 的定义:活动在不影响总工期的前提下,最晚可以开始的时间。
- 若后续活动有多个,取最小的那个 LS 值(因为必须保证所有后续活动都能按时开始)。
- LS 的计算方法**:**LS = 后续事件的最迟发生时间(TL) - 当前活动的持续时间
- TL 的计算:从终点事件倒推,取所有后续活动 LS 的最小值。
对比关键活动与非关键活动
- 关键活动(如活动 A/B/C/D):ES = LS → 松弛时间 = 0 天 → 必须严格按时开始。
- 非关键活动(假设存在):LS > ES → 松弛时间 = LS - ES → 有缓冲空间。
总结
-
LS 的本质:活动的 “最后通牒时间”,超过这个时间开始会导致总工期延误。
-
LS 的意义:帮助识别哪些活动可以适当延迟(非关键活动),哪些必须严格按时(关键活动)。
-
计算逻辑:从终点倒推,确保每个活动的 LS 不影响后续活动的 LS。