关键路径详解

在这里我们引入AOV(Activity-On-Edge)网概念,用顶点表示事件,用边来表示活动。区别于AOV网,AOE网的边是有权值的,代表完成事件的时间。

你需要先了解拓扑排序的有关知识。具体详见博文:http://blog.csdn.net/lee18254290736/article/details/77430334

关键路径详解_第1张图片

在这里引入几个概念:

起始点称作源点

终止点称作汇点

针对顶点事件:事件最早完成时间Ve(k),事件最晚完成时间Vl(k)。

针对边上的活动:活动最早完成时间e(i),活动最晚完成时间l(i),关键路径,关键活动。

关键活动指的是l(i)-e(i)=0的一个活动,关键路径指的是由关键活动组成的由起始点到终点的完整路径。


求解事件,活动最早完成时间步骤:

规定源点事件第一天的开始时间为0, 即入度为0的顶点。

活动所需时间为2,故事件2最早完成时间为2。

所以有以下推论:

Ve(1) = 0

Ve(2) = 2

Ve(3) = 5

Ve(4) = 6

在讨论事件5最早发生时间的时候,需要前面两条路径的时间都完成才可以。耗费时间最长的是2-3-5,则需要等待2-3-5完成才可以。即Ve(5)=10.所以有公式

Ve[i] = Max { max [ Ve(i) ] + dur(i,j)   |   dui(i,j)为节点i到节点j的时间] }

由此可知:

Ve(5) = 10

Ve(6) = 13

Ve(7) = 16

Ve(8) = 17(同Ve(4)的求法)

我们规定最后一件事件的最晚完成时间与最早完成时间相同。即Ve(7) = Vl(7) = 17.


事件最晚完成时间求解步骤:

将完成的17天扣掉活动所需时间,就是事件最晚的完成时间。

Vl(7) = 17

Vl(6) = 16

Vl(5) = 10

Vl(4) = 8

Vl(3) = 5

Vl(2) = 2

Vl(1) = 0

事件5与事件2的最晚完成时间如何确定?

在事件5与2之后有两条路径,一个权值长,一个权值少。我们选择权值长的。

Vl(j) = Min{vl[k] - dur[j,k]}

剩下的之后再补上

你可能感兴趣的:(数据结构)