AOE图和关键路径的求解

AOE网和关键路径

本文算是相对知识密度较大的文章,建议看的时候慢一点,并在迷惑的地方搜索其他文章。


AOE网和AOV网

一些概念

拓扑结构:拓扑本是地理上的概念,指只考虑物体间的位置关系而不考虑它们的形状和大小。拓扑结构就是某些东西之间有位置关系。

拓扑排序:给一个局部有序的拓扑结构排序。如:吃饭->睡觉,睡觉->打豆豆。在拓扑排序后则变成:吃饭->睡觉->打豆豆,这样的拓扑序列。

Activity On Vertex:用顶点表示活动,用弧表示活动间的优先关系的有向图。

活动:如吃饭睡觉打豆豆等,在企鹅的一天这个工程中都是活动。

事件:类似于里程碑,标志着之前的某些活动都已经完成。如:顶点5标志活动a4,a5已完成,a7,a8可以开始了。(a7的先序活动为a4或a5)

Activity On Edge:是一个带权的有向无环图,其中,顶点表示事件(Event),弧表示活动,权表示活动持续的时间。 入度为零的顶点成为源点,出度为零的顶点称为汇点
AOE图示例
AOE网可以求解:

  1. 完成整个工期的时间。
  2. 为缩短工期,应加快哪些活动。

关系:AOV网常用来拓扑排序,AOE网用来规划工程计划。

关键路径

从源点到汇点具有最大长度的路径,关键路径上的所以活动都称作关键活动

关键活动序列具有最长的总工期并决定了整个项目的最短完成时间,任何元素的延迟将直接影响项目的预期完成时间。

关键路径相关量

其中,v:vertex,e:early,l:late。

以下可以在‘最’字前加上“可以”,便于理解。如:事件可以的最早发生事件。

  1. 事件的最早发生时间:ve[k]

从源点开始到顶点Vk的最大路径长度(即权值的和)。

这个长度决定了从顶点Vk发出的活动能够开工的最早时间。

如:顶点5标志着活动a4、a5已完成,则以a4、a5为前序活动的a7、a8则可以开始进行。

求解:

ve[0] = 0;

ve[k] = max{ve[j] + len<Vj, Vk>}

即:从上个顶点Vj开始,ve[k]加上从该顶点到Vk顶点路径的最大值。

  1. 事件的最迟发生时间:vl[k]

指在不推迟整个工期的前提下,事件Vk允许的最晚发生事件。

vl[n] = ve[n]

vl[k] = min{vl[j] - len<Vk, Vj>}

即:从它的下一个顶点Vj开始,vl[j]减去该顶点到Vk顶点路径的最小值。

注:上述两个相关量求解时总是为最大或最小值,是因为某个顶点的前一个顶点或后一个顶点可能有多个。我们所说的“Vk的前一个顶点”指的是与Vk有弧,且弧头指向Vk的顶点。

  1. 活动的最早开始时间:e[i]

字面意思。

e[i] = ve[k]

即:e[i]等于该弧的弧尾所在顶点的ve[k]的值。

  1. 活动的最迟开始时间:l[i]

l[i] = vl[j] - len<Vk, Vj>

即:该弧的弧头所在顶点对应的vl[k]减去该弧的权值。

然后就可计算各个活动的时间余量(l[k] - e[k] ),时间余量为0者为关键活动。

工程规划

在求出关键路径和各个活动的时间余量后,便可做出规划:

若要保证工程完成工期较短,则关键活动必须要马不停蹄的完成。

而时间余量不为零的那些活动,则可以拖延相应的时间。

关键活动。

工程规划

在求出关键路径和各个活动的时间余量后,便可做出规划:

若要保证工程完成工期较短,则关键活动必须要马不停蹄的完成。

而时间余量不为零的那些活动,则可以拖延相应的时间。

也可通过上面求得的关键路径相关量,计算安排每个活动开始的时间范围,和整个工程的最短工期。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值