图之有向无环图,拓扑排序,关键路径

一.实际问题

这里写图片描述
上图可看出有向无环图(DAG)与一般图区别:有方向,共用子结构,无环。
有向无环图常用于解决工程活动问题:
  判断工程是否能否顺利进行–拓扑排序
  求工程完成所必须的最短时间–关键路径

二.拓扑排序

  拓扑排序主要为后续求最短路径做准备,同时判断图是否有环。
  从偏序得到拓扑有序的操作称为拓扑排序。
  这里写图片描述
  在偏序中,有些成员无法比较,而全序中所有成员都可比较。如上图偏序中V2和V3无法比较大小。
拓扑排序方法:
这里写图片描述
这里写图片描述
观察算法,如果存在环的话,上述算法是无解的,因为对于一个环,始终有一个入度,算法因为顶点有一个入度,无法取出这个顶点。
这里写图片描述

三.关键路径

  关键路径:从开始点到完成点的最长路径长度叫做关键路径
  主要是为了求出整个工程需要的最短时间,因为我们需要在这个周期内所有的活动都能够完成,所以我们需要知道一条最长路径,时间足够完成所有活动,同时又不会浪费时间。
  这里写图片描述
  假设从V1到V5,我们可以看到有两条路径,V1-V2-V5(6+1=7)和V1-V3-V5(4+1=5),只有选择V1-V2-V5为关键路径,V3这个活动才能在此期间同时完成。
  算法基于首先求出拓扑排序:
  

活动是边,事件是顶点

  e(i)表示活动最早开始时间:上面红色方框中,关键路径为V1-V2-V5,V3只需要在关键路径时间内完成就不会耽误后续活动进展。因此V3的e(i)为4
  L(i)表示活动最晚开始时间:计算最晚时间时需要从后往前算,当我们求出关键路径为V1-V2-V5总时间为7,而活动a6完成只需要1。7-1=6。因此V3的L(i)为6。
  当e(i)=L(i)就说明这个活动在前一个活动结束后必须立即开始,才能使整个过程时间最短。也就是关键活动。
转化为公式就是:  
这里写图片描述
  0,1,2…..i事件的Ve(i)已经解出,在求解Ve(j),只需选择从i到j总时间最长路径。此处思想认为贪心算法,每次选择当前最优解。如求解V5:已求解出V1-V2(6)和V1-V3(4)最优解,在求解V5时,选择(6+1=7)和(4+1=5)中较大者,这样能够保证在此V3能够完成。
  求解事件的VL(j)时从后往前推:注意其初始值为最后一个顶点,最后一个顶点的活动最晚开始时间就是其活动最早开始时间。比如考虑顶点V5,V7,V8,此时事件V7和V8的VL(j)已经求解出,求解V5只需要用事件V7和V8的VL(j)减去活动a7和a8活动持续事件,可得事件V5最晚发生事件。

注意任何一项活动的持续时间的改变都有可能影响关键路径。只有在不改变网的关键路径情况下,提高关键活动的速度才能缩短工期。如果关键路径改变了,那就得重新考虑。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值