图的关键路径(AOE网络)
文章目录
- AOE网
- 概念
- 性质
- 研究的问题
- 关键路径
- 概念
- 求解的方法
- 注意事项
AOE网
概念
用顶点表示事件, 边弧表示活动, 边弧上的权值表示活动持续的时间, 这样的带权有向无环图叫AOE网. AOE网常用于估算工程完成时间.
AOE网和AOV网都是有向无环图, 不同之处在于它们的边和顶点所代表的含义不同, AOE网中的边有权值, 而AOV网中的边无权值, 仅代表顶点之间的前后优先关系.
在AOE网中仅有一个入度为零的顶点, 称为开始顶点(源点), 它表示整个工程的开始; 网中也仅存在一个出度为零的顶点, 称为结束顶点(汇点), 它表示整个工程的结束.
性质
- 只有在某顶点所代表的事件发生后, 从该顶点出发的各有向边所代表的活动才能开始.
- 只有在进入某顶点的各有向边所代表的活动都已结束时, 该顶点所代表的事件才能发生.
研究的问题
- 完成整个工程至少需要多少时间.
- 哪些活动是影响工程的关键.
关键路径
概念
从源点到汇点的路径长度最长的路径叫关键路径.
在AOE网中, 有些活动是可以并行进行的. 从源点到汇点的有向路径可能有多条, 并且这些路径长度可能不同. 完成不同路径上的活动所需的时间虽然不同, 但是只有所有路径上的活动都已经完成, 整个工程才能算结束. 因此, 从源点到汇点的所有路径中, 具有最大路径长度的路径称为关键路径, 而把关键路径上的活动称为关键活动.
求解的方法
完成整个工程的最短时间就是关键路径的长度, 即关键路径上各活动花费开销的总和. 这是因为关键活动影响了整个工程的时间, 即若关键活动不能按时完成, 则整个工程的完成时间就会延长. 因此, 只要找到了关键活动, 就找到了关键路径, 也就可以得出最短完成时间.
法一:
关键路径其实就是从源点到汇点最长的路径, 这个关键路径可能不唯一.
如下图, 从源点v1到汇点v9有五条路径, 其中最长的有:
- v1 -> v2 -> v5 -> v7 -> v9
- v1 -> v2 -> v5 -> v8 -> v9
这两条最长路径即为关键路径.
在关键路径上的活动称为关键活动: a1 a4 a7 a8 a10 a11.
法二:
- 事件vj开始的最早时间ve(j)
它是指从源点v1到顶点vj的最长路径长度. 事件vj的最早发送时间决定了所有从vj开始的活动能够开工的最早时间.
- 事件vj开始的最晚时间vl(j)
它是指在不推迟整个工程完成的前提下, 既保证它的后继事件vk在其最迟发送时间vl(k)能够发生时, 该事件最迟必须发生的时间.
- 活动ai开始的最早时间e(i)
它是指该活动边弧的起点所表示的事件的最早发生时间.
- 活动ai开始的最晚时间l(i)
它是指该活动边弧的终点所表示的最迟发生时间与该活动所需时间之差.
定义e(i)=l(i)的活动叫关键活动.
求关键路径步骤:
- 求ve(i)
- 求vl(i)
- 求e(i)
- 求l(i)
- 计算l(i)-e(i)
注意事项
- 只有减少关键活动的时间才可能缩短工期
- 只有减少所有关键路径上共有的关键活动的时间才可能缩短工期
- 只有在不改变关键路径的前提下减少关键活动的时间才可能缩短工期