图的应用之关键路径

1.AOV网(Activity On Vertex NetWork)

用DAG图表示一个工程。顶点表示活动, < V i , V j > <V_i,V_j> <Vi,Vj>表示 V i V_i Vi必须先于活动 V j V_j Vj进行

2.拓扑排序

(1)拓扑排序定义
在图论中,由一个DAG图的顶点组成的序列,当且仅当满足下列条件时,称为该图的一拓扑排序
1)每个顶点出现且出现一次
2)若顶点A在序列中排在顶点B的前面,则在图中不存在从顶点B到顶点A 的路径

(2)AOV/AOE网的拓扑排序步骤
1)从AOV/AOE网中选择一个没有前驱(入度为0)的顶点并输出
2)从网中删除该顶点和所有以它为起点的有向边
3)重复1)和2)两个步骤直到AOV/AOE网为空

(3)AOV/AOE网的逆拓扑排序
1)从AOV/AOE网中选择一个没有后继(出度为0)的顶点并输出
2)从网中删除该顶点和所有以它为终点的有向边
3)重复1)和2)两个步骤直到AOV/AOE网为空

3.AOE网(Activity On Edge NetWork)

(1)AOE网的定义
在带权DAG图中,以顶点表示事件,以有向边表示活动,以边上的权值表示完成该活动的开销,称之为用边表示活动的网络,简称AOE网(Activity On Edge NetWork)

(2)AOE网的性质
1)只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始
2)只有在进入某顶点的各有向边所代表的活动都已结束时,该顶点所代表的事件才能发生,另外,有些活动是可以合并的

(3)源点和汇点
1)源点:在AOE网中仅有一个入度为0的顶点,称为开始顶点(源点)表示整个工程的开始
2)汇点:也仅有一个出度为0的顶点,称为结束顶点(汇点),表示整个工程的结束

4.关键路径

(1)关键路径和关键活动的定义
从源点到汇点的有向路径可能有多条,所有路径中,具有最大路径长度的路径称为关键路径,把关键路径上的活动称为关键活动

(2)关键路径和关键活动的含义
关键路径的长度就是完成整个工程的最短时间
1)若关键活动耗时增加,则整个工程的完成时间就会延长
2)缩短关键活动的时间,可以缩短整个工程的工期。但是缩短到一定程度,关键活动可能会变成非关键活动
3)AOE网可能有多条关键路径,只提高一条关键路径上的关键活动速度并不能缩短整个工程的工期,只有加快那些包括在所有关键路径上的关键活动才能达到缩短工期的目的

5.关键路径的计算

(1)相关概念

概念描述
事件 V k V_k Vk的最早发生时间 V E ( k ) VE(k) VE(k)决定了所有 V k V_k Vk开始的活动能够开工的最早时间
事件 V k V_k Vk的最晚发生时间 V L ( k ) VL(k) VL(k)指在不推迟整个工程完成的前提下,该事件最迟必须发生的时间
活动 A i A_i Ai的最早开始时间 E ( i ) E(i) E(i)指向该弧的弧尾所表示事件的最早发生时间,即 E ( i ) = V E ( k ) E(i)=VE(k) E(i)=VE(k)
活动 A i A_i Ai的最晚开始时间 L ( i ) L(i) L(i)指向该弧的弧头所表示事件的最晚发生时间与该活动所需时间之差,即 L ( i ) = V L ( k ) − W e i g h t ( i ) L(i)=VL(k)-Weight(i) L(i)=VL(k)Weight(i)
活动 A i A_i Ai的时间余量 D ( i ) D(i) D(i)指在不增加完成整个工程所需总时间的情况下,活动 A i A_i Ai可以拖延的时间,时间余量为零的活动就是关键活动

(2)关键路径的计算步骤
1)按拓扑排序序列,依次求各个顶点的 V E ( k ) VE(k) VE(k)
V E ( 源点 ) = 0 VE(源点)=0 VE(源点)=0
V E ( k ) = M a x { V E ( j ) + W e i g h t ( V j , V k ) } VE(k)=Max\{VE(j)+Weight(V_j,V_k)\} VE(k)=Max{VE(j)+Weight(Vj,Vk)} V j V_j Vj V k V_k Vk的任意前驱
2)按逆拓扑排序序列,依次求各个顶点的 V L ( k ) VL(k) VL(k)
V L ( 汇点 ) = V E ( 汇点 ) VL(汇点)=VE(汇点) VL(汇点)=VE(汇点)
V L ( k ) = M i n { V L ( j ) − W e i g h t ( V j , V k ) } VL(k)=Min\{VL(j)-Weight(V_j,V_k)\} VL(k)=Min{VL(j)Weight(Vj,Vk)} V j V_j Vj V k V_k Vk的任意后继
3)求所有活动的最早发生时间 E ( i ) E(i) E(i)
若边 < V k , V j > <V_k,V_j> <Vk,Vj>表示活动 A i A_i Ai,则 E ( i ) = V E ( k ) E(i)=VE(k) E(i)=VE(k)
4)求所有活动的最晚发生时间 L ( i ) L(i) L(i)
若边 < V k , V j > <V_k,V_j> <Vk,Vj>表示活动 A i A_i Ai,则 L ( i ) = V L ( j ) − W e i g h t ( V k , V j ) L(i)=VL(j)-Weight(V_k,V_j) L(i)=VL(j)Weight(Vk,Vj)
5)求所有活动的时间余量 D ( i ) D(i) D(i)
D ( i ) = L ( i ) − E ( i ) D(i)=L(i)-E(i) D(i)=L(i)E(i)
6)时间余量为0的活动就是关键活动,关键路径由关键活动组成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/782922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同一个主机配置多个SSH key

使用git时&#xff0c;我们可能一个git客户端使用多个git服务器&#xff0c;比如github&#xff0c;自建gitlab&#xff0c;gitee&#xff0c;为了防止提交混乱&#xff0c;所以需要一一对应生成公私钥。 第一步&#xff1a; 使用ssh-keygen生成多对密钥对&#xff0c;比如&…

静态NAT配置

静态NAT配置 配置命令&#xff08;详细&#xff09;&#xff1a;ip nat inside source static 协议 内部IP地址 端口 外部IP地址 端口 extendable 例如下图&#xff1a; 配置命令&#xff1a; 第一步&#xff08;说明通告地址&#xff09;&#xff1a;ip nat inside source sta…

Chrome浏览器 安装Vue插件vue-devtools

前言 vue-devtools 是一个为 Vue.js 开发者设计的 Chrome 插件。它可以让你更轻松地审查和调试 Vue 应用程序。与普通的浏览器控制台工具不同&#xff0c;Vue.js devtools 专为 Vue 的响应性数据和组件结构量身定做。 1. 功能介绍 组件树浏览&#xff1a;这个功能可以让你查…

信息工程大学第五届超越杯程序设计竞赛(同步赛)题解

比赛传送门 博客园传送门 c 模板框架 #pragma GCC optimize(3,"Ofast","inline") #include<bits/stdc.h> #define rep(i,a,b) for (int ia;i<b;i) #define per(i,a,b) for (int ia;i>b;--i) #define se second #define fi first #define e…

MySQL 索引失效场景总结

查询条件有 or 假设在 customer_name 字段设置了普通索引&#xff0c;执行以下 sql&#xff1a; # type: ref, possible_keys: idx_customer_name, key: idx_customer_name # idx_customer_name 索引生效 explain select id, customer_name, company_name from t_user_info w…

babyAGI(3)-COOPERATIVE_MODE

babyAGI中有cooperative模式&#xff0c;其核心是调用ray库&#xff0c;实现分布式多进程执行任务。 从BabyAGI的源码中&#xff0c;我们可以学习ray core的使用。 1. Ray核心概念 1.1 Tasks Ray 允许在单独的 Python 工作线程上异步执行任意函数。 这些异步执行的函数被称为…

JavaSE:继承和多态(下篇)

目录 一、前言 二、多态 &#xff08;一&#xff09;多态的概念 &#xff08;二&#xff09;多态实现条件 &#xff08;三&#xff09;多态的优缺点 三、重写 &#xff08;一&#xff09;重写的概念 &#xff08;二&#xff09;重写的规则 &#xff08;三&#xff09;重…

Ubuntu上安装d4rl数据集

Ubuntu上安装d4rl数据集 D4RL的官方 github: https://github.com/Farama-Foundation/D4RL 一、安装Mujoco 1.1 官网下载mujoco210文件 如果装过可以跳过这步 链接&#xff1a;https://github.com/deepmind/mujoco/releases/tag/2.1.0 下载第一个文件即可。我这里是在windo…

专升本-信息安全

信息安全&#xff1a; 1.信息安全的基本属性&#xff1a;保密性&#xff0c;完整性&#xff0c;可用性 信息本身的安全是指保证信息的保密性&#xff08;非授权用户不能访问信息&#xff09;&#xff0c;完整性&#xff08;信息正确&#xff0c;完整&#xff0c;违背篡改&…

win10怎么设置屏幕保护,win10设置屏幕保护方法

电脑屏幕保护的作用主要有三个,第一,可以防止电脑因无人操作而使显示器长时间显示同一个画面,导致加速老化而缩短显示器寿命。第二,防止你离开电脑后屏幕上的隐私被偷窥。第三,大幅度降低屏幕亮度,有一定的省电作用。而Win10系统中呢是可以设置屏幕保护的,如果你想了解具…

uniapp微信小程序消息订阅详解

一、微信公众平台申请订阅模板 注意&#xff1a;订阅信息 这个事件 是 当用户 点击的时候触发 或者 是 支付成功后触发&#xff0c; 用户勾选 “总是保持以上选择&#xff0c;不再询问” 之后或长期订阅&#xff0c;下次订阅调用 wx.requestSubscribeMessage 不会弹窗&#xf…

FastAPI+React全栈开发11 开始使用FastAPI

Chapter03 Getting Started with FastAPI 11 Summary FastAPIReact全栈开发11 开始使用FastAPI Arguably the most important part of our FARM stack is going to be the application programming interface(API). The AIP is the brain of our system, it implements the …

【最后一天!】月底 京东云服务器特价 价格更低 幻兽帕鲁、雾锁王国 32G仅210/3个月

本文纯原创&#xff0c;侵权必究 【云服务器推荐】价格对比&#xff01;阿里云 京东云 腾讯云 选购指南视频截图 《最新对比表》已更新在文章头部—腾讯云文档&#xff0c;文章具有时效性&#xff0c;请以腾讯文档为准&#xff01; 【腾讯文档实时更新】2024年-幻兽帕鲁服务器…

CSP:内容安全策略详解

在当今的网络安全环境中&#xff0c;内容安全策略&#xff08;Content Security Policy&#xff0c;简称CSP&#xff09;扮演着至关重要的角色。CSP是一种由浏览器实施的安全机制&#xff0c;旨在减少和防范跨站脚本攻击&#xff08;XSS&#xff09;等安全威胁。它通过允许网站…

这次彻底搞懂类加载器吧!!!

一、类加载过程 类加载过程分为&#xff1a;加载->链接->初始化 链接过程具体细分为&#xff1a;验证->准备->解析 二、类加载器 1、定义 类加载器是一个加载类的对象&#xff0c;它工作在类加载过程中的加载这一步&#xff0c;通过类的全类名获得该类的二进制…

蓝桥杯2014年第十三届省赛真题-猜字母

一、题目 猜字母 把abcd...s共19个字母组成的序列重复拼接106次&#xff0c;得到长度为2014的串。 接下来删除第1个字母&#xff08;即开头的字母a&#xff09;&#xff0c;以及第3个&#xff0c;第5个等所有奇数位置的字母。 得到的新串再进行删除奇数位置字母的动作。如此…

6.6物联网RK3399项目开发实录-驱动开发之LED灯的使用(wulianjishu666)

90款行业常用传感器单片机程序及资料【stm32,stc89c52,arduino适用】 链接&#xff1a;https://pan.baidu.com/s/1M3u8lcznKuXfN8NRoLYtTA?pwdc53f LED 使用 前言 AIO-3399J 开发板上有 2 个 LED 灯&#xff0c;如下表所示&#xff1a; 可通过使用 LED 设备子系统或者直…

使用 CSS 实现多立方体悬停颜色效果实现

使用 CSS 实现多立方体悬停效果实现 效果展示 CSS 知识点 filter 属性的 hue-rotate 值运用使用 CSS 实现立方体 场景布局分析 从效果图可以看出&#xff0c;要实现 3*3 的立方体集合&#xff0c;我们需要考虑一下怎么安排小立方体的布局。我这里的做法是使用span实现单个小…

CSS(四)---【链接美化、浮动布局、三种定位】

零.前言 本篇主要讲解<a>标签链接美化、页面的浮动布局&#xff0c;以及“相对定位”、“绝对定位”、“固定定位”三种定位。 关于其它请查看作者其它文章&#xff1a; CSS(一)---【CSS简介、导入方式、八种选择器、优先级】-CSDN博客 CSS(二)---【常见属性、复合属…

Java常用Lambda表达式与Stream流应用

定义&#xff1a; Lambda表达式是一种在编程语言中表示匿名函数的方法。它可以在需要函数作为参数的地方使用&#xff0c;并且可以简洁地表示一个函数的定义。Lambda表达式最初由函数式编程语言引入&#xff0c;但现在已经成为许多编程语言中的常见特性。 基本语法&#xff1a;…