拓扑排序
重要概念
- AVO(Activity of Vertex Network):顶点表示活动,弧表示活动之间优先级的表示工程的有向图
- 拓扑序列:有向图中的一条路径,路径中某些点的相对顺序有限制
- 拓扑排序:对一个有向图构造拓扑序列
拓扑排序思路
利用临接表和栈,从AOV中寻阿泽一个入度为零的点,删除此点,并删除以该顶点为狐尾的弧,重复直到输出全部顶点或者AOV网中不存在入度为0为止
关键路径
重要概念
- AOE:在AOV的基础上,边上有权值,代表活动耗费的时间。
- AOE的工程应用:在活动之间的制约关系没有矛盾的基础之上,找出决定工程最短耗费时间的活动
- 关键路径:源点到汇点的最大程度的路径
参数定义
我们把VOE网中的顶点当作事件,弧当作活动。
- 事件最早发生时间etv(earliest time of vertex)
顶点Vk的最早发生时间(逻辑上要求Vk之前发生的事件都结束之后的最早时间)
- 事件最晚发生时间ltv(latest time of vertex)。
顶点Vk的最晚发生时间
- 活动最早发生时间et e(earliest time of edge)
弧ak的最早发生时间。
- 活动最晚发生时间lte(earliest time of edge)
弧ak的最晚发生时间
算法原理
拓扑排序
- 除了根据AOE进行基本的拓扑排序外,将要输出的拓扑序列压入全局栈stack2中。
- 同时求出所有顶点的etv 
AOE网中的事件是有发生顺序限制的,因此k必须等待规定在vk之前发生的事件都结束之后才能开始,所以选取最大值>
计算ltv

- 计算ltv的时候,实际上是把拓扑序列倒过来进行的
- ltv在两种可能中取最小值,是为了满足在执行vk之后的所有事件不会延长整个工程的最短时间>
求关键路径