首页 > 其他分享 >AOE网及其求解关键路径

AOE网及其求解关键路径

时间:2024-08-07 12:59:42浏览次数:7  
标签:AOE 最早 求解 开始 路径 12 时间 最晚 活动

全称

Activity on Edge Network 边活动网

特点

仅存在 有向无环图 

作用

用于记录完成整个工程至少花费的时间 ==> 哪条路径最耗时?也就是“ 关键路径 ”

AOE网元素介绍

关键活动

关键路径上的活动称为关键活动 , 关键活动是不允许拖延的(普通活动可以拖延,拖延时间=最晚开始时间-最早开始时间),因为已经是耗时最长的一条路径,再拖延就耽误了工期。也就是说,关键活动的最早开始时间=最晚开始时间 

 

如何求得关键路径

先计算事件的最早开始时间

起点的最早开始时间=最晚开始时间=0

从前往后看,该事件的最早开始时间ve=max{原本的最早开始时间,前驱事件的ve+活动耗费的时间}

先初始化所有点的最早开始时间为0;

选取入度为0的点V1,V2的最早开始时间=max{0,0+2}=2,V3的最早开始时间=max{0,0+5}=5。删除V1及其出度边;

选取入度为0的点V2,V4的最早开始时间=max{0,2+3}=5,V3的最早开始时间=max{5,2+1}=5。删除V2及其出度边;

选取入度为0的点V3,V4的最早开始时间=max{5,5+3}=8,V6的最早开始时间=max{0,5+1}=6,V5的最早开始时间=max{0,5+4}=9。删除V3及其出度边;

选取入度为0的点V4,V5的最早开始时间=max{9,8+1}=9,V6的最早开始时间=max{6,8+4}=12。删除V4及其出度边;

选取入度为0的点V5,V6的最早开始时间=max{12,9+1}=12。删除V5及其出度边;

最后只剩V6。

接着计算事件的最晚开始时间

终点的最早开始时间=最晚开始时间=12

从后往前看,该事件的最晚开始时间vl=min{原本的最晚开始时间,后驱事件的vl-活动耗费的时间}

先初始化所有点的最晚开始时间为12;

选取出度为0的点V6,V4的最晚开始时间=min{12,12-4}=8,V3的最晚开始时间=min{12,12-1}=11,V5的最晚开始时间=min{12,12-1}=11。删除V6及其入度边;

 选取出度为0的点V5,V4的最晚开始时间=min{8,11-1}=8,V3的最晚开始时间=min{11,11-4}=7。删除V5及其入度边;

 选取出度为0的点V4,V2的最晚开始时间=min{12,8-3}=5,V3的最晚开始时间=min{7,8-3}=5。删除V4及其入度边;

 选取出度为0的点V3,V2的最晚开始时间=min{5,5-1}=4,V1的最晚开始时间=min{12,5-5}=0。删除V3及其入度边;

选取出度为0的点V2,V1的最晚开始时间=min{0,4-2}=0。删除V2及其入度边;

只剩下V1。

最终结果为:

 把每个事件的最早开始时间ve和最晚开始时间vl汇总成表格:

继续计算活动的最早开始时间

活动的最早开始时间=该活动前驱事件的最早开始时间

活动a、b的最早开始时间就是事件V1的最早开始时间0 

活动c、d的最早开始时间就是事件V2的最早开始时间2

活动e、g、f的最早开始时间就是事件V3的最早开始时间5

活动h、i的最早开始时间就是事件V4的最早开始时间8

活动j的最早开始时间就是事件V5的最早开始时间9

再计算活动的最晚开始时间

活动的最晚开始时间=该活动后驱事件的最晚开始时间-该活动耗时

活动a的最晚开始时间=事件V2的最晚开始时间-2=4-2=2

活动b的最晚开始时间=事件V3的最晚开始时间-5=5-5=0

活动c的最晚开始时间=事件V3的最晚开始时间-1=5-1=4

活动d的最晚开始时间=事件V4的最晚开始时间-3=8-3=5

活动e的最晚开始时间=事件V4的最晚开始时间-3=8-3=5

活动f的最晚开始时间=事件V5的最晚开始时间-4=11-4=7

活动g的最晚开始时间=事件V6的最晚开始时间-1=12-1=11

活动h的最晚开始时间=事件V5的最晚开始时间-1=11-1=10

活动i的最晚开始时间=事件V6的最晚开始时间-4=12-4=8

活动j的最晚开始时间=事件V6的最晚开始时间-1=12-1=11

找到关键活动

根据刚刚所求结果得出活动b、e、i是关键活动,其最早开始时间=最晚开始时间。

连接关键活动

所以关键路径就是由关键活动所连起来的这条路径。 

注意:关键路径可能有多条!!! 

标签:AOE,最早,求解,开始,路径,12,时间,最晚,活动
From: https://blog.csdn.net/a486368464/article/details/140928560

相关文章

  • 记一次SpringBoot配置静态资源路径找不到资源的解决
    静态资源路径配置代码问题在nacos里面配置路径时,路径的最后一个/没带,导致无法查询到静态资源,查询资料得到的处理结果是也就是说有是会查询子目录的,没有只查询这个目录API解释翻译:添加一个或多个资源位置,从中提供静态内容。每个位置都必须指向一个有效的目录。多个位置......
  • 代码随想录算法训练营第62天 | 最短路径:dijkstra(堆优化版)+ Bellman_ford算法
    47.参加科学大会https://kamacoder.com/problempage.php?pid=1047dijkstra(堆优化版)精讲https://www.programmercarl.com/kamacoder/0047.参会dijkstra堆.html#思路94.城市间货物运输Ihttps://kamacoder.com/problempage.php?pid=1152Bellman_ford算法精讲https://www.pr......
  • 无法在 Gekko 中求解 MINLP(警告不再有可能的试验点且没有整数解)
    我对python中的Gekko包非常陌生。我的目标是最大化'Q_factor'我已有的训练有素的TensorFlow模型(.keras)。我在稳态模式(m.options.IMODE=2)下使用Gekko进行参数估计,并使用(m.options.SOLVER=1)进行以下一些约束:我的MINLP......
  • wordpress教程栏目给大家介绍自定义wordpress文件上传路径的方法
    自WordPress3.5版本开始,隐藏了后台媒体设置页面的“默认上传路径和文件的完整URL地址”选项,可以通过下面的代码将该选项调出来。将下面的代码添加到当前主题functions.php文件中,就可以调出该选项:if(get_option('upload_path')=='wp-content/uploads'||get_op......
  • 探索编程世界:大学新生的最佳入门路径与学习方法
    编程已成为当代大学生的重要技能,不仅为计算机科学专业的学生提供了核心竞争力,也为其他领域的学生打开了通往创新和创造的门。面对多种多样的编程语言和学习资源,许多新生常常感到迷茫:应该选择哪种编程语言?如何制定有效的学习计划?如何避免常见的学习陷阱?本文将为大学新生提供......
  • 市场主流 AI 视频生成技术的迭代路径
       AI视频生成技术的迭代路径经历了从GAN+VAE、Transformer、DiffusionModel到Sora采用的DiT架构(Transformer+Diffusion)等多个阶段,每个阶段的技术升级都在视频处理质量上带来了飞跃性的提升。这些技术进步不仅推动了AI视频生成领域的快速发展,也为未来的应用场景提供了更......
  • 蒙特卡洛模拟(3)————求解有约束的非线性规划问题
    目录前言一、问题提出二、蒙特卡罗模拟的大体思路1.求出每个变量的大致范围2.生成随机数进行模拟试验三、手动计算每个变量的大致范围1.处理等式问题————进行降维2.处理不等式问题————得到大致范围(1)先处理简单的约束,得到变量范围(2)对复杂的约束进行放缩,得到变量范围四、代......
  • 路径规划之RRT
    Rapidlyexploringrandomtree(RRT/快速拓展随机树)优势通过对状态空间中的采样点进行碰撞检测,避免了对空间的建模,能够有效解决高维空间和复杂约束条件下的路径求解问题。核心思想通过随机采样,在自由空间中快速构建一个树形结构,以探索可能的路径。在每次迭代中,算法随机生成......
  • 利用琼斯矩阵求解一般偏振问题
           ......
  • 关于C语言中素数的求解
    什么是素数?一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做素数。(素数=质数)在C语言中求解素数的几种方法。方法一:直接试数法(从1开始逐一试数)例:求解100到200之间的素数。#include<stdio.h>intmain(){ inti=0; intcount=0; for(i=100;i<=......