关键路径 :
从源点
到汇点
的所有路径中,具有最大路径长度的路径
称为关键路径
关键路径代表 : 1) 图中最长路径; 2) 完成整个工期的最短
时间
关键路径上的活动称为关键活动
针对AOE网:
源点
,汇点
,AOE网的边的权值表示活动持续的时间
活动是边,事件是点 ! ! !
求关键路径的算法步骤
- 根据图G求出其
拓扑排序序列a
和逆拓扑排序序列b
(注:逆排序序列
按拓扑排序算法
,改出度为0
的先输出
即可) - (1) 根据
拓扑排序序列a
求事件
的最早发生时间
(Ve
记录)
初始化:从源点
开始,Ve(源点) = 0
求事件K
的最早发生时间有公式:Ve(K) = max { Ve{Ji} + <Ji,K>的权值 }
;其中J
是K
的前驱(多前驱
),都算出来,选Max
(2) 根据逆拓扑排序序列b
求事件
的最迟发生时间
(Vl
记录)
初始化:从汇点
开始,Vl(汇点) = Ve(汇点)
求事件K
的最迟发生时间有公式:Vl(K) = min { Vl{Mi} + <Mi,K>的权值 }
;其中M
是K
的后继(多后继
),都算出来,选Min - 根据
(2)
中结果求每个活动
的最早发生时间和最迟发生时间,有如下关系:
活动的最早发生时间 =引起该活动的事件
的最早发生时间
活动的最迟发生时间 = (该活动结束点事件
的最迟发生时间) - (该活动的持续时间) - 找出最早发生时间和最迟发生时间
相同
的活动
,即为关键活动
由关键活动
所连成的路径即为关键路径
.
关键字:
- 拓扑排序序列a&逆拓扑排序序列b
- 事件的最早发生时间记为
Ve
事件的最迟发生时间记为Vl
事件
即顶点 - 活动的最早发生时间
e
活动的最迟发生时间l
活动
即边 -
引起该活动的事件 --- 该活动以此事件为起点
该活动结束点事件
关键路径实现代码:
网友评论