关键路径 例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键路径例题
假设我们需要完成以下任务,每个任务的所需时间如下:
任务A:3天
任务B:2天
任务C:6天
任务D:4天
任务E:5天
任务F:2天
任务之间的依赖关系如下:
A -> B
A -> C
B -> D
C -> D
D -> E
D -> F
E -> F
我们需要确定完成整个项目需要的最短时间,以及关键路径是哪些。
首先,我们需要确定每个任务的最早开始时间(ES)和最晚
开始时间(LS)。
我们可以使用以下方法来计算:
1. 首先,计算每个任务的最早开始时间(ES):
- ES(A) = 0,因为任务A没有任何前置任务。
- ES(B) = ES(A) + 时间(A) = 0 + 3 = 3,任务B的前置任务是A。
- ES(C) = ES(A) + 时间(A) = 0 + 3 = 3,任务C的前置任务是A。
- ES(D) = max(ES(B), ES(C)) + 时间(B) = max(3, 3) + 2 = 5,任
务D的前置任务是B和C。
- ES(E) = ES(D) + 时间(D) = 5 + 4 = 9,任务E的前置任务是D。
- ES(F) = ES(D) + 时间(D) = 5 + 4 = 9,任务F的前置任务是D。
2. 接下来,计算每个任务的最晚开始时间(LS):
- LS(F) = ES(F) = 9,因为任务F没有后续任务。
- LS(E) = LS(F) - 时间(D) = 9 - 4 = 5,任务E的后续任务是F。
- LS(D) = min(LS(E), LS(F)) - 时间(D) = min(5, 9) - 4 = 5,任务
D的后续任务是E和F。
- LS(B) = LS(D) - 时间(B) = 5 - 2 = 3,任务B的后续任务是D。
- LS(C) = LS(D) - 时间(C) = 5 - 6 = -1,这是不可能的,因为任
务C必须在任务D开始之前完成。
- LS(A) = min(LS(B), LS(C)) - 时间(A) = min(3, -1) - 3 = -4,这
也是不可能的,因为任务A必须在任务B和任务C开始之前
完成。
现在,我们可以计算每个任务的总时长(总时长等于最晚开始时间减去最早开始时间加上任务所需时间):
- 总时长(A) = LS(A) - ES(A) + 时间(A) = -4 - 0 + 3 = -1
- 总时长(B) = LS(B) - ES(B) + 时间(B) = 3 - 3 + 2 = 2
- 总时长(C) = LS(C) - ES(C) + 时间(C) = -1 - 3 + 6 = 2
- 总时长(D) = LS(D) - ES(D) + 时间(D) = 5 - 5 + 4 = 4
- 总时长(E) = LS(E) - ES(E) + 时间(E) = 5 - 9 + 5 = 1
- 总时长(F) = LS(F) - ES(F) + 时间(F) = 9 - 9 + 2 = 2
完成整个项目所需的最短时间等于关键路径上的任务的总时长之和,即2 + 4 + 1 + 2 = 9天。
关键路径是所有总时长不为0的任务,即B -> D -> E -> F。