关键路径过程详解、算法及其实现

关键路径(C语言简单实现) 关键路径 本文参考自《大话数据结构》,对关键路径的理解参考自:https://www.jianshu.com/p/1857ed4d8128 在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,用边上的权值表示活动的持续时间,这种有向图的边表示活动的网,我们称之为AOE网 。我们把AOE网中没有入边的顶点称为始点或源点,没有出边的顶点称为终点或汇点。 尽管AOE网和AOV网都是用来对工程建模的,但它们还是有很大的不同,主要体现在AOV网是顶点表示活动的网,只描述活动之间的制约关系,而AOE网是 阅读详情

关键路径详解、算法及其实现

AOE网:在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的持续时间,称这样的有向图叫做边表示活动的网,简称AOE网。AOE网中没有入边的顶点称为始点(或源点),没有出边的顶点称为终点(或汇点)。

AOE网的性质:

⑴ 只有在某顶点所代表的事件发生后,从该顶点出发的各活动才能开始;

⑵ 只有在进入某顶点的各活动都结束,该顶点所代表的事件才能发生。

关键路径:在AOE网中,从始点到终点具有最大路径长度(该路径上的各个活动所持续的时间之和)的路径称为关键路径。

关键活动:关键路径上的活动称为关键活动。关键活动:e[i]=l[i]的活动,两者之差l(i)-e(i)意味着完成活动ai的时间余量。当这个时间余量等于0的时候,也即是l(i)=e(i)的活动,我们称其为关键活动。显然,关键路径上的所有活动都是关键活动,因此提前完成非关键活动并不能加快工程的进度。

  由于AOE网中的某些活动能够同时进行,故完成整个工程所必须花费的时间应该为始点到终点的最大路径长度。关键路径长度是整个工程所需的最短工期。

与关键活动有关的量:

⑴ 事件的最早发生时间ve[k]

  ve[k]是指从始点开始到顶点vk的最大路径长度。这个长度决定了所有从顶点vk发出的活动能够开工的最早时间。

    

⑵ 事件的最迟发生时间vl[k]

  vl[k]是指在不推迟整个工期的前提下,事件vk允许的最晚发生时间。

    

 

⑶ 活动的最早开始时间e[i]

  若活动ai是由弧<vk , vj>表示,则活动ai的最早开始时间应等于事件vk的最早发生时间。因此,有:e[i]=ve[k]

⑷ 活动的最晚开始时间l[i]

  活动ai的最晚开始时间是指,在不推迟整个工期的前提下, ai必须开始的最晚时间。若ai由弧<vk,vj>表示,则ai的最晚开始时间要保证事件vj的最迟发生时间不拖后。因此,有:l[i]=vl[j]-len<vk,vj>

 

示例:

  

所以:

算法描述:

1. 建立AOE网的存储结构。

2. 拓扑排序,并求得ve[]。从源点V0出发,令ve[0]=0,按拓扑有序求其余各顶点的最早发生时间ve[i]。如果得到的拓扑有序序列中顶点个数小于网中顶点数n,则说明网中存在环,不能求关键路径,算法终止;否则执行步骤3。

3. 拓扑逆序,求得vl[]。从汇点Vn出发,令vl[n-1] = ve[n-1],按逆拓扑有序求其余各顶点的最迟发生时间vl[i]。

4. 求得关键路径。根据各顶点的ve和vl值,求每条弧s的最早开始时间e(s)和最迟开始时间l(s)。若某条弧满足条件e(s) = l(s),则为关键活动。

关键路径算法(Critical Path) 这个算法《算法导论》中并没有提及,很多书和博客说的有点奇怪,所以写本文作为笔记。关键路径是什么 关键路径的定义非常简单:就是一个图中,权值之和最大的路径就是关键路径。 为什么有关键路径 关键路径的来源和拓扑排序是一样的,都是将一项较大的工程划分为多个子工程,然后表示子工程之间的关系的。 关键路径和拓扑排序不同之处在于: 拓扑排序强调子工程之间的先后顺序(说依赖关系可能更恰当一些),比如必须做完a才能做c。关键路径在拓扑排序的基础上,还加入了时间关系。这个时间关系不光是子工程之间的,也包括子工程和整体 阅读详情

相关推荐

经典算法之关键路径

问题提出: 设一个工程有11项活动,9个事件,事件V1 ----- 表示整个工程开始,事件V9 ----- 表示整个工程结束。 每个事件的开始必须是它之前的活动已完成。例如:事件V2,V3,V4的开始必须是活动a1,a2,a3完成了。 这时我们会关注两个问题: (1)完成整个项目需要多少时间? (2)哪些活动是影响工程进度的关键? 定义: 关键路径:AOE-网中,从起点到终点最长...

有酒醉三生丶 1万+

关键路径算法

1、拓扑排序的意义? 举个例子先:一个软件专业的学生学习一系列的课程,其中一些课程必须再学完它的基础的先修课程才能开始。如:在《程序设计基础》和《离散数学》学完之前就不能开始学习《数据结构》。这些先决条件定义了课程之间的领先(优先)关系。这个关系可以用有向图更清楚地表示。图中顶点表示课程,有向边表示先决条件。若课程i是课程j的先决条件,则图中有弧。若要对这个图中的顶点所表示的课程进行拓扑排序的话

destiny的专栏 3万+

图之查找关键路径(python)实现

与AOV-网对应的是AOE-网(Activity on Edge)即便表示活动的网。AOE网是一个带权的有向无环图,其中,顶点表示事件,弧表示活动持续的时间。通常,AOE网可以用来估算工程的完成时间。 由于AOE网中的有些活动是可以并行进行的,所以完成整个工程的最短时间是从开始点到完成点的最长路径长度(这里所说的路径长度是指路径上各活动的持续时间之和,不是路径上弧的数目。)路径长度最长的路径叫做关键路径。 求关键路径的算法: (1)输入e条弧(j,k),建立AOE网; (2)从源点v0v_0v0​出发,令v

time_money的博客 7453

图——基本的图算法(四)关键路径

图——基本的图算法(四)关键路径 1. 基本概念 (1)AOV网(Activity On Vertex Network) AOV网是一个表示工程的有向图中,其中的顶点用来表示活动,弧则用来表示活动之间的优先关系。举个简单的例子,假定起床后可以边煮水,边刷牙洗脸,但洗脸要在刷牙后,煮好水,刷好牙洗好脸以后,就可以喝水了,这个活动的AOV图如下(其中的每个顶点都表示一个活动,而顶点之间的弧表示了活动之...

hh66__66hh的博客 3万+

关键路径算法以及实现

最近一直被概率论所虐,今天要交作业于是乎昨天急急忙忙的写完了,里面有个关于关键路径的东西,以前没有见过也感觉没啥用所以一直拖到现在才学。=-=拖延症啊。 什么叫关键路径。 在一个有向图中,如果用顶点表示事件,弧表示活动,弧上对应的权值表示活动持续的时间,那么称这个有向图为AOE网,常用于估算工程的完成时间。 (AOV网:在一个有向图中,

Mylover 2477

【数据结构】什么的图的关键路径?关键路径相关概念?关键路径算法实现?

AOE网中的关键路径,就是完成整个网络所需的最短时间,亦最长路径,AOE网中,往往有若干项活动可以平行的进行,因此,从开始顶点到最后一个顶点的最长路径称为关键路径。

四季轮换叶,一路招摇胜 6621

【算法】基于AOE网的关键路径算法

这是图算法的最后一个比较重要的部分,就是关键路径。什么是关键路径,关键路径有什么用呢?我又去抱了抱度娘的大腿,发现这个是杜邦公司发明的算法,是用来算工期的。在工程上,我们都很讨厌工程的延期,同时一个工程由分为很多的节点,我们不知道哪些节点决定着这个工程是否会延期,每一个部分有没有可以伸缩的时间,于是,这个用来计划工程的关键路径算法就诞生了。看来,数据结构的应用真的不仅仅局限于处理计算机本身的问题上

mgsky1的博客 3456

关键路径与路由算法实现详解

关键路径方法(CPM)是项目管理中用来计划和调度复杂项目的工具。它通过确定项目活动的顺序和持续时间来预测完成整个项目所需的时间。CPM的核心是识别项目中最长的活动序列——关键路径,这个序列上的任何延迟都会导致整个项目的延迟。MFC支持多种标准控件,如按钮、列表框、编辑框等,同时允许开发者自定义控件。在MFC中,控件通常通过类的形式实现,每个类都继承自一个基础控件类,比如CButtonCListBoxCEdit等。开发者可以通过消息映射机制响应控件事件,实现具体的逻辑。

weixin_32312889的博客 1254

C语言 关键路径(求解过程及算法实现)

在项目管理中,关键路径是一个非常重要的概念。通过计算关键路径可以确定项目最短完成时间,并对任务进行优先排序。同时,关键路径也能够帮助项目经理识别风险并采取相应的措施以确保项目能够按时完成。

m0_73070900的博客 4129

超级超级细的CLIP官方模型解读及代码逐行讲解

本文详细解析了OpenAI开源的CLIP模型代码架构。文章首先介绍模型概念,包括训练时通过对称损失计算图像-文本相似度,预测时通过余弦相似度匹配最佳文本。随后重点解析各模块代码实现:LayerNorm改进、QuickGELU激活函数、Transformer编码器结构、ViT图像编码器的特征提取过程、文本编码器的掩码机制和特征投影。最后阐述CLIP整体架构如何整合视觉和文本编码器,并详细说明了特征归一化和相似度计算的关键实现。全文通过代码级解读帮助读者深入理解CLIP模型的实现细节。

m0_64595440的博客 2425

【脑电分析系列】第7篇:频域分析基石 — 功率谱密度(PSD)的计算与常见方法对比

本文探讨了脑电图(EEG)频域分析的核心方法——功率谱密度(PSD)。通过对比基于快速傅里叶变换的周期图法和更稳健的Welch's方法,指出后者通过分段、加窗和平均处理,能有效降低估计方差,更适合分析非稳态的脑电信号。文章详细解析了关键参数设置对频率分辨率和统计稳定性的影响,并提供了Python计算实现。PSD分析将复杂的脑电信号转换为直观的频域特征,为研究认知功能和神经疾病提供重要依据。

qq_32516809的博客 1804

【算法专题】关键路径及代码实现

关键路径 一. 问题描述 概念 一项工程计划可以被看成一个有向图,图中的顶点表示事件,边代表活动,边上的权值代表完成这项活动需要的时间,这样的有向图称为AOE网。 表示实际工程计划的AOE网应该是无环的,在正常情况下存在唯一的开始顶点(源点)和唯一的完成顶点(汇点)。 AOE网中的某些活动可以并行进行,完成工程的最短时间是从开始顶点到完成顶点的最长路径长度。路径长度最长的路径为关键路径。关键路径上所有活动都叫做关键活动。我们只有减少关键路径上活动用时才能加快工程的进度。 我们的问题就是输

weixin_42638946的博客 1万+

TMS320F280049C 学习笔记11 控制率加速器 CLA 例程

总结了TI官方在C2000Ware_3_01_00_00版本中提供的7个与CLA相关的例程。

whyorwhnt的专栏 1万+

图的关键路径算法

图的关键路径

qq_38154295的博客 2410

PYNQ开发板使用-使用DMA进行数据搬移(Simple DMA transfer 模式)

该篇是学习使用PYNQ开发板,实际上是对ZYNQ PL端AXI_CDMA 核的应用。实验步骤参照官网的教程,一步一步地做,但是由于在硬件资源布置方面与官方教程稍有出入,所以在SDK的源码里也进行了修改。 AXI_CDMA特性: 如果是使用ZYNQ 7系列芯片(可能其他Xilinx也是通用的),xilinx的AXI_CDMA 核有两种传输模式:轮询(poll)和中断(...

YGLeeeon的博客 3521

【实战解析】Ubuntu双网卡冲突:如何解决同一网段下网关无法访问及上网问题

本文深入解析Ubuntu服务器双网卡配置在同一网段时引发的路由冲突问题,导致网关无法ping通及无法上网。通过分析路由表与Metric值原理,提供使用route命令调整优先级及修改Netplan配置文件的实战解决方案,确保主次路由明确,一劳永逸解决网络冲突。

f9g0h的博客 280

关键路径的算法实现(C++)

对于关键路径算法实现了一下,下面附上代码 相比于原博文 ,做出了一些调整. 添加链接描述 #include <stdio.h> #include <stdlib.h> #define MaxVerNum 20 int visited[MaxVerNum];//访问标志 typedef char VertexType; typed...

Zyong139064359的博客 2969

句向量(句嵌入)模型sent2vec的训练及应用

本文讨论NLP中的句向量模型(sent2vec),也就是将一个完整的句子映射成一个实数向量的技术。这方面已经发表的成果也是比较多的,本文中所涉及的技术主要源自NAACL 2018的一篇论文,其中提出的sent2vec模型可以理解为词嵌入技术中经典的CBOW方法的扩展,该所谓的扩展中一个重要改进就是引入了n-gram

白马负金羁 1万+

数据结构与算法之关键路径

数据结构与算法之关键路径

weixin_47225948的博客 2055

风电光伏功率预测竞赛精华总结:技术解析与实战经验

本文深度解析新能源功率预测竞赛的技术要点与实战经验。首先介绍了风电、光伏功率预测对电网调度优化、降低运营风险的重要性,以及多个竞赛的基本概况。在数据特征分析部分,详细探讨了气象预报数据和功率数据的特征,包括时间周期性、数据质量问题及处理方法。针对异常值检测、数据标准化和特征工程(如时间特征、统计聚合特征、风速风向特征和滞后特征)提供了具体的技术实现方案。文章为新能源功率预测提供了实用的技术指导,对相关竞赛和实际应用具有重要参考价值。

算法工程师 206

双Orin PCIe RC&EP模式互通

orin pcie 互通

乐于分享 3877

拓扑排序和关键路径算法----关键路径算法 (C语言实现)

在学习了拓扑排序之后,我们可以开始学习关键路径了。拓扑排序可以有多个起点和多个终点,跟拓扑排序不同的是,关键路径只能有一个起点、一个终点。 我们使用带有权重的有向图表示,8 -> 0 -> 1 -> 4 -> 5 -> 7这条红色的路径就是关键路径。关键路径的特征是:从起点 (起点是唯一的,入度为0) 到终点 (终点是唯一的,出度为0) 的一个有向图中,该路径上的弧 (有向图的边称之为“弧”) 的权重的和最大。关键路径可能不是唯一的,但不同的关键路径上的权重之和是相同的。 如果

wangeil007的博客 5058

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数据结构学习(二):AOE算法求解关键路径

AOE算法求解关键路径 问题描述: 输入顶点和边,得到有向图,求出关键路径。 . 关键路径通常(但并非总是)是决定项目工期的进度活动序列。它是项目中最长的路径,即使很小浮动也可能直接影响整个项目的最早完成时间。关键路径的工期决定了整个项目的工期,任何关键路径上的终端元素的延迟在浮动时间为零或负数时将直接影响项目的预期完成时间(例如在关键路径上没有浮动时间)。 但特殊情况下,如果...

南木的博客 5774

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JSP中求关键路径算法及java实现

在JSP问题中,关键路径决定着车间作业的完工时间,通过引入基于关键路径的邻域规则,使邻域解大大减少,从而大大减少优化过程的复杂度。 关键块是关键路径中工序在同一台机器连续组成的工序集合。

dongdongup的专栏 1539

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数据结构算法之关键路径

关键路径 文章目录: 基本概念 关键路径的构造过程 关键路径的特点 1.基本概念 首先要了解AOE网和关键路径的基本概念 这里详细说明一下,AOE网和AOV网的区别和联系: 联系:都代表的是有向无环图。 区别: 1.AOE网的边表示活动,边有权值,边一般代表的是活动持续时间,顶点表示事件,事件是图中新活动开始或者旧活动结束的标志。 2.AOV网的顶点表示活动,边无权值,边代表活动之间的先后关系。 3.对于一个表示工程的AOE网,只存在一个入度为0的顶点,称为源点,表示整个工程的开始;也只存在一个出度为

qq_43607916的博客 6763
上一篇: 拓扑排序(java)
下一篇: 马踏棋盘问题(骑士周游问题)及其优化算法java实现
mlee1018
博客等级 码龄12年 36粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值