第20讲-关键路径与最短路径(共13页).doc
《第20讲-关键路径与最短路径(共13页).doc》由会员分享,可在线阅读,更多相关《第20讲-关键路径与最短路径(共13页).doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据结构第 20次课章节名称7.5.2关键路径7.6.1从某个源点到其余各顶点的最短路径目的要求1. 理解并掌握的基本思想和步骤,对给定的带权能够。 2. 理解并掌握的含义、Dijkstra算法的基本思想和时间性能,能够根据 画出给定有向图的求单源最短路径的过程示意图。主要内容与时间概算序号主要内容时间概算1AOV-网10分2关键路径45分3的含义5分4Dijkstra算法的基本思想40分共计100分重点难点重点:1.的概念和实际应用,求带权;2.的含义、Dijkstra算法的基本思想和时间性能。难点:1. 求带权; 2. Dijkstra算法的基本思想,求有向图的单
2、源最短路径方法手段采用教员课堂讲授、学员实际操作的方法实施教学。授课中应对于重/难点作详细分析,并结合课堂讲授的内容实施上机实验教学任务。(续表)课 堂 提 问1. 如何缩短完成整项工程所需时间?2. 如何在计算机中求得最短路径?本 次 课 内 容 总 结1. 的概念和实际应用,求带权;2. 的含义、Dijkstra算法的基本思想和时间性能,如何求有向图单源最短路径。思考题作业题试对下图所示的AOE网络,解答下列问题。(1) 这个工程最早可能在什么时间结束。(2) 求每个事件的最早开始时间Vei和最迟开始时间VlI。(3) 求每个活动的最早开始时间e( )和最迟开始时间l( )。(4) 确定哪
3、些活动是关键活动。画出由所有关键活动构成的图,指出哪些活动加速可使整个工程提前完成。参考资料数据结构辅导与提高,徐孝凯编著,清华大学出版社数据结构习题解答与考试指导,梁作娟等编著,清华大学出版社授课内容7.5.2 关键路径对整个工程和系统,人们关心的是两个方面的问题:一)工程能否顺利进行 (对AOV网进行拓扑排序)二)估算整个工程的完成所必须的最短时间(对AOE网求关键路径)1. AOE-网与AOV-网相对应的是AOE-网(Activity On Edge),即边表示活动的网。AOE-网是一个带权的有向无环图,其中,顶点表示事件(Event),弧表示活动,权表示活动持续的时间。通常,AOE-网
4、可用来估算工程的完成时间。例:下图是一个假想的有11项活动的AOE-网。其中有9个事件v1,v2,v9,每个事件表示在它之前的活动已经完成,在它之后的活动可以开始。如v1表示整个工程开始,v9表示整个工程结束,v5表示a4和a5已经完成,a7和a8可以开始。与每个活动相联系的数是执行该活动所需的时间。比如,活动a1需要6天,a2需要4天等。 和AOV-网不同,对AOE-网有待研究的问题是:(1)完成整项工程至少需要多少时间?(2)哪些活动是影响工程进度的关键?2. 关键路径由于在AOE-网中有些活动可以并行地进行,所以完成工程的最短时间是从开始点到完成点的最长路径的长度(这里所说的路径长度是指
5、路径上各活动持续时间之和,不是路径上弧的数目)。路径长度最长的路径叫做关键路径(Critical Path)。假设开始点是v1,从v1到vi的最长路径长度叫做事件vi的最早发生时间。这个时间决定了所有以vi为尾的弧所表示的活动的最早开始时间。我们用e(i)表示活动ai的最早开始时间。还可以定义一个活动的最迟开始时间l(i),这是在不推迟整个工程完成的前提下,活动ai最迟必须开始进行的时间。两者之差l(i)-e(i)意味着完成活动ai的时间余量。我们把l(i)=e(i)的活动叫做关键活动。显然,关键路径上的所有活动都是关键活动,因此提前完成非关键活动并不能加快工程的进度。因此,分析关键路径的目的
6、是辨别哪些是关键活动,以便争取提高关键活动的工效,缩短整个工期。例:上图中从v1到v9的最长路径是(v1,v2,v5,v8,v9),路径长度是18,即v9的最早发生时间是18。解决方案:由上分析可知,辨别关键活动就是要找e(i)=l(i)的活动。为了求得AOE-网中活动的e(i)和l(i), 首先求事件的最早发生时间ve(j)和最迟发生时间vl(j)。如果活动ai由弧表示,其持续时间记为dut(),则有如下关系: e(i ) = ve(j) (1)l(i) = vl(k)-dut() 求ve(j)和vl(j)需分两步进行:(1) 从ve(0)开始向前递推其中,T是所有以第j个顶点为头的弧的结合
7、。(2) 从vl(n-1)=ve(n-1)起向后递推其中,S是所有以第i个顶点为尾的弧的集合。 这两个递推公式的计算必须分别在拓扑有序和逆拓扑有序的前提下进行。也就是说ve(j-1)必须在vj的所有前驱的最早发生时间求得之后才能确定,而vl(j-1)则必须在vj的所有后继的最迟发生时间求得之后才能确定。因此,可以在拓扑排序的基础上计算ve(j-1)和vl(j-1)。所以,求关键路径的算法:(1) 输入e条弧(j,k),建立AOE网的存储结构。(2) 从源点v0出发,令ve00按拓扑有序求其余各顶点的最早发生时vei(1i n-1)。如得到的拓扑序列中顶点个数小于网中顶点数n,则说明网中存在环,
8、不能求关键路径,算法终止;否则执行步骤(3)。(3) 从汇点vn出发,令vln-1= ven-1,按逆拓扑有序求其余各顶点的最迟发生时间vli(n-2 i 2);(4) 根据各顶点的ve和vl值,求每条弧s的最早开始时间e(s)和最迟开始时间l(s)。若某条弧满足条件e(s)=l(s),则为关键活动。计算顶点的ve值是在拓扑排序的过程中进行的。计算ve需对拓扑排序的算法作如下修改:(1) 在拓扑排序之前设初值,令ve(i)=0(0=in-1);(2) 在算法中增加一个计算vj的直接后继vk的最早发生时间的操作: 若 ve(j)+dut() ve(k),则 ve(k) = ve(j)+dut()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 20 关键 路径 13
限制150内