AOE网关键路径的算法,最最最最直接的算法,一学就会
来源:互联网 发布:西安科技大学考研 知乎 编辑:程序博客网 时间:2024/06/16 01:06
先了解一下AOE网和关键路径:
如果在有向图中用顶点表示事件,用弧表示活动,用弧上的权表示活动持续时间,称该带权有向图(即有向网)为边表示活动的网(activity on edge network),简称AOE网。
在AOE网中,只有一个顶点代表的事件发生后,从该顶点出发的各个弧所代表的活动才能开始,只有以弧头关联一个顶点的各个弧所代表的活动都已结束,该顶点所代表的事件才能发生。
一项工程可以由若干个子工程活动组成。用AOV网表示这项工程所关心的是各子工程之间的优先次序,即所得到得拓扑有序序列;而用AOE网表示这项工程所关心的是完成整个工程至少需要多少时间,哪些子工程是影响这项工程进度的关键活动,如何加快整个工程的进度等问题。
由于在AOE网中某些活动可以并行进行,所以完成工程的最短时间是从源点到汇点路径的最大长度(指路径上各活动持续时间之和最大,而不是路径上弧的数目最多)。把从源点到汇点路径长度最大的路径称作关键路径(critical path),关键路径上的活动称作关键活动。关键活动的长度是整个工程的最短工期,加快关键活动的完成是加快工程进度缩短工期地关键。
求AOE网关键路径算法的步骤:
(1) 输入e条弧<Vj,Vk>,建立AOE网的存储结构。
(2) 从源点V1出发,令ve[1]=0;按拓扑有序序列次序求其余各顶点的最早发生时间ve[k](2<=k<=n),ve[k]=max{ve[j]+dut(<Vj,Vk>)};如果得到的拓扑有序序列中顶点个数小于网中顶点的个数n,说明网中存在环路,不能求关键路径算法终止,否则执行步骤(3).
(3) 从汇点Vn出发,令vl[n]=ve[n],按逆拓扑有序序列求其余各顶点的最迟发生时间vl[k](n-1>=k>=1),vl[k]=min{vl[Vj]-dut(<Vk-Vj>)}。
(4) 根据各顶点的ve值和vl值,求每条弧的最早开始时间e[s]和最迟开始时间l[s];e[s]等于弧s的弧尾顶点Vk的最早发生时间ve[k],而l[s]等于弧头顶点Vk的最迟发生时间减去弧s的权值;若某条弧s满足e[s]=l[s]则为关键活动,由所有关键活动构成的网的一条或几条关键路径。
举一个例子帮助理解:
- AOE网关键路径的算法,最最最最直接的算法,一学就会
- 最最最最基本算法(一)--
- 最最简单的归并算法小程序
- [转载] AOE网关键路径的计算
- 细数20世纪最最伟大的10大算法
- 算法:求解AOE网的关键路径
- 最最最最简单的Linux后门~~, HOHOHO~~
- 最最熟悉的陌生人
- 最最经典的笑话
- 最最爱的小麦
- 最最最重要的内容!!!!!!
- 现在最最重要的
- 【算法】基于AOE网的关键路径算法
- 毛澤東是我們中國的最最最最厲害的人物
- AOE网上的关键路径(拓扑排序+SPFA算法)
- java最最简单的问题
- 最最最简单的分页
- 开车最最痛苦的事
- 实习过程中常用到的 技巧(1)
- leetCode_Permutation Sequence
- NOIP 2012 Day1 T3 开车旅行
- [AIR]批量修改目录中图片的操作方式
- LED发光管实验报告
- AOE网关键路径的算法,最最最最直接的算法,一学就会
- NOIP 2014 Day2 T1 无线网络发射器选址
- java获取项目访问路径方法
- Boostrap 按钮
- apache + php + mysql windows配置
- 关于自定义View的基础思路以及画布的解析
- Codevs 1082
- Spring+Hibernate在Application.context.xml文件中配置数据源信息
- NOIP 2014 Day2 T2 寻找道路