图 - AOE & 关键路径

关键路径在项目管理计算工期等方面有广泛等应用,提升工期就是所见缩减所有关键路径上的工期,并且在实现时需要应用到之前拓扑排序的算法(前提: 有向无环图,有依赖关系)。

关键路径相关名词

相关术语:

  • AOV网络(Activity On Vertex Network): 有向图,用顶点表示活动,用弧表示活动的先后顺序
  • AOE网络(Activity On Edge): 有向图,用顶点表示事件,用弧表示活动,用权值表示活动消耗时间(带权的有向无环图)
  • 活动: 业务逻辑中的行为,用边表示
  • 事件: 活动的结果或者触发条件
  • 关键路径: 具有最大路径长度(权重)的路径,可能不止一条
  • 活动的两个属性: e(i)最早开始时间,l(i)最晚开始时间
  • 事件的两个属性: ve(j)最早开始时间,vl(j)最晚开始时间

AOV和AOE的对比: 虽然都是用来对工程建模,但是还是有很大不同。主要体现在:

  • AOV网是顶点表示活动的网,他只描述活动之间的制约更新,
  • AOE网是用边表示活动的网,边上的权值表示活动持续的时间

关键路径的实现

4个关键概念

事件最早发生时间

事件最早发生时间etv(earliest time of vertex),即顶点Vk的最早发生时间。

事件最晚发生时间

事件最晚发生时间ltv(lastest time of vertex),即顶点Vk的最晚发生时间,也就是每个顶点对应的事件最晚需要开始的事件,超出此事件将会延误整个工期。

活动的最早开工时间

活动的最早开工时间ete(earliest time of edge),即弧ak的最早发生时间。

活动的最晚开工时间

活动的最晚开工时间lte(lastest time if edge),即弧的最晚发生时间,也就是不推迟工期的最晚开工时间。

4个时间的关系

我们可以由事件的最早发生时间和事件的最晚发生时间求出活动的最早和最晚开工时间。 由1,2可以求得3,4,然后在根据ete[k]是否与lte[k]相等来判断ak是否是关键活动。

算法实现

  • 推演图
    在这里插入图片描述

  • etv从左向右推导
    在这里插入图片描述

  • ltv从右向左推导
    在这里插入图片描述

  • ete: 活动最早开工时间需要和etv事件最早发生时间结合
    在这里插入图片描述

  • lte: 活动最晚开工时间需要和ltv事件最晚发生时间结合(都是倒序获得)
    在这里插入图片描述

推演的步骤具体可以参考 这里

参考文章

  • 文章转自大佬 pdai 欢迎大家交流学习
  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值