C++ AOE网络

本文介绍了如何使用C++实现AOE(Arc-Of-Event)网络来计算关键路径。通过理解事件的最早可能开始时间、最迟允许开始时间,以及活动的最早和最迟开始时间,找出关键活动。文中提供了具体的实现程序,包括Graph.h、AOE.h和main.cpp,并给出了测试数据及结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、思路(你可以用拓扑排序来做,但我这里没用拓扑排序)

    (1)求事件Vi的最早可能开始时间是从源点V0到顶点Vi的最长路径长度。

             如V0=0, V1=6,V2=4,V3=5;V4事件要等V1和V2事件完成后才可以进行,所以要取事件用的最长的时间,即V4=6+1=7,同样道理得出其他时间。

    (2)事件Vi的最迟允许开始时间Vl[i]是在保证汇点Vn-1在Ve[n-1]时刻完成的前提下,事件Vi的允许的最迟开始时间。它等于Ve[n-1]减去从Vi到Vn-1的最长路径。

         如:事件V2=Ve[n-1]-(a7+a10)-a5 = 18-11-1=6

    (3)活动ak的最早可能开始时间Ae[k]=Ve[i](k=1,2,…)(i=0,1,…)

    (4)活动ak的最迟允许开始时间Al[k]=Vl[j]-<i,j>

    (5)用Al[k]-Ae[k]表示活动ak的最早可能开始时间和最迟允许开始时间的时间余量,也叫做松弛时间。Al[k]==Ae[k]表示活动ak是没有时间余量的关键活动。

事件

V0

V1

V2

V3

V4

V5

V6

V7

V8

Ve[i]

0

6

4

5

7

7

16

14

18

Vl[i]

0

6

6

Ve[8]-a11-a9-a6=8

7

10

16

14

18

 

<0, 1>

<0, 2>

<0, 3>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值