关键路径 算法
关键路径
定义:关键路径是包含AOE图中所有顶点(事件)的最大路径长度,其长度代表所有活动完成所需最短时间
涉及概念:AOE图,ve,vl,ee,el
-
AOE图:
- activities on edges
- 边表示活动(具体的工程内容),边长度(权值)代表活动所花费的时间
- 顶点表示事件(事件不是工程内容,可以理解为一个状态,用以描述所有活动的完成情况)
-
ve,vl,ee,el分别代表事件最早开始时间、事件最晚开始时间、活动最早开始时间、活动最晚开始时间
注:AOE图之外还有AOV图,也即顶点表示活动,有向边仅代表活动先后顺序而没有权值,故AOV图不能用来求所有活动完成的最短时间(关键路径)
解释:至于为什么最大长度代表最短时间,主要是因为在AOE图中,当指向一个顶点的所有边所代表的活动都完成后这个事件才能发生。而所有边代表的活动的完成才是整个工程的完成
注意:AOE网是有向无环的,也即不能存在事件之间的相互依赖
计算方法:
-
按ve,vl,ee,el的次序计算
-
ve,ee从起点到终点顺着边的方向进行计算,vl,el则从终点到起点逆着边的方向进行计算
-
ve[x]=max(ve[x1]+e1,ve[x2]+e2,...,ve[xn]+en)其中xi是有边指向x的顶点,ei是从xi指向x的边
-
vl[x]=min(vl[x1']-e1',vl[x2']-e2',...,vl[xn']-en')
-
ee[x]=ve[x]
-
el[x]=vl[xi']-ei'
所有ee[x]=el[x]的边x都是关键路径上的边,它们代表关键活动(关键路径可以不止一条)

浙公网安备 33010602011771号