图中关键路径的求解

2018年高考第一天,希望都能考个好成绩(虽然我的高考已经过去了六年=-=)

【再次回顾AOV网】AOV网是活动在顶点上的网(Activity On Vertex network,AOV)的英文简称。AOV网是用有向图来表示的,在有向图中,顶点表示活动,边表示活动的先后次序且没有回路。

【什么是AOE网】AOE网是活动在边上的网(Activity On Edge network,AOE)的英文简称。AOE网是用有向图来表示的,在有向图中,边表示活动,边具有权值,边的权值代表了活动的持续时间。顶点表示事件,事件是图中新活动开始或者旧活动结束的标识。与AOV网相同的是,AOE网也是有向无环图,不同的是在AOV网中顶点表示活动,边无权值,边代表活动之间的先后关系。对于一个表示工程的AOE网,只存在一个入度为0的顶点,成为源点,表示整个工程的开始;也只有一个出度为0的顶点,称为汇点,表示整个工程的结束。

【什么是关键路径】在AOE网中,从源点到汇点的所有路径中,具有最大路径长度的路径成为关键路径。关键路径所代表的时间就是完成整个工期的最短时间。关键路径上的活动(边)称为关键活动。

【求解关键路径需要计算的值】首先说明max{x,y}代表的是x和y中取最大值;min{a,b}代表的是a和b中取最小值。则:

① 事件最早发生时间:设ve(k)代表事件(顶点)k的最早发生时间,即从源点到顶点k的路径中的最长者,即ve(k)=max{ve(j)+<j,k>},其中j为k的前驱事件,且j可能有多个。初始时,将源点事件的最早发生时间ve(0)设置为0。

② 事件最晚发生时间:设vl(k)代表事件(顶点)k的最晚发生时间,即在不推迟整个工程完成的前提下,事件k最迟必须发生的时间,即vl(k)=min{vl(j)-<k,j>},其中j为k的后继事件,j可能有多个。对于汇点时间来说,它的最早发生时间是整个工程的结束时间,因此他的最早发生时间也是最迟发生时间,即初始时将汇点事件的最晚发生时间vl(n)设置为ve(n)

③ 活动最早发生时间:设e(ak)代表当前活动(边)ak的最早发生时间,由于事件代表一个新活动的开始或一个旧活动的结束,因此事件的最早发生时间就是有这个事件所发出的活动的最早时间。即若存在边ak1:<i,j>,ak2:<k,j>,则e(ak1)=e(ak2)=ve(i)。

④ 活动最晚发生时间:设l(ak)代表当前活动(边)ak的最晚发生时间,由于图中事件的最迟发生时间代表了以它为结束点的活动的最迟结束时间,因此用时间的最迟发生时间减去以它为结束点的活动的持续时间,就得到活动的最迟发生时间。即若存在边ak:<i,j>,权值为w,则l(ak)=vl(j)-w。

【获取关键活动与关键路径】对于每个活动(顶点),如果活动的最早发生时间和最晚发生时间相同,则该活动就是关键活动。活动剩余时间等于活动的最晚发生时间减去活动的最早发生时间,剩余时间反映了该活动完成的一种松弛度。关键活动的活动剩余时间为0,这也体现了关键活动在整个工程中的重要性,关键活动没有缓期执行的余地。而由关键活动(顶点)组成的路径就是关键路径。

【求关键路径的一般方法】(1)根据图求出图的拓扑序列a和逆拓扑序列b。(2)根据序列a和b分别求出每个事件(边)的最早发生时间和最晚发生时间。(3)根据(2)中的结果,求出每个活动(顶点)的最早发生时间和最晚发生时间。(4)根据(3)中的结果找出最早发生时间和最晚发生时间相等的活动,即为关键活动,由关键活动组成的路径即为关键路径。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值