一、有向无环图(DAG)的应用
工程能否顺利进行->拓扑排序
完成整个工程所必需的最短时间->关键路径
1.拓扑排序
*顶点活动网(AOV网):顶点表示活动,边表示活动的间关系
*拓扑序列:存在vi到vj的路径,则在该路径中vi必位于vj之前
*特点:
若所有顶点没有入度为零的,则说明有环路,无法进行拓扑排序
(1)基本思想:
(2)算法详解
时间复杂度:邻接表O(n+e) 邻接矩阵O(n^2)
2.关键路径
*AOE网:顶点表示事件,边表示活动,权值表示持续时间
“短板效应”最短时间是最长路径(关键路径)长度,最长路径上的活动(关键活动)是影响工程进度的关键
关键活动延长不一定能缩短工期,延长必然影响工期
(1)关键迭代步骤演示
事件最早发生时间 max
事件最迟开始时间 min
二、最短路径
1.单源最短路径(Dijkstra算法)
时间复杂度O(n^2)空间复杂度O(n)
算法功能
- 求一个顶点到其余顶点的最短路径,各顶点之间的最短路
- 判断任意两顶点i,j之间是否有路
- 判断有没有包含任意两顶点i,j的环路
2.各顶点之间的最短路径(Floyd算法)
加A->加B->加C......
时间复杂度O(n^3)(三重循环)空间复杂度O(n^2)(二维数组)