词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> 程序开发    数据结构   

数据结构之图的关键路径

标签: 数据结构 关键路径

顶[0] 发表评论(0) 编辑词条
目录

一、AOE和AOV网编辑本段回目录

 

AOE-网:指用边表示活动的网,是一个带权的有向无环图,其中,顶点表示事件弧表示活动,权表示活动持续的时间,通常一个AOE-网可用来估算工程的完成时间。

 

AOE网具有以下几个性质:

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

(2) 只有在进入某一顶点的各有向边所代表的活动都已经结束,该顶点所代表的事件才能发生;

(3) 表示实际工程计划的AOE网应该是无环的,并且存在惟一的入度过为0的开始顶点(源点)和惟一的出度为0的完成顶点(汇点)。

 

对于AOE-网,我们不妨采用与AOV-网一样的邻接表的存储方式,其中邻接表中边结点增设一个dut域存放该边的权值,即该有向边代表的活动所持续的时间。

 

下图给出了上图所示的AOE-网的邻接表。

 

 

如果用AOE网来表示一项工程,那么仅仅考虑各个子工程之间的优先关系还不够,更多的是关心整个工程完成的最短时间是多少,哪些活动的延迟将会影响整个工程的进度,而加速这些活动又能导致提高整个工程的效率。

 

因此,对AOE网有待研究的问题是:

  (1) 完成整个工程至少需要多少时间;

  (2) 哪些活动是影响工程进度的关键。

 

二、关键路径编辑本段回目录

 

  由于在AOE-网中某些活动可以并行地进行,因此完成工程的最短时间是从开始顶点(源点)到完成顶点(汇点)的最大路径长度(这里所说的路径的长度等于这条路径上完成各个活动所需时间之和,不是路径上弧的数目);具有最大路径长度的路径称为关键路径。

 

 

为了寻找关键活动,确定关键路径,我们先定义几个变量:

  (1)事件的最早发生时间ve(i):从v1到vi的最长路径长度。

  (2)事件的最迟发生时间vl(i):完成顶点vn的最早发生时间ve(n)减去vi到vn的最长路径长度。

 (3)活动ai的最早开始时间e(i):事件vj的最早发生时间ve(j)也是所有以vj为起点的出边 vj, vk所表示的活动ai的最早开始的时间,即e(i)=ve(j)。

  (4)活动的最迟开始时间l(i):是ai的最迟完成时间减去ai的持续时间,即l(i)=vl(k)- vj , vk的权。通常把e(i)=l(i)的活动称为关键活动

 

由上述分析可知,若把所有活动ai的最早开始时间e(i)和最迟开始时间l(i)都计算出来,即可找到所有的关键活动。为了求得AOE网的e(i)和l(i),应该先求得网中所有事件vj的最早发生时间ve(j)和最迟发生时间vl(j)。若活动ai由边vj, vk表示,其持续时间记为dut(j, k),则有如下关系:

 

e(i)=ve(j)l(i)=vl(k)-dut(j, k)

 

求关键路径的算法描述

1) 根据有向网的弧建立图的邻接表作存储结构;

2) 从源点v0出发,令ve[0]=0,按拓扑序列求各顶点的ve[i];

3) 从汇点vn-1出发,令vl[n-1]=ve[n-1],按逆拓扑序列求其余各顶点的vl[i];

4) 根据各顶点的ve和vl值,计算每条弧的e[i]和l[i],找出e[i]=l[i]的关键活动。

 

算法实现

1)输入顶点和弧信息,建立其邻接表;计算每个顶点的入度

2)对其进行拓扑排序,排序过程中求顶点的ve[i],将得到的拓扑序列进栈

3)按逆拓扑序列求顶点的vl[i]。计算每条弧的e[i]和l[i],找出e[i]=l[i]的关键活动。

例如:根据给定的右图求该AOE-网的关键活动及关键路径。

关键活动是:a1, a4, a7, a8, a10, a11

它们构成了两条关键路径:(v1,v2,v5,v7,v9)和(v1,v2,v5,v8,v9)

 

求出来的关键路径的图如下:

 

 

说明:

关键活动的速度提高是有限度的。任何一项活动持续时间的改变都会影响关键路径的改变;只有在不改变网的关键路径的情况下,提高关键活动的速度才有效。若网中有几条关键路径,单提高一条关键路径上的关键活动的速度,是不能导致整个工程缩短工期。必须同时提高在几条关键路径上的活动的速度。

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇什么是分布式数据库(DRDS)?
下一篇JavaScript常用数据结构

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>