【数据结构】AOE网与关键路径
一.AOE网的定义(Activity On Edge NetWork)
????????在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的持续时间,称这样的有向图叫做边表示活动的网,简称AOE网。AOE网中没有入边的顶点称为始点(或源点),没有出边的顶点称为终点(或汇点)。
二.AOE网的性质
1.只有在某顶点所代表的事件发生后,从该顶点出发的各活动才能开始;
2.只有在进入某顶点的各活动都结束,该顶点所代表的事件才能发生。
AOE网与AOV网对比:
(1)AOV网无权值;AOE网有权值
(2)在AOE网中,顶点表示事件,弧表示活动,权值表示活动时间
(3)在AOV网中,顶点表示活动,弧表示优先关系
(4)AOV与AOE网中均没有环
三.AOE网的作用
1.可以知道完成整个工程至少需要多少时间
2.为缩短完成工程所需的时间,应当加快哪些活动
四.关键路径与关键活动
关键路径:
在AOE网中,从始点到终点具有最大路径长度(该路径上各个活动所持续的时间之和)的路径称为关键路径。
关键活动:
关键路径上的活动称为关键活动
要找出关键路径,必须找出关键活动,即不按期完成就会影响整个工程进度的活动。
首先计算以下与关键活动有关的量:
(1)事件的最早发生时间ve[k]
从始点开始到顶点的最大路径长度,这个长度决定了所有从顶点发出的活动能够开工的最早时间。
p[k]表示所有到达的有向边的集合。
(2)事件的最迟发生时间vl[k]
vl[k]是指在不推迟整个工期的前提下,事件允许的最晚发生时间
从后往前推算结点的vl值
(3)活动的最早开始时间ee[i]
若活动是由弧表示,则活动的最早开始时间等于事件的最早发生时间
即:ee[i]=ve[k]
(4)活动的最晚开始时间el[i]
若活动是由弧表示,则活动的最晚开始时间要保证事件的最迟发生时间不拖后
即:
最后计算各个活动的时间余量el[k]-ee[k],时间余量为0即为关键活动
注:
缩短工程时间
1)适当提高对应关键路径上的关键活动的速度,保证不改变AOE网的关键路径的前提下。
2)同时提高AOE网上的关键路径上关键活动的速度。
五.关键路径算法的伪代码
1)从源点出发,令ve[0]=0,按拓扑排序求其余各顶点的最早发生时间ve[i];
2)如果得到的拓扑排序中顶点个数小于AOE网中的顶点数,则说明网中存在环,不能求关键路径,算法终止;否则执行步骤3;
3)从终点出发,令vl[n-1]=ve[n-1],按照逆序拓扑排序求其余各顶点的最迟发生时间vl[i];
4)根据各顶点的ve和vl值,求每条有向边的最早开始时间ee[i]和最迟开始时间el[i];
5)若某条有向边满足条件ee[i]=el[i],则为关键活动。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!