- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章 图(二)概要1
实现(续) // Generate topological order i = 0; // cursor for array v while (!S.IsEmpty()) {// select from stack int w; // next vertex S.Delete(w); v[i++] = w; int u = Begin(w); while (u) {// update in-degrees InDegree[u]--; if (!InDegree[u]) S.Add(u); u = NextVertex(w);} } DeactivatePos(); delete [] InDegree; return (i == n); } 时间复杂度是O(n+e) * 拓扑排序要点 入度为0的顶点即没有前驱活动的,或前驱活动都已经完成的顶点,工程可以从这个顶点所代表的活动开始或继续 算法每输出一个顶点之后,要删去从这个顶点发出的边,这意味着这个顶点所代表的活动已经完成,对于后续顶点所代表的活动来说,该前驱活动已经完成 * 拓扑排序要点 如果一个节点有多个直接后继,则拓扑排序的结果通常不唯一 由于AOV网络中各顶点的地位是平等的,每个顶点的编号是人为的,因此可以按照拓扑排序的结果重新安排顶点的序号,生成AOV网络的新的邻接矩阵存储表示。其中,对角线以下可以全为零。 * 小练习 写出下图的所有拓扑排序结果 提示:共有7种 * V1 V2 V6 V5 V3 V4 主要内容 最短路径 拓扑排序 关键路径 * AOE网 一个带权的有向无环图,其中顶点表示事件,边表示活动,权表示活动持续的时间,则该图称为AOE(Activity On Edge)网 左图所示工程: 9个事件(里程碑) 11项活动(必须完成的工作) V5含义是: a4和a5已完成 a7和a8可开始 * 关键路径 将AOE网看作一个工程 只有一个入度为0的点(源点),一个出度为0的点(汇点) 完成整个工程需要多少时间?哪些活动是影响工程进度的关键? 关键路径(Critical Path) 从源点到汇点长度(时间和)最长的路径 长度——完成工程的最短时间 上例:(v1, v2, v5, v8, v9) * 关键活动 源点v1?vi的最长路径长度:事件vi的最早发生时间,vi发出的所有边(活动)的最早开始时间 e(i):活动ai的最早开始时间 最迟开始时间:l(i),前提:不影响工程进度 l(i)=e(i):关键活动 关键路径上的活动都是关键活动 通过计算l(i)、e(i)寻找关键活动 * l(i)和e(i)的计算 事件的最早发生时间ve(j)最迟发生时间vl(j) 活动ai由边j, k表示dut(j, k)表示其持续时间,则有 e(i)=ve(j) 含义是:活动i要想开始至少需要等待的时间 l(i)=vl(k)-dut(j, k) 含义是:活动i开始之前最多空闲的时间 j k ai dut * ve(i)的计算 由ve(0)=0向前递推ve(j)=max{ve(i)+dut(i, j)},i, j∈E i j i i 事件j的开始依赖于所有活动i,j的完成显然应该取其中“最差”者——j再早也不会比最慢的那个早 * vl(i) 的计算 由vl(n-1)=ve(n-1)向后递推vl(i)=min{vl(j)-dut(i, j)},i, j∈E j i j j 所有的j都依赖于ii再迟也不应影响j的启动——不能影响工期也应该取其中“最差”(最早)者 * 计算实例 顶点 ve vl 活动 e l l-e v1 0 0 a1 0 1 1 v2 3 4 a2 0 0 0 v3 2 2 a3 3 4 1 v4 6 6 a4 3 4 1 v5 6 7 a5 2 2 0 v6 8 8 a6 2 5 3 a7 6 6 0 a8 6 7 1 * 计算实例 * 顶点 ve vl 活动 e l l-e v1 0 0 a1 0 0 0 v2 6 6 a2 0 2 2 v3 4 6 a3 0 3 3 v4 5 8 a4 6 6 0 v5 7 7 a5 4 6 2 v6 7 10 a6 5 8 3 v7 16 16 a7 7 7 0 v8 14 14 a8 7 7 0 v9 18 18 a9 7 10 3 a10 16 16 0 a11 14 14 0 关键路径要点 关键路径长度是完成工程的最短时间,即至少消耗时间 研究意义是找到关键路径、设法提高其效率,则有可能缩短工期 算法 Step
您可能关注的文档
- 维也纳生活圆舞曲PPT概要1.ppt
- 第11课_民国时期民族工业的曲折发展概要1.ppt
- 外研社Book2_Module6_语言点概要1.ppt
- 外研社 八上 M3_U1Nothing_is_more_enjoyable_than_playing_tennis概要1.ppt
- 外研版英语初二上M6概要1.ppt
- 第11课 太平天国运动概要1.ppt
- 外研社book2module6reading概要1.ppt
- 外研社book3 module1 Language points概要1.ppt
- 外研社BOOK 1 Unit 3 My First Ride on a Train概要1.ppt
- 外研社Revision Module A __ 九年级概要1.docx
文档评论(0)