图的关键路径(AOE网络)

news/2024/11/23 2:15:31/

文章目录

      • AOE网
        • 概念
        • 性质
        • 研究的问题
      • 关键路径
        • 概念
        • 求解的方法
        • 注意事项

AOE网

概念

用顶点表示事件, 边弧表示活动, 边弧上的权值表示活动持续的时间, 这样的带权有向无环图叫AOE网. AOE网常用于估算工程完成时间.

AOE网和AOV网都是有向无环图, 不同之处在于它们的边和顶点所代表的含义不同, AOE网中的边有权值, 而AOV网中的边无权值, 仅代表顶点之间的前后优先关系.

在AOE网中仅有一个入度为零的顶点, 称为开始顶点(源点), 它表示整个工程的开始; 网中也仅存在一个出度为零的顶点, 称为结束顶点(汇点), 它表示整个工程的结束.

性质

  1. 只有在某顶点所代表的事件发生后, 从该顶点出发的各有向边所代表的活动才能开始.
  2. 只有在进入某顶点的各有向边所代表的活动都已结束时, 该顶点所代表的事件才能发生.

研究的问题

  • 完成整个工程至少需要多少时间.
  • 哪些活动是影响工程的关键.

关键路径

概念

从源点到汇点的路径长度最长的路径叫关键路径.

在AOE网中, 有些活动是可以并行进行的. 从源点到汇点的有向路径可能有多条, 并且这些路径长度可能不同. 完成不同路径上的活动所需的时间虽然不同, 但是只有所有路径上的活动都已经完成, 整个工程才能算结束. 因此, 从源点到汇点的所有路径中, 具有最大路径长度的路径称为关键路径, 而把关键路径上的活动称为关键活动.

image-20230118210116337

求解的方法

完成整个工程的最短时间就是关键路径的长度, 即关键路径上各活动花费开销的总和. 这是因为关键活动影响了整个工程的时间, 即若关键活动不能按时完成, 则整个工程的完成时间就会延长. 因此, 只要找到了关键活动, 就找到了关键路径, 也就可以得出最短完成时间.

法一:

关键路径其实就是从源点到汇点最长的路径, 这个关键路径可能不唯一.

如下图, 从源点v1到汇点v9有五条路径, 其中最长的有:

  1. v1 -> v2 -> v5 -> v7 -> v9
  2. v1 -> v2 -> v5 -> v8 -> v9

这两条最长路径即为关键路径.

image-20230118211628631

在关键路径上的活动称为关键活动: a1 a4 a7 a8 a10 a11.

法二:

  • 事件vj开始的最早时间ve(j)

它是指从源点v1到顶点vj的最长路径长度. 事件vj的最早发送时间决定了所有从vj开始的活动能够开工的最早时间.

  • 事件vj开始的最晚时间vl(j)

它是指在不推迟整个工程完成的前提下, 既保证它的后继事件vk在其最迟发送时间vl(k)能够发生时, 该事件最迟必须发生的时间.

  • 活动ai开始的最早时间e(i)

它是指该活动边弧的起点所表示的事件的最早发生时间.

  • 活动ai开始的最晚时间l(i)

它是指该活动边弧的终点所表示的最迟发生时间与该活动所需时间之差.

定义e(i)=l(i)的活动叫关键活动.

image-20230118213942874

求关键路径步骤:

  1. 求ve(i)
  2. 求vl(i)
  3. 求e(i)
  4. 求l(i)
  5. 计算l(i)-e(i)
    在这里插入图片描述

注意事项

  • 只有减少关键活动的时间才可能缩短工期
  • 只有减少所有关键路径上共有的关键活动的时间才可能缩短工期
  • 只有在不改变关键路径的前提下减少关键活动的时间才可能缩短工期

http://www.ppmy.cn/news/13212.html

相关文章

spring boot支持https请求(建议收藏)

文章目录前言一、借助keytools二、详细步骤三、配置spring项目支持https总结前言 博主个人社区:开发与算法学习社区 博主个人主页:Killing Vibe的博客 欢迎大家加入,一起交流学习~~ 众所周知,http是不安全的协议,那么要…

C++模板(函数模板,类模板)的基本使用与非类型模板参数与模板的特化

C模板模板初阶泛型编程函数模板函数模板概念函数模板格式函数模板的原理函数模板的实例化隐式实例化显式实例化&#xff1a;在函数名后的<>中指定模板参数的实际类型模板参数的匹配原则类模板类模板的定义格式类模板的实例化模板进阶非类型模板参数模板的特化概念函数模板…

SDK:主题色配置业务包

涂鸦主题色配置业务包用于配置涂鸦 SDK 中 UI 相关的各种颜色。通过插件生成相关的静态资源文件&#xff0c;以及通过 SDK 动态获取相应色值&#xff0c;使用这些颜色开发页面&#xff0c;从而使 UI 业务包提供的界面和开发者自己搭建的界面达到颜色效果的一致性。 准备工作 …

软件测试复习07:软件测试过程

作者&#xff1a;非妃是公主 专栏&#xff1a;《软件测试》 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录测试计划测试设计测试执行测试监控测试结束软件测试过程主要有5个阶段&#xff1a;测试计划、测试设…

C语言文件操作函数详解——将你的代码永久化 ( •̀ ω •́ )✧

&#x1f384;博客主页&#xff1a;&#x1f390;大明超听话 &#x1f38b;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;关注✍评论 &#x1f38d;系列专栏&#xff1a;&#x1f391;从零开始C语言 &#x1f38a;从0开始数据结构与算法详解 &#x1f386;计算机考研——…

汉(海)明码 | “十六宫格法” 破解汉(海)明码相关题目(附软考经典例题)

文章目录一、前言二、奇偶校验码三、海明码概念四、十六宫格法1.概述2.原理3.填写校验位4.填写数据位5.填写十六宫格首位五、结语一、前言 很多小伙伴在遇到“汉明码”相关的题目时&#xff0c;看了很多的视频&#xff0c;很多文章可能还是云里雾里&#xff0c;作者在备考软考…

Unity编辑器右键菜单实现多平台游戏资源打包—AssetBundle的构建

文章目录&#x1f449;一、初识AssetBundle&#x1f449;二、创建AssetBundle&#x1f449;三、动手操作&#xff1a;实现右键菜单打包AssetBundle&#x1f449;一、初识AssetBundle AssetBundle是Unity提供的一种打包资源的文件格式&#xff0c;比如模型、纹理和音频文件等的各…

C++初阶--stack和queue

目录 stack介绍 stack的使用 stack的模拟实现 queue的介绍 queue的使用 queue的模拟实现 deque priority_queue priority_queue的使用 仿函数 priority_queue的模拟实现 stack介绍&#xff1a; stack是一种容器适配器&#xff0c;专门用在具有后进先出操作的上下文环…