Skip to content

Latest commit

 

History

History
36 lines (22 loc) · 1.66 KB

chap7.5_AOV-AOE网及其算法.md

File metadata and controls

36 lines (22 loc) · 1.66 KB

顶点活动网AOV、

AVO网、拓扑排序、拓扑序列

AOV

AOV;Activity On Vertex Network

AOV用顶点表示一个活动,用有向边表示各项活动之间的先后顺序

在一项工程中,不同工作之间存在先后制约关系,这里需要解决的一个问题就是做出满足制约关系的工作安排,可以通过AOV网来处理这种工程计划问题

常见的AOV网实例是大学课程的先修关系,学生在选一门课之前,要先看是否已经修过所有先修课程。

一些实际的问题中,AOV网的顶点或边还可能带有权值

拓扑排序和拓扑序列

可以把AOV网络里的有向边看做一种顺序关系,拓扑排序问题就是问,在一个AOV网里的活动能否排成一种全序(顶点按执行的先后排成序列)。在实际情况中,一个拓扑序列就是工程的以顺利完成的一个可行方案

一些性质:

  1. AOV网未必有拓扑序列。当且仅当没有回路的时候才存在拓扑序列
  2. 存在拓扑序列的AOV网,其拓扑序列未必唯一
  3. AOV网的任何一个拓扑序列的反向得到的序列,都是AOV网的逆网的拓扑序列
  4. 拓扑排序隐含的假设是一次只能执行一个任务,即单线程的。但实际情况中也存在多线程的情况

拓扑排序算法

  1. 从AOV网N中选出一个入度为0的顶点作为序列的下一个顶点
  2. 从N中删除所选顶点及其所有的出边
  3. 重复执行1、2两步,直到没有入度为0的顶点

算法的复杂度问题:基于图和顶点的操作需要拷贝整个图,空间代价大,不断查找入度为0的点时间代价也大。解决方法;用一个表来