数据结构 图-关键路径:AOE网络

AOE定义

带权有向图中,以顶点表示事件有向边表示活动,边上的权值表示完成该活动的开销(如完成活动所需的时间),即用边表示活动的网络称为AOE网络。
注: AOE网络一定是有向无环图。
在这里插入图片描述

活动发生时间计算

在这里插入图片描述
首先明确事件最早发生时间,记为Ve(i),就是一个人从源点沿着箭头走到该顶点所花费的最长时间。例如:走到V2花费3天,而从V1走到V4有2条路,v1->v2->v4 这条路花费的是3+2天,而v1->v3->v4花费的是2+4天,选择出花费时间最多的路径。这样依次计算出到每个顶点花费的时间。如下表所示:

V1V2V3V4V5V6
ve(i)032668

事件最迟发生时间:,记为Vl(i).注意这里有一个很重要的前提:保证时间不推迟的前提下(就是这个人走到V6的时间和上面的V(6)时间必须相同)。不明白可以通过下面例子找出规律。
如首先在上表中找到v6的值,如下:

V1V2V3V4V5V6
vl(i)08

接着计算顶点V5,V5 = V6 - v5的权值 :8 - 1 = 7 ,填入表中:

V1V2V3V4V5V6
v(i)78

接着计算V4 = V6 - V4的权值 :8 - 2 = 6,填入表中:

V1V2V3V4V5V6
vl(i)678

接着计算V3,注意V3指向V4和V6,V3与V6:V6- V3权值:8-3=5
而V6与V4: V4 - V3权值: 6-4=2,取出V3的最小值 2 填入表中:

V1V2V3V4V5V6
vl(i)2678

依照上面的规律完成关键活动表如下:

V1V2V3V4V5V6
ve(i)032668
vl(i)042678

各活动计算

对题目中的活动进行一个编号
在这里插入图片描述
e(i):活动a(i)的最早开始时间,如活动a1可以写成弧<v1,v2>那么a1的活动为弧头V1的ve(1)即e(1) = ve(1)= 0(v(1)见下表)

V1V2V3V4V5V6
ve(i)032668

同理可以依次完成各个弧的e(i)表:

a1a2a3a4a5a6a7a8
e(i)00332266

l(i):活动a(i)的最迟开始时间,如活动a1可以写成弧<v1,v2>即V1指向V2,那么根据下表l(1) = vl(2)- 3(a1弧的权值)= 1,即当前活动的弧尾顶点vl(i)-权值。

V1V2V3V4V5V6
vl(i)042678

根据上面的规律可以完成活动表:

a1a2a3a4a5a6a7a8
e(i)00332266
l(i)10442567

关键活动计算

上面计算出活动表,根据活动表筛选出关键活动,条件就是e(i)=l(i),如下:

a1a2a3a4a5a6a7a8
e(i)00332266
l(i)10442567
e(i)-l(i)10110301

筛选出的关键活动就是: a2, a5, a7
关键路径 v1,v3,v4,v6

总结

在这里插入图片描述

  1. 计算 ve:找到达该顶点路径的最大权值和
  2. 计算vl: 利用ve表倒序求各个顶点:所求的顶点被指向的顶点减去权值(若结果有多个值取最小值)
  3. 计算a(i):a(i)等于当前弧的弧头ve
  4. 计算l(i) : e(i)等于当前弧的弧尾vl - 权值
  5. 令l(i) = a(i),找到关键活动
  6. 连接关键活动找到关键路径
  • 15
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图图是只猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值