关键路径

第7章 AOE网与关键路径

纵饮孤独 提交于 2019-12-20 11:24:19
【AOE网】 【概念】 与AOV网相对应的是 边表示活动的有向无环图 AOE(Activity On Edge) ,如下图所示。 图中 顶点表示事件(Event) ,每个事件表示在其前的所有活动已经完成,其后的活动可以开始; 弧表示活动 ,弧上的权值表示相应活动所需的时间或费用。 与AOE有关的研究问题: 完成整个工程至少需要多少时间? 哪些活动是影响工程进度(费用)的关键? 【定义】 设 v 0 v_0 v 0 ​ 是起点,从 v 0 v_0 v 0 ​ 到 v i v_i v i ​ 的最长路径长度称为事件 v i v_i v i ​ 的最早发生时间,即是以 v i v_i v i ​ 为尾的所有活动的最早发生时间。 若活动 a i a_i a i ​ 是弧 < j , k > <j, k> < j , k > ,持续时间是 d u t ( < j , k > ) dut(<j, k>) d u t ( < j , k > ) ,设: ◆ e ( i ) e(i) e ( i ) :表示活动 a i a_i a i ​ 的最早开始时间。 ◆ l ( i ) l(i) l ( i ) :在不影响进度的前提下,表示活动 a i a_i a i ​ 的最晚开始时间。则 l ( i ) − e ( i ) l(i)-e(i) l ( i ) − e ( i ) 表示活动 a i a_i

数据结构——AOE网活动的最早、最迟发生时间及关键路径问题

霸气de小男生 提交于 2019-12-15 21:39:19
有向图中,用顶点表示事件,用有向边表示活动之间开始的先后顺序,则称这种有向图为AOV(Activity On Vertex)网络;AOV网络可以反应任务完成的先后顺序(拓扑排序)。 在AOV网的边上加上权值表示完成该活动所需的时间,则称这样的AOV网为AOE(Activity On Edge)网,如图:  如何求AOE网中各事件(节点)和各活动(边)的最早开始时间和最迟开始时间以及工程的关键路径? 整个活动的完成时间是AOE图中从始点到终点的最长路径的长度,这条路径称为关键路径。关键路径上的活动称作关键活动。 注意:关键路径不一定只有一条。 1.最早发生时间:从前往后,前驱结点到当前结点所需时间,取最大值。 如上图中的节点4有两个前驱结点(节点2和3),节点2到节点4的最早发生时间是a1+a3也就是8,节点3到节点4的最早发生时间是a2+a4也就是12,因为12>8,所以节点4的最早发生时间是12. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 结束节点(10

数据结构——图的关键路径(AOE和AOV网)

安稳与你 提交于 2019-12-15 21:34:52
一、AOE和AOV网 1.AOE网 AOE-网:指用边表示活动的网,是一个带权的有向无环图,其中,顶点表示事件弧表示活动,权表示活动持续的时间,通常一个AOE-网可用来估算工程的完成时间。 AOE网具有以下几个性质: (1) 只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始; (2) 只有在进入某一顶点的各有向边所代表的活动都已经结束,该顶点所代表的事件才能发生; (3) 表示实际工程计划的AOE网应该是无环的,并且存在惟一的入度过为0的开始顶点(源点)和惟一的出度为0的完成顶点(汇点)。 对于AOE-网,我们不妨采用与AOV-网一样的邻接表的存储方式,其中邻接表中边结点增设一个dut域存放该边的权值,即该有向边代表的活动所持续的时间。 下图给出了上图所示的AOE-网的邻接表。 如果用AOE网来表示一项工程,那么仅仅考虑各个子工程之间的优先关系还不够,更多的是关心整个工程完成的最短时间是多少,哪些活动的延迟将会影响整个工程的进度,而加速这些活动又能导致提高整个工程的效率。因此,对AOE网有待研究的问题是: (1) 完成整个工程至少需要多少时间; (2) 哪些活动是影响工程进度的关键。 二、关键路径 由于在AOE-网中某些活动可以并行地进行,因此完成工程的最短时间是从开始顶点(源点)到完成顶点(汇点)的最大路径长度

数据结构AOE网

流过昼夜 提交于 2019-12-10 21:04:41
AOE 网数据结构 AOE 网 一、目的与要求 1)掌握AOE网的邻接表存储结构表示及创建算法的c语言实现; 2)理解AOE网的拓扑排序算法(算法7.12)的实现原理及应用; 3)掌握AOE网关键路径的计算算法(算法7.13,7.14)及C语言实现与应用; 4)按照实验题目要求独立正确地完成实验内容(提交程序清单及相关实验数据与运行结果); 5)认真书写实验报告,并按时提交。。 二、实验内容 题目: 图的应用实验——计算AOE网的关键路径 内容:按照图的“邻接表”存储结构表示AOE网,实现求其关键路径的算法,并验证如下图1所示AOE网的关键路径。 include <iostream.h> include <stdlib.h> define max_vertex_num 50 define maxvalue 32760 define NULL 0 typedef struct edgenode{ int adjvex; struct edgenode next; int weight; }edgenode, pe 来源: CSDN 作者: duyiya_ 链接: https://blog.csdn.net/duyiya_/article/details/103482499

关键路径和AOE网

ぃ、小莉子 提交于 2019-12-10 04:27:39
AOE网的定义 在一个表示工程的带权有向图中, 用 顶点 表示 事件 , 用 有向边 表示 活动 , 边上的 权值 表示 活动的持续时间 , 称这样的有向图叫做边表示活动的网,简称AOE网。 AOE网中没有入边的顶点称为始点(或源点),没有出边的顶点称为终点(或汇点)。 AOE网的性质 ⑴ 只有在某顶点所代表的事件发生后,从该顶点出发的各活动才能开始; ⑵ 只有在进入某顶点的各活动都结束,该顶点所代表的事件才能发生。 AOE网可以回答下列问题: 完成整个工程至少需要多少时间? 从始点到终点的路径可能不止一条,只有各条路径上 所有活动都完成 了,整个工程才算完成。 因此,完成整个工程所需的最短时间取决于从始点到终点的最长路径长度,即这条路径上所有活动的持续时间之和。 这条路径长度 最长的路径 就叫做 关键路径 。 ( 关键活动 :关键路径上的活动称为关键活动。 关键路径 首先计算以下与关键活动有关的量: ⑴ 事件的最早发生时间ve[k] ⑵ 事件的最迟发生时间vl[k] ⑶ 活动的最早开始时间e[i] ⑷ 活动的最晚开始时间l[i] 最后计算各个活动的时间余量 l[k] - e[k],时间余量为0者即为关键活动。 ⑴ 事件的最早发生时间ve[k] ve[1]=0 ve[k]=max{ve[j]+len<vj, vk>} (<vj, vk>∈p[k]) ⑵ 事件的最迟发生时间vl[k]

关键路径法(Critical Path Method, CPM)

ぐ巨炮叔叔 提交于 2019-12-05 06:52:53
1、活动节点描述及计算公式 通过分析项目过程中哪个活动序列进度安排的总时差最少来预测项目工期的网络分析。 产生目的:为了解决,在庞大而复杂的项目中,如何合理而有效地组织人力、物力和财力,使之在有限资源下以最短的时间和最低的成本费用下完成整个项目。 关键路径是相对的,也可以是变化的。 关键路径可以有多条,关键路径上的活动时差为0。 活动节点图如下: ES:最早开始时间(Earliest Start) ,是指某项活动能够开始的最早时间,只决定于项目计划,只要计划的条件满足了就可以开始的时间。 EF:最早结束时间(Earliest Finish) ,是指某项活动能够完成的最早时间。其中EF = ES+DU, DU为活动持续时间,顺推法先知道开始时间。 LF:最迟结束时间 (Latest Finish),是指为了使项目在要求完工时间内完成,某项活动 必须 完成的最迟时间。往往决定于相关方(客户或管理层)的限制。 LS:最迟开始时间 (Latest Start),是指为了使项目在要求完工时间内完成,某项活动必须开始的最迟时间。其中LS = LF -DU,DU为持续时间,逆推法先知道结束时间。 顺推法 : 1、任一活动的 最早开始时间 ,等于所有前置活动的 最早结束时间的最大者 ; 2、任一活动的 最早结束时间 ,等于该活动的 最早开始时间 + 该活动工期 ; 3、 没有前置活动的

(机考)关键路径

落花浮王杯 提交于 2019-12-05 05:34:58
关键路径 描述: 计算AOE-网中关键路径的长度。 输入: 输入数据第一行是一个正整数,表示图中的顶点个数n(顶点将分别按0,1,…,n-1进行编号),顶点数不超过100,其中0为源点,n-1为汇点。之后的n行每行都包含n个整数,为AOE-网的邻接矩阵,其中0表示两个顶点间无直接可达的弧,大于0的整数表示活动持续的时间。 输出: 输出AOE-网中关键路径的长度,如果网中有环,则输出“NO”。 示例输入 9 0 6 4 5 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 9 7 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 示例输出 18 输出说明:如果网中有环,则示例输出如下: NO #include<stdio.h> #include<stdlib.h> int main() { int i, j, n, count; int G[100][100]; int indegree[100] = { 0 }; int stack[100], top = -1; int ve[100]; scanf("%d", &n); for (i = 0; i < n; i++) { for

关键路径

匿名 (未验证) 提交于 2019-12-02 23:48:02
工程中的关键活动和关键路径 #include <iostream> using namespace std ; #define MVNum 100 //最大顶点数 #define BDNum MVNum * ( MVNum - 1 ) //最大边数 #define OK 1 #define ERROR 0 typedef char VerTexType ; //- - - - -图的邻接表存储表示- - - - - typedef struct ArcNode { int adjvex ; int weight ; struct ArcNode * nextarc ; } ArcNode ; typedef struct VNode { VerTexType data ; ArcNode * firstarc ; } VNode , AdjList [ MVNum ]; typedef struct { AdjList vertices ; //邻接表 AdjList converse_vertices ; //逆邻接表 int vexnum , arcnum ; //图的当前顶点数和边数 } ALGraph ; //- - - - -顺序栈的定义- - - - - typedef struct { int * base ; int * top ; int stacksize ;

小罗说敏捷 | 使用关键路径法优化项目进度管理

馋奶兔 提交于 2019-12-02 21:30:13
视频解说 视频请访问微信公众号观看 西游记的故事大家都不陌生,师徒四人去西天取经,但是佛祖说了要四个人一起到达西天才能取到经书。大师兄最快一盏茶的功夫就能到,二师兄和沙师弟稍微慢一点,一天也能到。关键是师傅,师傅需要14年。所以师傅走的这条路径就是关键路径。 关键路径是项目计划中时间最长的路线,路径上的任何活动延迟都会导致项目工作的延迟。 那什么是关键路径法呢? 关键路径法(Critical Path Method)是进度或者计划管理方法。 关键路径法是进度管控工具,在项目管理过程中起到承上启下的作用。承上指的是项目范围管理,链接WBS工作分解结构。启下指的就是项目进度管理和监控。 在上中学的时候,听到过一个关于数学家华罗庚煮茶的故事。 有一天我们故事的主人翁数学家华罗庚想泡壶茶喝。当时的情况是:开水没有;水壶要洗,茶壶,茶杯要洗;火已经生了,茶叶也有了。怎么办? 关键路径法作为项目进度管理的工具和技术 ,在完成关键路径的识别和分析后,找出控制进度的关键路径,在一定工期、成本、资源条件下获得最佳安排的进度计划,达到缩短工期、提高功效、降低成本的目的。 解决方案的核心,总结起来就一句话“向关键路径要时间,向非关键路径要资源”。 系列视频 本系列视频请访问微信公众号观看 推荐阅读 干货下载 | 10月敏捷总动员沙龙 洞察敏捷模型 携程9月热招岗位 小罗说敏捷-WIP限制在制品 扑克派对

1044 关键路径 (浙大机试模拟)

自闭症网瘾萝莉.ら 提交于 2019-11-29 06:24:18
关键路径 Problem Description 给定一个有N个顶点、M条边的有向图,顶点下标为从1到N,每条边都有边权。判断这个有向图是否是有向无环图,如果是的话,请处理K个查询,每个查询为图中的一条边,求这条边的最早发生时间和最晚发生时间。最后再输出图中的所有关键路径。 Input 每个输入文件中一组数据。 第一行为两个整数N、M,表示有向无环图的顶点数和边数(1<=N<=1000, 0<=M<=N*(N-1)),顶点编号为从1到N。 接下来M行,每行为三个正整数u、v、w(1<=u,v<=N,0<w<=20,u!=v),分别表示有向边的起点、终点、边权。数据保证不会有两条起点和终点都相同的边。 然后是一个正整数K(1<=K<=1000),表示查询个数。 接着是K行,每行为两个正整数u、v,分别表示查询边的起点和终点。数据保证查询边一定是图上存在的边。 Output 如果给出的图不是有向无环图,那么在一行里输出NO,后面的查询结果和关键路径均不需要输出; 如果给出的图是有向无环图,那么在一行里输出YES,接着输出下面的内容: 每个查询一行,输出查询边的最早发生时间和最晚发生时间; 之后一行输出一个整数:关键路径上的边权之和; 最后若干行输出所有关键路径,每行表示其中一条,格式为用->连接的顶点编号。注意,如果有两条关键路径a[1]->a[2]->...->a[k]->a[k+1