关键路径与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

MOOS-ivp实战:从零搭建水下机器人通信系统(Ubuntu 22.04版)

本文详细介绍了在Ubuntu 22.04系统上从零开始搭建MOOS-ivp水下机器人通信系统的完整实战流程。内容涵盖环境准备、核心安装、MOOSDB通信模型解析、自定义应用节点开发、以及调试监控工具链的使用,旨在帮助开发者快速掌握这一分布式机器人系统框架,构建稳定可靠的水下机器人通信与控制系统。

snow3的博客 635

关键路径:AOE网

关键路径:AOE网

m0_67171436的博客 1068

uniapp 基于单选框多选框实现上拉触底多选/单选、回显

showPickerCheckbox弹层显示 label和value 类似下拉框的label和value一个意思 键和值。结果:可以传接口(接口只能post请求) 可以搜索 下面是结果图片展示 单选多选都可以。fieldValue回显传的值 传的是字符串 数组的话[1,2]转为1,2格式传入。mode是控制的单选还是多选 true为多选默认值 其余参数 单选多选一样。fieldName字段名 确定后会返回该字段名 根据字段名找对应的传入值。问题:在uniapp上 实现分页多选的操作。下面是组件的完整代码。

2301_76607997的博客 2936

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

VS code平台调试AutoLISP程序教程

VS code平台调试AutoLISP程序教程

BearElder的博客 3183

GD32F303定时器配置:实现两路互补PWM输出与相位控制

本文详细解析了基于GD32F303定时器实现两路互补PWM输出与精确相位控制的方法。通过配置TIMER2的中间对齐模式,结合REMAP功能解决引脚复用问题,从硬件层面稳定生成相位差180度的互补PWM信号,适用于电机驱动、开关电源等对时序要求苛刻的应用场景。

weixin_29182481的博客 304

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

站位。。。

大鹏 8万+

基于CNN对抗嵌入的图像隐写——CNN-Based Adversarial Embedding for Image Steganography

CNN-Based Adversarial Embedding for Image Steganography https://ieeexplore.ieee.org/abstract/document/8603808 这篇论文发表在TIFS( IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY),TIFS是网络与信息安全领域的国际两大顶级期刊之一,中国计算机学会(CCF)推荐的A类期刊,SCI一区TOP期刊,目前影响因子有7多了。 1 概

weixin_48654804的博客 2279

图论 —— AOE 网与关键路径

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

Alex_McAvoy的博客 6795

南邮 2024 软件安全 实验四 自动脱壳+手动脱壳

这次这个实验很简单,就是一个简单的脱壳,然后进行爆破就行了,解法非常的多这里不多讲,会简单讲一下特殊情况这个点开是这样子:然后放进peid里面查看,我这个是原版的PEid,所以显示出来是这样:会显示nothing found,但其实如果你使用吾爱破解的魔改过的peid,它就会显示具体的壳名:然后你点击右下角的那个箭头,里面会有很多的插件用来自动脱壳:你也可以使用这个通用脱壳器,但是脱壳后的程序无法运行,这个放到后面讲。

ARbing_an的博客 2558

从动态规划到最优控制:Hamilton-Jacobi-Bellman (HJB) 方程的核心思想与应用

本文深入解析了Hamilton-Jacobi-Bellman (HJB) 方程的核心思想与应用,从动态规划到最优控制的演变过程。通过实际案例展示了HJB方程在机器人路径规划、工业机械臂优化等领域的实践价值,并探讨了数值求解方法和深度学习结合的神经HJB前沿进展。

weixin_28700411的博客 453

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

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

派拉斯兔子的博客 9145

〔重庆理工大学〕计算机网络实验指导书【实验九 直连路由,静态路由,默认路由配置】

本实验指导书介绍了直连路由、静态路由和默认路由的配置方法。主要内容包括:1)路由器基础知识,包括直连路由、静态路由和动态路由三种路由生成方式;2)路由度量值与匹配顺序,解释了不同路由类型的优先级;3)实验任务分为三个部分:直连路由的查看分析、静态路由的配置以及默认路由的配置,详细说明了配置步骤和命令。实验要求通过模拟器搭建网络环境,完成路由配置使PC间能够互通。实验旨在帮助学生掌握不同路由类型的工作原理和配置方法,适用于简单的网络环境。

Pretty Boy Fox的博客 1056

AOE网/关键路径

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

2401_87092242的博客 1970

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

ssm框架搭建

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

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

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

DreamSuif的博客 4124

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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、付费专栏及课程。

余额充值