赞
踩
说到数据结构当中的图这一章节,除了图的基本概念、基本性质和几个看似复杂但是实际比较简单的算法(例如最小生成树、最短路径等)之外,最最让大家头疼的就是AOV网络和AOE网路了,不少学校将求解AOV、AOE的计算题或者画图简单题当作数据结构的压轴题目,这两个结构的求解算法也不像图章节中的其他问题那么简单。
今天
大牛学长就用一篇文章的篇幅
教大家搞定AOV、AOE这一对难题。
一、AOV网络
1、 AOV网络的定义
AOV网络(Activity On Vertex Network):若用有向无环图(DAG) 表示一个工程,而图中的顶点表示活动,用有向边<,>表示活动必须先于活动的这样一种关系,则将这种有向图称为顶点表示活动的网络, 记为AOV网。在AOV网络中,活动是活动的直接前驱,活动是活动的直接后继,如下图1所示为一个简单的AOV网络。
2、 AOV网络拓扑排序算法
(a) 算法步骤:
① AOV 网中选择一个没有前驱的顶点并输出
② 从网络中删除该顶点和所有以它为起点的有向边。
③ 重复上面两个步骤,直到当前的AOV网络为空或当前网络中不存在无前驱的顶点为止。
(b) 算法图解
对图1中的AOV网络进行拓扑排序:
① 选中无前驱节点的1号活动节点,输出该节点;
② 把网中该输出节点的出边都删除;
重复上述两个步骤,则可以得到AOV网络的拓扑序列为1,2,4,3,5,
备注:用拓扑排序算法处理 AOV 网时,应注意以下问题:
① 入度为零的顶点,工程可以从这个顶点所代表的活动开始或继续;
② 若一个顶点有多个直接后继,则拓扑排序的结果通常不唯一;
③ AOV 网中各顶点的地位平等,每个顶点编号是人为的。
二、AOE网络
1、 AOE网络的定义
AOE网络(Activity On Edge Network):在带权有向图中,顶点表示事件,有向边表示活动,而边上的权值表示完成该活动的开销(完成活动所需的时间),则把该类图称之为用边表示活动的网络,简称AOE网络,如图2所示,顶点表示事件,边表示对应的活动。
2、AOE网络的性质
① 只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始;
② 只有在进入某顶点的各有向边所代表的活动都已结束时,该顶点所代表的事件才能发生。
3、 AOE网络之应用——关键路径
(a)关键路径:指从源点到汇点的所有路径中,具有最大路径长度的路径称为关键路径,而把关键路径上的活动称为关键活动。完成整个工程的最短时间就是关键路径的长度,即关键路径上各活动花费开销的总和。
(b)寻找关键路径需要明确的几个参量
① 事件发生的最早时间ve(k)(从源点开始计算):它是指从源点到顶点的最长路径长度,计算公式如下:
ve(源点)=0;
ve(k)=Max{ve(j) + Weight(,)}, 为的任意后继,Weight(,)表示,事件相连的权值。
② 事件发生的最迟时间vl(k)(从汇点开始计算):它是指在不推迟整个工程完成的前提下,即保证它的后继事件在其最迟发生时间vl(j)能够发生时,该事件最迟必须发生的时间,计算公式如下:
vl(汇点)=ve(汇点);
vl(k)=Min{vl(j) - Weight(,)}, 为的任意后继,Weight(,)表示,事件相连的权值。
③ 活动的最早开始时间e(i):若边<, >表示活动,则有e(i) =ve(k),即活动的最早开始时间e(i)为该活动弧的起点所表示事件的最早发生时间。
④ 活动的最早开始时间l(i): 若边<, >表示活动,则有l(i) = vl(j) - Weight(,),它是指该活动弧的终点所表示事件的最迟发生时间与该活动所需时间之差。
⑤ 计算d(i)=l(i)-e(i),该变量是指该活动完成的时间余量,即在不增加完成整个工程所需总时间的情况下,活动可以拖延的时间,若d(i)=0,则表示这个活动不能拖延,我们把该活动称为关键活动。
(c)AOE网络中求关键路径的算法步骤:
1) 从源点出发,令ve(源点)= 0,按拓扑序列求其余顶点的最早发生时间 ve()。
2) 从汇点出友,令 vi(汇点)= ve(汇点),按逆拓扑序列求其余顶点的最迟发生时间vl()。
3) 根据各顶点的ve()值求所有活动的最早开始时间e()。
4) 根据各顶点的 vl()值求所有活动的最迟开始时间l()。
5) 求 AOE 网中所有活动的差额d(),找出所有 d()= 0的活动构成关键路径。
根据上述求AOE网络关键路径的算法,可以计算图2的关键路径如下图所示:
三、AOV网络与AOE网络区别与联系
AOE 网络和AOV网络都是有向无环图,不同之处在于它们的边和顶点所代表的含义是不同的,AOV网络中的活动以顶点表示,而AOE网络中的活动以有向边来表示,AOV网的有向边只表示活动的先后次序,然而AOE网络中的边有权值;而AOV网络中的边无权值,仅表示顶点之间的前后关系。
—the end—
今天是2020年 8 月 26 日
距离2021考研还有 114 天
苦尽甘来终有时,山河星月代贺礼。
大牛学长一直在~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。