【算法】AOE网找关键活动、关键路径

本文介绍关键路径的概念及其在项目管理中的应用。通过实例说明如何利用拓扑排序和逆拓扑排序来确定项目的最早和最迟发生时间,从而找出关键路径。

1. 前言

  • 关键路径是什么?
    整个活动网影响整体耗时的路径。如果活动网没有任意一个分叉,所有节点连起来也为一条关键路径。

  • 找关键路径用于解决什么问题?
    项目推进中,如果要压缩工期,找到关键路径,并减小关键活动的耗时才能减少整体耗时,否则会做无用功。如图示:

    • 红色的边 = 关键活动。
    • 红色边 + 经过的节点 = 关键路径。
      在这里插入图片描述
  • 存在关键路径的前提
    带正权的有向无环图,在业务中与数据结构的名词映射:
    状态 —— 图的顶点
    活动 —— 图的边

  • 看本文需要具备的基础
    拓扑排序、逆拓扑排序

  • 参考
    王道教程,例子来源于王道

2. 算法的名词解释

最早发生时间 ve最迟发生时间 vl 都是描述的活动的开始时间。
我们讨论 活动e 和 v 都是在描述这个活动在整个项目中两个属性,并且属性的值与边上的权相关其中:

  • ve 都依赖于之前发生的状态,即当前讨论的v2活动 作为箭头的终点往前找活动
    项目起点 活动v1 无前面的状态,也就无权,则ve(活动v1) = 0
  • vl 都依赖于之后发生的状态,即当前讨论的v2活动 作为箭头的起点往后找活动
    项目终点 活动v6 无后面的状态,也就无权但初始值来自于veve(活动v6) = vl(活动v6)

记忆点:先算完整个项目中状态的最早发生时间,才能算最迟发生时间。按拓扑排序依次计算状态的最早发生时间,按逆拓扑排序计算活动的最迟发生时间
在这里插入图片描述

2.1 状态最早发生时间 ve

明确一点,计算项目从开始节点往后推的时间。
引用王道的一个例子,厨师有两个帮手,帮手A负责洗番茄和切番茄,一共耗时4min。
ve(v1) = 0;
则 ve(v2)

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值