No.3拓扑排序和关键路径

来源:互联网 发布:万能摄像头软件下载 编辑:程序博客网 时间:2024/06/05 19:25

No.3拓扑排序和关键路径

一.AOV网和拓扑排序

以顶点表示活动,有向边表示活动之间的优先关系,则称这样的有向图为AOV(顶点活动图)


特点:一个AOV网必定是一个有向无环图,即不应该带有回路。

将有向无环图G中所有顶点排成一个序列,使得图中任意一对顶点uv,若<uv> ∈E(G),则u在线性序列中出现在v之前。

这样的线性序列称为满足拓扑次序(TopologicalOrder)的序列,简称拓扑序列


拓扑排序算法思想:

1.选择一个入度为0的顶点并输出;
2.然后从AOV网中删除此顶点及以此顶点为起点的所有关联边;
3.重复上述两步,直到不存在入度为0的顶点为止;
4.若输出的顶点数小于AOV网中的顶点数,说明“有回路”,否则输出的顶点序列就是一种拓扑序列。


二.AOE网

用顶点表示事件,弧表示活动,边上的权值表示该活动持续的时间——AOE(ActivityOn Edge)——也叫边表示活动的网。

事件表示在它之前的活动已完成,在它之后的活动可以开始。


性质:

只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始。
只有在进入某点的各有向边所代表的活动都已结束,该顶点所代表的时事件才能发生。


相关术语:

路径长度——路径上各活动持续时间之和

关键路径——路径长度最长的路径

Ve(j)——表示事件Vj的最早发生时间

Vl(j)——表示事件Vj的最迟发生时间

e(i)——表示活动ai的最早开始时间

l(i)——表示活动ai的最迟开始时间

l(i)-e(i)——表示完成活动ai的时间余量

关键活动——关键路径上的活动


重难点:

关键路径问题:

由关键活动构成

从源点V1出发,令Ve[1]=0,拓扑序列求各顶点的Ve[i]
从汇点Vn出发,令Vl[n]=Ve[n],逆拓扑序列求其余各顶点的Vl[i]
根据各顶点的VeVl值,计算每条弧的e[i]l[i],找出e[i]=l[i]的关键活动


算法思想:

1-输入顶点和弧信息,建立其邻接表

  计算每个顶点的入度

2-对其进行拓扑排序

2.1-排序过程中求顶点的Ve[i]

2.2-将得到的拓扑序列进栈

3-拓扑序列求顶点的Vl[i]

4-计算每条弧的e[i]l[i],找出e[i]=l[i]的关键活动


在熟练掌握图的存储的基础上运用拓扑排序,逆拓扑排序,编程难度较大,需要多多练习。

图论部分概念多且抽象,需要大量的手动模拟来弄清楚算法的意义。


0 2
原创粉丝点击