本篇内容为视频笔记,视频地址为:https://www.bilibili.com/video/BV1Ut41197TE?from=search&seid=17921312669232031384算法
一,有向无环图ide
定义:无环的有向图,简称 DAG视频
有向无环图经常使用于描述一个工程或者系统的进行过程。(一般将计划,施工,生产,程序流程等当成一个工程)blog
一个工程能够分为若干子工程,只要完成这些子工程(活动),就能够完成总体工程。排序
那么这些工程有两种表示方法:AOV网 和 AOE网程序
AOV 网:(解决 拓扑排序 问题)方法
用一个有向图表示工程的各子工程及其相互制约的关系,其中 顶点表示活动,弧表示活动之间的优先制约关系,im
称这种有向图为 顶点表示活动的网,简称 AOV图表
AOE 网:(解决 关键路径 问题)img
用一个有向图表示工程的各子工程及其相互制约的关系,其中 弧表示活动,顶点表示活动的开始和结束
称这种有向图为 边表示活动的网,简称 AOE
二,AOV 网的特色
1,若从 i 到 j 有一条路径,则 i 是 j 的前驱 ,j 是 i 的后继;
2,若 < i , j > 是网中的有向边,则 i 是 j 的直接前驱 ,j 是 i 的直接后继
3,AOV 网不容许有 回路,由于若是存在回路的话,则说明 某项活动 是以本身为先决条件的,
这是荒谬的。
三,拓扑排序
① 例题:排课表
随便画的,和原来不同,意思一下。
② 拓扑有序序列
在 AOV 网没有回路的前提下,咱们将所有活动排成一个线性序列,使得 AOV 网有弧 <i,j> 存在,
则在这个序列中,i 必定在 j 的签名,具备这种性质的线性序列称为 拓扑有序序列,相应的算法 称为
拓扑排序。
③ 拓扑排序 的方法
1,在有向图中 任何选一个没有前驱的 顶点 且输出它。
2,从图中删除 该顶点 及 全部以它为尾的弧。
3,重复上述两步,直至所有顶点均输出 或者 图中不存在 无前驱的顶点 为止
注意:输出的即为拓扑序列,且拓扑序列不惟一
④ 拓扑排序的一个应用
检查 AOV 网 是否存在 环
对于有向图构造其顶点的 拓扑有序序列,若网中全部顶点都在他的拓扑有序序列中,则该 AOV 网 中
一定不存在 环。
============ ========= ======== ====== ===== ==== === == =