- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
综合数据结构07讲解
* * 在AOE网络中, 有些活动顺序进行,有些活动并行进行。 从源点到各个顶点,以至从源点到汇点的有向路径可能不止一条。这些路径的长度也可能不同。完成不同路径的活动所需的时间虽然不同,但只有各条路径上所有活动都完成了,整个工程才算完成。 因此,完成整个工程所需的时间取决于从源点到汇点的最长路径长度,即在这条路径上所有活动的持续时间之和。这条路径长度最长的路径就叫做关键路径(Critical Path)。 * * 图7-26就是一个AOE网,该网中有11个活动和9个事件。每个事件表示在它之前的活动已经完成,在它之后的活动可以开始。如事件v5表示a4和a5活动已经完成,a7和a8活动可以开始。每个弧上的权值表示完成相应活动所需要的时间,如完成活动a1需要6天,a8需要7天。 图7-26 AOE网 * * AOE网常用于表示工程的计划或进度。由于实际工程只有一个开始点和一个结束点,因此AOE网存在唯一的入度为0的开始点(又称源点)和唯一的出度为0的结束点(又称汇点),例如图7-26的AOE网从事件v1开始,以事件v9结束。同时AOE网应当是无环的。 a b c d e f g h k 6 4 5 2 1 1 8 7 2 4 4 例如: “关键活动”指的是:该弧上的权值增加 将使有向图上的最长路径的长度增加。 整个工程完成的时间为:从有向图的源点到汇点的最长路径。 源点 汇点 6 1 7 4 如何求关键活动? “事件(顶点)” 的 最早可能开始时间 ve(j) ve(j) = 从源点到顶点j的最长路径长度; “事件(顶点)” 的 最迟允许开始时间 vl(k) vl(k) =是在保证汇点按时完成的前提下, 事件Vk 的允许的最迟开始时间 假设第 i 条弧为 j, k 则 对第 i 项活动言 “活动(弧)”的 最早开始时间 ee(i) ee(i) = ve(j); “活动(弧)”的 最迟开始时间 el(i) el(i) = vl(k) – dut(j,k); j k 活动i Dutj,k 事件发生时间的计算公式: ve(源点) = 0; ve(k) = Max{ve(j) + dut(j, k)} vl(汇点) = ve(汇点); vl(j) = Min{vl(k) – dut(j, k)} a b c d e f g h k 6 4 5 2 1 1 8 7 2 4 4 0 0 0 0 0 0 0 0 0 6 4 5 7 11 5 7 15 14 18 18 18 18 18 18 18 18 18 18 16 14 8 6 6 10 8 0 7 拓扑有序序列: a - d - f - c - b - e - h - g - k 0 6 4 5 7 7 15 14 18 18 14 16 10 7 8 6 6 0 0 0 0 6 4 5 7 7 7 15 14 14 16 0 2 3 6 6 8 8 7 10 * * 从以上计算得出,图7-29中AOE网的关键活动为a2,a5,a7,这些活动构成了关键路径,如图7-30所示: 图7-30 AOE网的关键路径 * * 图是一种非线性数据结构。本章介绍有关图的基本概念,如顶点和边/弧、无向图和有向图,完全图、网、顶点的度、路径、回路、子图、图的连通性等。图主要具有邻接矩阵、邻接表、十字链表和邻接多重表等存储结构,用以表示图中的顶点信息、边的信息以及顶点与边的关系信息。图的遍历是图的一种重要运算,是从图的某一顶点出发,访遍图中每个顶点,且每个顶点仅访问一次,图的遍历顺序主要有深度优先搜索和广度优先搜索。最后讨论了求最小生成树的两种算法、求解最短路径的两类算法、拓扑排序和关键路径等常用算法。 本章小结 1)在所有从源点出发的弧中选取一条权值最小的弧,即为第一条最短路径。 2)修改其它各顶点的Dist[k]值。 假设求得最短路径的顶点为u, 若 Dist[u]+G.arcs[u][k]Dist[k] 则将 Dist[k] 改为 Dist[u]+G.arcs[u][k]。 V0和k之间存在弧 V0和k之间不存在弧 其中的最小值即为最短路径的长度。 * * 算法的基本思想是:设置并逐步扩充一个集合S,存放已求出其最短路径的顶点,则尚未确定最短路径的顶点集合是V-S,其中V为网中所有顶点集合。按最短路径长度递增的顺序逐个以V-S中的顶点加到S中,直到S中包含全部顶点,而V-S为空。 * * 图7-16 带权有向图 设G=(V,E)是一个带权有向图,指定的顶点v0为源点,求v0到图的其余各顶点的最短路径。如
文档评论(0)