- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有向无环图的应用有向无环图的应用
第7章 图 7.1 图的定义和术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图及其应用 7.6 最短路径 7.5 有向无环图及其应用 有向无环图(directed acycline graph)简称DAG图,是描述一项工程或系统的进行过程的有效工具。 对整个工程和系统,人们关心的是两个方面的问题:一是工程能否顺利进行;二是估算整个工程完成所必须的最短时间。 有向无环图的应用: 拓扑排序 关键路径 在工程实践中,一个工程项目往往由若干个子项目组成,这些子项目间往往有多种关系: ①先后关系,即必须在一子项目完成后,才能开始实施另一个子项目; ②子项目之间无次序要求,即两个子项目可以同时进行,互不影响。 我们用一种有向图来表示上述问题。在这种有向图中,顶点表示活动,有向边表示活动的优先关系,这种有向图叫做顶点表示活动的网络(Activity On Vertex Network)简称为AOV网。 7.5.1 拓扑排序 课程编号 课程名称 先导课程编号 C1 程序设计基础 无 C2 离散数学 C1 C3 数据结构 C1,C2 C4 汇编语言 C1 C5 算法分析与设计 C3,C4 C6 计算机组成原理 C11 C7 编译原理 C5,C3 C8 操作系统 C3,C6 C9 高等数学 无 C 10 线性代数 C9 C11 普通物理 C9 C12 数值分析 C9,C10,C1 课程先后关系如图: c1 c9 c4 c2 c12 c10 c11 c5 c3 c6 c7 c8 c1 c9 c4 c2 c12 c10 c5 c3 c6 c7 c8 c2 在AOV网络中,如果顶点Vi的活动必须在顶点Vj的活动以前进行,则称Vi为Vj的前趋顶点,而称Vj为Vi的后继顶点。这种前趋后继关系有传递性。此外,任何活动i不能以它自己作为自己的前驱或后继,这叫做反自反性。 从前驱和后继的传递性和反自反性来看,AOV网中不能出现回路(有向环),回路表示顶点之间的先后关系进入了死循环。 判断AOV网是否有有向环的方法是对该AOV网进行拓扑排序,将AOV网中顶点排列成一个线性有序序列,若该线性序列中包含AOV网全部顶点,则AOV网无环,否则,AOV网中存在有向环,该AOV网所代表的工程是不可行的。 何谓“拓扑排序” ? 拓扑序列: 在AOV网中,若不存在回路,则所有活动可排列成一个线性序列,使得每个活动的所有前驱活动都排在该活动的前面,我们把此序列叫做拓扑序列。 拓扑排序 由AOV网构造拓扑序列的过程叫拓扑排序。AOV网的拓扑序列不是唯一的,满足上述定义的任一线性序列都称为它的拓扑序列。 拓扑有序序列: (C1,C2,C3,C4,C5,C8,C9,C7,C6) (C2,C5,C1,C8,C3,C9,C4,C7,C6) 如何进行拓扑排序? 解决方法: 1)从有向图中选取一个没有前驱的顶点,并输出之; 2)从有向图中删去此顶点以及所有以它为尾的弧; 3)重复上述两步,直至图空,或者图不空但找不到无前驱的顶点为止。后一种情况说明有向图中存在环。 如何在计算机中实现 拓扑排序呢? 拓扑排序算法的实现 为了实现拓扑排序的算法,对给定的有向图可采用邻接表作为它的存储结构。 将每个链表的表头结点构成一个顺序表,各表头结点的Data域存放相应顶点的入度值。每个顶点入度初值可随邻接表动态生成过程中累计得到。 在拓扑排序过程中,凡入度为零的顶点即是没有前趋的顶点,可将其取出列入有序序列中,同时将该顶点从图中删除掉不再考虑。 删去一个顶点时,所有它的直接后继顶点入度均减1,表示相应的有向边也被删除掉。 设置一个堆栈,将已检验到的入度为零的顶点标号进栈,当再出现新的无前趋顶点时,也陆续将其进栈。每次选入度为零的顶点时,只要取栈顶顶点即可。 4 ∧ 0 ∧ 0 4 ∧ 2 1 0 0 3 ∧ 1 4 ∧ AOV网络的邻接表 0 1 2 3 4 顶点的入度 数组下标 用邻接表存储AOV网络,拓扑排序算法描述: (1) 把邻接表中所有入度为零的顶点进栈; (2) 在栈不空时: ① 退栈并输出栈顶的顶点 j; ② 在邻接表的第 j 个单链表中,查找顶点为 j 的所有直接后继顶点 k,并将 k 的入度减1。若顶点 k 的入度为零,则顶点 k 进栈; ③ 若栈空时输出的顶点个数不是 n,则有向图中有环路,否则拓扑排序完毕。 拓扑排序算法 Status Topological Sort(ALGraph G){ //有向图G采用邻接表存储结构。若G无回路, //则输出G的顶点的1个拓扑序列并返回OK,否则ERROR
您可能关注的文档
- 最后一课(阎捷)最后一课(阎捷).ppt
- 最小二乘插值与拟合推估最小二乘插值与拟合推估.pdf
- 最大利润练习题最大利润练习题.doc
- 最后一课(共2课时) 2最后一课(共2课时) 2.ppt
- 最小生成树问题的扩展最小生成树问题的扩展.pdf
- 曙光服务器备份还原软件用户使用指南曙光服务器备份还原软件用户使用指南.pdf
- 最新 人教版 新目标Go for it 英语九年级单词表(全)最新 人教版 新目标Go for it 英语九年级单词表(全).doc
- 最大摄氧量、乳酸阈、通气阈和心率在监测运动员训练效果中的应用最大摄氧量、乳酸阈、通气阈和心率在监测运动员训练效果中的应用.pdf
- 最新-通识课程价格方案最新-通识课程价格方案.doc
- 最想拥有的“奢侈品”海蓝之谜精华面霜评测最想拥有的“奢侈品”海蓝之谜精华面霜评测.pdf
- 人教版英语5年级下册全册教学课件.pptx
- 部编人教版2年级上册语文全册教学课件含单元及专项复习.pptx
- 人教版8年级上册英语全册教学课件(2021年8月修订).pptx
- 教科版(2017版)6年级上册科学全册课件+课时练.pptx
- 人教版PEP版6年级英语下册全册教学课件(2022年12月修订).pptx
- 部编人教版2年级下册语文全册课件(2021年春修订).pptx
- 人教版数学6年级下册全册教学课件(2023年教材).pptx
- 湘少版5年级下册英语全册教学课件(2021年春修订).pptx
- 人教PEP4年级下册英语全册教学课件 [2}.pptx
- 人教版6年级上册英语全册教学课件.pptx
最近下载
- 2025年鹤壁职业技术学院单招职业倾向性测试题库完整版.docx VIP
- 以科技创新推动现代产业体系创新PPT课件(带内容).pptx
- 江苏红色文化-第五学习单元 江苏红色文化之“魂”:淮海战役精神-江苏开大复习资料.docx
- 2024年山东省临沂市中考生物试卷附参考答案.pdf VIP
- 优选课件:鲁教版 高中地理必修一第四单元环境与发展41交通运输与区域发展.ppt
- 科研管理科研项目评审专家岗面试真题题库参考答案和答题要点.docx VIP
- 1.3丙类谐振功率放大器技巧.ppt
- 2022半导体行业并购趋势报告-云岫资本.ppt
- 《建立良好人际关系》课件.pptx VIP
- 直线与直线垂直 教学课件.pptx
文档评论(0)