文章目录

  • 一,什么是关键路径
  • 二,求解关键路径需要的4个描述量
  • 三,如何求得关键路径

视频参考: 6.6.4关键路径2–求解关键路径

一,什么是关键路径

【引例 1】某项目的任务是对A公司的办公室重新进行装修
如果10月1日前完成装修工程,项目最迟应该合适开始?
(需要完成的活动、每个活动所需时间、及先期需完成工作如下图所示)

【引例 2】准备一个小型家庭宴会,晚6点宴会开始,最迟几点开始准备?压缩哪项活动时间可以使总时间减少?

我们把工程计划表示为边表示活动的网络,即 AOE网,用顶点表示事件,弧表示活动,弧的权表示活动持续时间

事件表示在它之前的活动已经完成,在它之后的活动可以开始。

【引例 3】设一个工程有 11项活动,9 个事件。

  • 事件 v1 ---- 表示工程的开始(源点:入度为0的顶点)
  • 事件 v9 ---- 表示工程的结束(汇点:出度为0的顶点)

对于AOE网,我们关心两个问题:

  1. 完成整项工程至少需要多少时间? — 求关键路径长度
  2. 哪些活动是影响工程进度的关键? — 求关键路径上经过的顶点(活动)

关键路径 — 路径长度最长的路径。
路径长度 — 路径上各活动持续时间之和。

最终,这道题就变成了求解关键路径的问题。

二,求解关键路径需要的4个描述量


确定关键路径之前,我们需要定义4个描述量(以上图为例):

  • ve(vj) ----- 表示时间 vj 的最早发生时间。
    例:ve(v1) = 0、ve(v2) = 30
  • vl(vj) ----- 表示时间 vj 的最晚发生时间。
    例:vl(v4) = 180 - 15 = 165
  • e(i) ---- 表示活动 ai 的最早开始时间。
    例:e(a3) = 30
  • l(i) ---- 表示活动 ai 的最晚开始时间。
    例:l(a3) = 180 - 30 - 60 - 60 = 120

l(i) - e(i) ---- 表示完成活动 ai 的时间余量。
例:l(3) - e(3) = 90

关键活动 ---- 关键路径上的活动,即 l(i) == e(i)即(l(i) - e(i) = 0)的活动。

三,如何求得关键路径

那么我们如何找到满足 l(i) == e(i)的关键活动?

设活动 ai 用弧 < j, k > 表示,其持续时间记为:wj,k
则有:

  1. e(i) == ve(j)
  2. l(i) = vl(k) - wj,k

如何求得 ve(j) 和 vl(j) ?

  1. 从 ve(1) = 0 开始向前地推
    ve(j) = Maxi{ ve(j) + wi,j },< i, j >∈T,2 ≤ j ≤ n
    其中 T 是所有以 j 为头的弧的集合。
  2. 从 vl(n) = ve(n) 开始向后递推
    vl(j) = Minj{ vl(j) + wi,j },< i, j >∈S,1 ≤ i ≤ n-1


下边我们通过一个例子来说明,求得关键路径的步骤(视频:28min开始)

关键路径的讨论

  1. 若网中有几条关键路径,则需要加快同时在几条关键路径上的活动。
    如:a11、a10、a8、a7
  2. 如果一个活动处于所有的关键路径上,那么提高这个活动的速度,就能缩短整个工程的完成时间。
    如:a1、a4
  3. 处于所有关键路径上的活动完成时间不能缩短太多,否则会是的原来的关键路径变成非关键路径。这时,必须重新寻找关键路径。
    如:a1 由 6天变成 3天,就会改变关键路径。

10分钟了解关键路径及如何求得关键路径相关推荐

  1. 数据分析初学者必备!10分钟搭建RFM客户价值模型,一学就会

    假设你是一家理财公司的市场运营,公司最近推出了一系列新产品,涵盖高.中.低三档,你手里有一份客户名册,你会如何向他们推广? 向所有客户发送统一的推广? 省时省力,但可想而知效果不佳...... 与每一 ...

  2. 今天我是如何10分钟完成30万售后单问题分类的

    1. 背景 (1)需求,数据分析组要对公司的售后维修单进行分析,筛选出top10,然后对这些问题进行分析与跟踪: (2)问题,从售后部拿到近2年的售后跟踪单,纯文本描述,30万条左右数据,5个分析人员 ...

  3. 10分钟内基于gpu的目标检测

    10分钟内基于gpu的目标检测 Object Detection on GPUs in 10 Minutes 目标检测仍然是自动驾驶和智能视频分析等应用的主要驱动力.目标检测应用程序需要使用大量数据集 ...

  4. 10分钟学会php面相对象基础(Ⅰ)

    <?php 声明一个类 class mycar{ etc. //成员方法 } class mycar{ function drive(){ etc. } } ?> 对象的实例化 内存中分栈 ...

  5. 比特币区块的产生速度为何被设定为10分钟?

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 众所周知,比特币的block产生速度被设定为了10分钟,按着官方wiki所说,每一个节点需要一些时间来确认block(& ...

  6. github创建静态页面_如何在10分钟内使用GitHub Pages创建免费的静态站点

    github创建静态页面 Static sites have become all the rage, and with good reason – they are blazingly fast a ...

  7. 自行车车把会吧车刮坏吗_花10分钟即可开始使用车把

    自行车车把会吧车刮坏吗 by Wing Puah 永帕(Wing Puah) 花10分钟即可开始使用车把 (Take 10 minutes to get started with Handlebars ...

  8. 以太坊区块链同步_以太坊69:如何在10分钟内建立完全同步的区块链节点

    以太坊区块链同步 by Lukas Lukac 卢卡斯·卢卡奇(Lukas Lukac) Ethereu M 69:如何在10分钟内建立完全同步的区块链节点 (Ethereum 69: how to ...

  9. es6 ... 添加属性_如何在10分钟内免费将HTTPS添加到您的网站,以及为什么您现在不止需要这样做......

    es6 ... 添加属性 by Ayo Isaiah 通过Ayo Isaiah 如何在10分钟内免费将HTTPS添加到您的网站,以及为什么现在比以往更需要这样做 (How to add HTTPS t ...

最新文章

  1. form表单提交不刷新页面的方法
  2. CenterOS6.5 + OneinStack + Moodel3.23
  3. 连载:阿里巴巴大数据实践—数据建模综述
  4. 每天10分钟用python学数据分析_用Python做数据分析,Numpy,Pandas,matp
  5. java基本数据类型所占长度_java基本数据类型长度详解
  6. Could not load oracle/sql/converter_xcharset/lx20354.glb.
  7. python爬虫微博图片,pyhton爬虫爬取微博某个用户所有微博配图
  8. C/C++[codeup 1942]进制转换
  9. 移动硬盘插入提示需要格式化RAW_移动硬盘数据恢复 – 图文教程
  10. mysql根据出生日期统计各年龄段男女人数
  11. CS下载、安装以及简单使用
  12. 微软MSDN Webcast系列视频教程集锦整理
  13. sundayplayer第一版本开放源代码
  14. 技术分享 | 浅谈滴滴派单算法
  15. 电信免费提速,是不是被中间人攻击啦?
  16. C#:Krypton控件使用方法详解(第五讲) ——kryptonPanel
  17. 计算机网络仿真技术概述,浅谈计算机网络仿真技术及其研究
  18. oracle 一次插入多条
  19. ArcGIS NetWork使用经验整理
  20. 2021-12-21 《聪明的投资者》学习笔记-17.四个非常有启发的案例--失败案例

热门文章

  1. AI——第四次工业革命
  2. 计算机提示没有有效的ip配置,电脑显示“本地连接没有有效的ip配置”怎么解决...
  3. 思科为计算机配置ip命令,Cisco常用配置:IP配置,静态、默认、浮动路由配置,网关等简单配置...
  4. YOLT:You Only Look Twice: Rapid Multi-Scale Object Detection In Satellite Imagery 卫星图像快速多尺度目标检测
  5. 目前刷脸支付市场还处在高速成长期
  6. 读《淘宝数据魔方技术架构解析》有感
  7. Java-时间处理----Joda-time
  8. 解谜游戏 MU Complex 的过关图文攻略 (Episode2)(上)
  9. java @Override is not allowed when implementing interface method
  10. Prompt工程:AI2.0时代打开大模型能力的金钥匙