关键路径与AOE网

【数据结构】AOE网——关键路径 相关概念 AOE网 AOE网(Activity On Edge Network)用边表示活动,用顶点表示事件(活动的完成)。边是带权的,表示活动需要的时间。 源点与汇点 源点:入度为0的点,表示一个工程的开始。 汇点:出度为0的点,表示一个工程的结束。 关键活动与关键路径 在AOE网中,从源点到汇点最长的路径称为关键路径,在关键路径上的活动称为关键活动。 因为AOE网中的活动是可以并行进行的,所以整个工程的时间开销,其实是最长路径的时间开销。即关键路径制约整个工程的工期。   >_< 阅读详情

        在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,用边上的权值表示活动的持续时间,这种有向图的边表示活动的网,我们叫做AOE网(Activity On Edge Network)。AOE网中没有入度的顶点称为源点或始点,没有出度的顶点称为终点。AOE网是要建立在活动之间制约关系没有矛盾的基础之上,再来分析完成整个工程至少需要多少时间。

        我们把路径上各个活动所持续的时间之和叫做路径长度,从源点到终点具有最大长度的路径叫做关键路径,在关键路径上的活动叫关键活动。我们找到所有活动的最早开始时间和最晚开始时间,如果它们相等,则此活动是关键活动,活动间的路径为关键路径。如果不相等,则就不是。


       我们定义一下四个参数:

               1.事件的最早发生时间 etv,即顶点Vk的最早发生时间;

               2.事件的最晚发生时间 ltv,即顶点Vk的最晚发生时间;

               3.活动的最早开工时间 ete,边Ak的最早发生时间;

               4.活动的最早开工时间 lte,边Ak的最晚发生时间;

       我们由1和2可以求得3和4,然后在根据 ete 和 lte 是否相等来判断活动k是否为关键活动。

     

      求事件的最早发生时间 etv[i] 的过程,就是从头到尾找拓扑序列的过程,因此,在求关键路径之前,需要先调用一次拓扑序列算法的代码来计算 etv[i] 和拓扑序列列表。

代码如下:

//边表结点
typedef struct EdgeNode  
{
	int adjvex;//邻接点域,存储该顶点对应的下标
	int weight;//存储权值
	struct EdgeNode * next;
}EdgeNode;

//顶点表结构
typedef struct VertexNode 
{
	int in;//顶点入度
	int data;//顶点域,存储顶点信息
	EdgeNode * firstedge;//边表头指针
}VertexNode;

typedef struct  GraphAdjList
{
	VertexNode adjList[MAXVEX];
	int vertexNum;
}GraphAdjList;

int etv[VERTEX],ltv[VERTEX];//事件最早发生时间和最晚发生时间
int stack2[VERTEX];//用于存储拓扑序列的栈
int top2;//指向stack2的栈顶

void TopologicalSort(GraphAdjList GL)
{
	EdgeNode * e;
	int i,k,gettop;
	int top = -1;//指向栈顶
	int count = 0;//统计输出顶点的个数
	int stack[MAXVEX];//用栈来存储入度为0的顶点

	for (i = 0; i < GL.vertexNum; i++)
		if (GL.adjList[i].in == 0)
			stack[++top] = i;//将入度为0的顶点入栈
	top2 = -1;
	for (i = 0; i < GL.vertexNum; i++)
		etv[i] = 0;//初始化为0

	while (top != -1)
	{
		gettop = stack[top--];//出栈
		count++;
		stack2[++top2] = gettop;//将弹出的顶点序号压入拓扑序列的栈
		e = GL.adjList[gettop].firstedge;
		while (e != NULL)//遍历此顶点的弧表
		{
			k = e->adjvex;
			if (!(--GL.adjList[k].in))//入度为0则入栈
				stack[++top] = k;
			if ((etv[gettop] + e->weight) > etv[k])//求各顶点事件最早发生时间值
				etv[k] = etv[gettop] + e->weight;
			e = e->next;
		}
	}
	if (count < GL.vertexNum)
		printf("有回路");
}

void CriticalPath(GraphAdjList GL)
{
	EdgeNode * e;
	int i,gettop,k,j;
	int ete,lte;//声明活动最早发生时间和最迟发生时间
	TopologicalSort(GL);	//求拓扑序列,计算数组etv和stack2的值
	for (i = 0; i < GL.vertexNum; i++)
		ltv[i] = etv[GL.vertexNum - 1];//初始化ltv
	while (top2 != -1)//计算ltv
	{
		gettop = stack2[top2--];//将拓扑序列出栈,后进先出
		e = GL.adjList[gettop].firstedge;
		while (e != NULL)
		{//求各顶点事件的最迟发生时间ltv
			k = e->adjvex;
			if (ltv[k] - e->weight < ltv[gettop])
				ltv[gettop] = ltv[k] - e->weight;
			e = e->next;
		}
	}
	for (j = 0; j < GL.vertexNum; j++)
	{
		e = GL.adjList[j].firstedge;
		while (e != NULL)
		{
			k = e->adjvex;
			ete = etv[j];	//活动最早发生时间
			lte = ltv[k] - e->weight;//活动最迟发生时间
			if (ete == lte)//两者相等即在关键路径上
				printf("<V%d,V%d> length: %d, ",
                                   GL.adjList[j].data,GL.adjList[k].data,e->weight);
			e = e->next;
		}
	}
}
可以结合下图分析:



选择题快速求解AOE网的关键路径 #引言 求解AOE网关键路径时,书上的方法为先从源点到汇点求解事件最早发生时间ve,再从汇点到源点求解事件最迟发生时间vl,再利用ve和vl求解每个活动的最早开始时间e(i)和最迟开始时间l(i),e(i)和l(i)相等的活动则为关键活动,他们一起组成的从源点到汇点的路径即为关键路径。 王道的书上在举例子的时候,备注了一小行话:“如果这是一道选择题,根据上述求ve()的过程就已经能知道关键路径。”,但并没有展开讲如何确定。本文就补充说明一下。 #求法 这里直接举例给出求法 如下AOE图,我们从V1 阅读详情

相关推荐

AOE网关键路径求解例题

AOE网关键路径求解例题 三道 首先明确顶点是事件,边是活动。 1 2 3 解题技巧: 先求Ve 从前往后推,取活动之和最大的 作为顶点(事件)最早发生时间; 求Vl 通过Ve知道最后汇点的最晚发生时间(和汇点的最早发生时间相等),从后往前推,用顶点和活动做差取结果最小 作为顶点最晚发生时间。这里典型的例子就是V4,应该用V6的最晚发生时间减去a9和a6而不是直接减去a7,因为V6-a7 = 10 > 7 ,而我们要的是所有可能中最小的值,和求Ve时候相反。 接着求e活动的最早发生时

Blog 1万+

关键路径——AOE-网

与AOV-网有所不同,AOE-网是以顶点存储事件,以弧表示活动的带权的有向无环图权值表示活动的持续时间。一般的工程中除了子工程之间存在着先决关系外,每一项子工程或活动的完成都需要特定时间。各个子工程的完成时间参差不齐,为了统筹一个工程的人力与物力资源更好的分配于各项活动,产生了用于评估工程用时的AOE-网的关键路径算法。总之,AOE-网的关键路径算法用于评估整个工程的持续时间以及判断哪些活动是影响整个工程的关键。

m0_72579201的博客 2853

AOE网及其求解关键路径

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

a486368464的博客 1920

图的关键路径(AOE网络)

在AOE网中, 有些活动是可以并行进行的. 从源点到汇点的有向路径可能有多条, 并且这些路径长度可能不同. 完成不同路径上的活动所需的时间虽然不同, 但是只有所有路径上的活动都已经完成, 整个工程才能算结束. 因此, 从源点到汇点的所有路径中, 具有最大路径长度的路径称为关键路径, 而把关键路径上的活动称为关键活动.AOE网和AOV网都是有向无环图, 不同之处在于它们的边和顶点所代表的含义不同, AOE网中的边有权值, 而AOV网中的边无权值, 仅代表顶点之间的前后优先关系.这两条最长路径即为关键路径.

m0_61433144的博客 5622

(数据结构)AOE网求关键路径

AOE网是以边表示活动的有向无环网,在AOE网中,具有最大路径长度的路径称为关键路径,关键路径表示完成工程的最短工期。 关键路径是指在AOE网中从源点到汇点路径最长的路径。这里的路径长度是指路径上各个活动持续时间之和。在AOE网中,有些活动是可以并行执行的,关键路径其实就是完成工程的最短时间所经过的路径。关键路径上的活动称为关键活动。(关键路径可能不止一条) 首先我们需要明白以下四个概念属性: Ve[i]:从源点到顶点vi的最长路径长度,称为事件vi的最早发生时间,记作ve(i)。求解ve(i)可以从

oorik的博客 7480

轨迹规划——带抛物线过渡的直线插补

带抛物线过渡的直线插补

doudou2weiwei的博客 1984

关键路径:AOE网

关键路径:AOE网

m0_67171436的博客 1068

STM32F407 FSMC并口读取AD7606

先贴一下最终效果图.这个是AD7606并口读取数据一个周期后的数据结果. 原始波形用示波器看是很平滑的. AD7606不知为何就会出现干扰, 我猜测可能是数字信号干扰导致的. 因为干扰的波形很有规律. 这种现象基本上可以排除是程序问题. 应该是干扰或者数字信号干扰,或者是数字和模拟共地导致的.是一个宏,实际上是指向的一个内存地址, 这个内存地址是FSMC指定的地址. 使用FSMC接口, 可免于控制引脚, 直接读取某个地址即可, FSMC会自动产生操作时序. 具体请见FSMC相关知识.

走错路的程序员 5496

AOE-网 关键路径

关键路径:在AOE-网中,从始点到终点具有最大路径长度(该路径上的各个活动所持续的时间之和)的路径称为关键路径。 关键活动:关键路径上的活动称为关键活动。 关键路径可能不只一条,重要的是找到关键活动 事件Vi 的最早可能开始时间Ve(i) 是从源点V0 到顶点Vi 的最长路径长度。 Ve(i) =Max{Ve(k)+wk,i}(k是i的前驱事件) wk,i是弧<Vk,Vi>的权值,即活动持续时间 事件Vi 的最迟允许开始时间Vl(i) Vl(i)不得迟于其后继事件Vj的最迟发生时间减去活动.

weixin_52963585的博客 6001

MOS管热阻的测量方法

实验室内如何测试mos管热阻

weixin_43492562的博客 4092

有史以来最小的GIF/png/jpg/jpeg

昨天我对图像进行了 base64 编码,这样我就可以将它发送到 CouchDB 以测试我正在为客户编写的一些代码。它让我想起了我之前在远程服务器上设置 cookie 时所做的事情。基本上,一个小的 PHP 脚本被放在远程服务器上,它接受几个 GET 参数并根据它们的值设置一些 cookie。然后脚本输出一个 1x1 的透明 GIF。本地服务器上的 PHP 脚本生成了一个 IMG 标签,该标签链接到该图像并根据本地服务器上的 COOKIES 设置参数。

凌凌1301的博客 1417

教你轻松计算AOE网关键路径

站位。。。

大鹏 8万+

[CTFSHOW]JWT

文章目录前言JWT简介CTFSHOW Web345CTFSHOW Web346前置知识开始做题CTFSHOW Web347CTFSHOW Web348CTFSHOW Web349CTFSHOW Web350前置知识利用WP如何防御 前言 有些师傅向我咨询WP,索性就发了吧,其实早就写好了,只是懒,在github仓库里囤着 JWT简介 可以看看我的Github总结给自己看的,Y4tacker CTFSHOW Web345 首先打开题目,查看源码,接下来访问/admin被跳转回主页啥也没有发生 where is

Y4tacker的博客 6045

图论 —— AOE 网与关键路径

【AOE 网】 在表示一个工程时,用顶点表示事件,用弧表示活动,权值表示活动的持续时间,这样的有向图即为 AOE 网。 其有两个性质: 在顶点表示事件发生之后,从该顶点出发的有向弧所表示的活动才能开始。 在进入某个顶点的有向弧所表示的活动完成之后,该顶点表示的事件才能发生。 对于一个工程来说,只有一个开始状态和一个结束状态,因此在 AOE 网中,只有一个入度为 0 的点表示工程的开始,即源...

Alex_McAvoy的博客 6795

AI人工智能 Agent:在仓储物流中的应用

AI人工智能 Agent:在仓储物流中的应用 1. 背景介绍 1.1 问题的由来 仓储物流行业是全球经济运行的基石之一,涉及商品的存储、运输、分拣和配送等多个环节。随着电子商务的普及和消费者对物流速度和精确性的要求不断提高,仓储物流

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 863

基于ENVI完成影像的去云操作以及后续处理

利用ENVI完成重采样影像的去云操作 由于SNAP重采样之后的影像是分波段保存的,ENVI的波段运算工具一次也只能输出一个波段,所以去云的操作分波段进行,原理是掩膜法 下面是打开所有波段后的界面 去云的依据是以quality_scene_classification栅格文件为基础,该文件是哨兵2数据自带的场景质量分类图,包含12个级别,可以通过SNAP软件查看,如下图所示: 对于去云操作而言,我们只需要DARK_FEATURE_SHADOW(地形等),CLOUD_SHADOW(云阴影)、CL

lemon_tttea的博客 2万+

关键路径AOE网及其如何求关键路径步骤(C语言)

一、关键路径 (一)AOE网 在带权有向图中,以顶点表示事件,以有向边表示活动,以边上的权值表示完成该活动的开销(如完成活动所需的时间),称之为⽤边表示活动的网络,简称AOE网 (Activity On Edge NetWork) 在这里插入图片描述 AOE⽹具有以下两个性质: ① 只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始; ② 只有在进入某顶点的各有向边所代表的活动都已结束时,该顶点所代表的事件才能发⽣。 另外,有些活动是可以并行进行的

派拉斯兔子的博客 9145

windows中搭建sonic云真机环境/云真机环境搭建-基于docker容器部署

基于Windows系统搭建Sonic远程云真机环境实现通过浏览器操作手机端系统

雾林小妖的博客 1016

AOE网/关键路径

本文章讲解了关键路径求解的步骤,涉及与其相关的一系列知识,并提供基于邻接表存储的可运行代码,是对于AOE网的较好的教学博客

2401_87092242的博客 1970

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【数据结构与算法】AOV网、AOE网、关键路径

若用DAG图 (有向无环图) 表示一个工程,顶点表示活动,有向边表示顶点i必须先与顶点j进行,则将这种有向图称为顶点表示活动的网络,简称AOV网络。AOV网络是一个不带权的DAG图、边仅表示活动的先后关系。例如:12345 AOE网 若用带权DAG图表示一个工程,顶点表示事件,有向边表示活动,有向边的权值表示活动 i -> j 的开销,则将这种带权有向图称为用边表示活动的网络,简称AOE网。AOE网络是一个带权的DAG图,用边表示事件的先后顺序和活动的开销。在AOE网络中,仅有一个入度

DreamSuif的博客 4124

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

AOE网的运用与关键路径的计算

什么是AOE网 AOE网是边表示活动,点表示事件的有向无环图。在AOE网中,具有最大长度的路径称为关键路径,关键路径表示完成工程的最短工期。 AOE网描述了活动之间的优先关系,可以认为是一个定向的研发,但是有时还需要定量的研究工程的进度,如整个工程完成的事件,子工程完成的事件,各个子工程影响整个工程的的程度。在AOE网表示一个工程计划时,用顶点来表示各个事件,弧表示子工程的活动,权值表示子工程的活...

weixin_43984457的博客 3823

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C语言AOE网、关键路径

目录 1.AOE网(Activity On Edge Network) 1.1AOE网的概念 1.2AOE网两个顶点 2.关键路径 2.1关键路径的概念 2.2关键路径的几点说明 2.3关键路径的求解步骤 2.4关键路径求解示例 1.AOE网(Activity On Edge Network) 1.1AOE网的概念 若在带权的有向图中,用有向边表示活动(子工程),边上的权值表...

记录学习点滴 4583

求AOE网的关键路径

以边表示活动,以顶点表示事件的有向网称为AOE(activity on edge)网.AOE网是一个 有向无环图,权值表示活动持续的时间。可以用AOE网来估计工程完成的时间。由于工程 只有一个开始点和一个完成点,所以在无环路的条件下,网中只有一个入度为0的点和一 个出度为0

Kay's space 1万+

AOE网和关键路径

AOE网,软考试题,关键路径,松弛时间,完成项目的最少时间

呆萌很的博客 7519

图 —— AOE网和关键路径

基本概念 AOE网(Activity On Edge): 是一个带权的有向无环图,其中以顶点表示事件,弧表示活动,权表示活动持续的时间。 AOV和AOE的不同点: AOV的顶点表示活动,AOE的顶点表示事件(新活动开始、旧活动结束);AOV的边表示活动之间的先后关系,AOE的边表示活动。 关键路径: 路径长度最长的路径 算法过程 步骤一:顶点(事件)的最早发生时间 对图进行拓扑排序,得到各顶点...

starter_____的博客 5954

AOE网与关键路径

如果在有向图中用顶点表示事件,用弧表示活动,用弧上的权表示活动持续时间,称该带权有向图(即有向网)为边表示活动的网(activity on edge network),简称AOE网。 在AOE网中,只有一个顶点代表的事件发生后,从该顶点出发的各个弧所代表的活动才能开始,只有以弧头关联一个顶点的各个弧所代表的活动都已结束,该顶点所代表的事件才能发生。 一项工程可以由若干个子工程活动组成。用AOV

Learn as if you were to live forever 8881
上一篇: 拓扑排序与AOV
下一篇: C的内存分配问题
Sharing_Li
博客等级 码龄14年 64粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值