




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、有向无环图: 一个无环的有向图,简称DAG图。 P179 图7.22、7.23 DAG图: 描述含有公共子式的表达式及工程或系统的进行过程时的有效工具。 活动:一个较大的工程被划分成许多子工程,这些子工程被称作活动。活动之间,存在某种约束,如:某些子工程的开始必须在另外一些子工程完成之后。 关心问题: 1.工程能否顺利进行 2.估算 整个工程完成所必须的最短时间,7.5有向无环图及其应用 拓扑排序 问题提出:学生选修课程问题 顶点表示课程 有向弧表示先决条件,若课程i是j的先决条件,则图中有弧 学生应按怎样的顺序学习这些课程,才能无矛盾、顺利地完成学业拓扑排序 定义 AOV网用顶点表示活动,用
2、弧表示活动间优先关系的有向图称为顶点表示活动的网(Activity On Vertex network),简称AOV网 若是图中有向边,则vi是vj的直接前驱;vj是vi的直接后继 AOV网中不允许有回路,这意味着某项活动以自己为先决条件,拓扑排序把AOV网络中各顶点按照它们相互之间的优先关系排列成一个线性序列的过程叫 检测AOV网中是否存在环方法:对有向图构造其顶点的拓扑有序序列,若网中所有顶点都在它的拓扑有序序列中,则该AOV网必定不存在环 拓扑排序的方法 在有向图中选一个没有前驱的顶点且输出之 从图中删除该顶点和所有以它为尾的弧 重复上述两步,直至全部顶点均已输出;或者当图中不存在无前驱
3、的顶点为止,拓扑序列:C1-C2-C3-C4-C5-C7-C9-C10-C11-C6-C12-C8 或 :C9-C10-C11-C6-C1-C12-C4-C2-C3-C5-C7-C8,一个AOV网的拓扑序列不是唯一的,算法实现 以邻接表作存储结构 设置一个包含n个元素的一维数组indegree,保存AOV网中每个顶点的入度值。 把邻接表中所有入度为0的顶点进栈 栈非空时,输出栈顶元素Vj并退栈;在邻接表中查找Vj的直接后继Vk,把Vk的入度减1,即indegreek-1;若Vk的入度为0则进栈 重复上述操作直至栈空为止。若栈空时输出的顶点个数不是n,则有向图有环;否则,拓扑排序完毕,算法描述,
4、1,6,输出序列:6,输出序列:6,输出序列:6,输出序列:6,输出序列:6,输出序列:6,输出序列:6 1,输出序列:6 1,输出序列:6 1,4,输出序列:6 1,4,输出序列:6 1,4,输出序列:6 1,4,3,输出序列:6 1,4,3,输出序列:6 1,4,3,输出序列:6 1,4,3,输出序列:6 1,4,3,输出序列:6 1 3,4,3,输出序列:6 1 3,4,输出序列:6 1 3,4,输出序列:6 1 3,4,输出序列:6 1 3,4,2,输出序列:6 1 3,4,2,输出序列:6 1 3,4,2,输出序列:6 1 3 2,4,2,输出序列:6 1 3 2,4,输出序列:6
5、1 3 2 4,4,输出序列:6 1 3 2 4,输出序列:6 1 3 2 4,5,输出序列:6 1 3 2 4,5,输出序列:6 1 3 2 4 5,5,输出序列:6 1 3 2 4 5,算法分析-算法7.12,建邻接表:T(n)=O(e) 搜索入度为0的顶点的时间:T(n)=O(n) 拓扑排序:T(n)=O(n+e),关键路径 问题提出,把工程计划表示为有向图,用顶点表示事件,弧表示活动; 每个事件表示在它之前的活动已完成,在它之后的活动可以开始,例 设一个工程有11项活动,9个事件 事件 V1表示整个工程开始 事件V9表示整个工程结束 问题:(1)完成整项工程至少需要多少时间? (2)哪
6、些活动是影响工程进度的关键?,定义 AOE网(Activity On Edge)也叫边表示活动的网。AOE网是一个带权的有向无环图,其中顶点表示事件,弧表示活动,权表示活动持续时间 路径长度路径上各活动持续时间之和 关键路径路径长度最长的路径叫 Ve(j)表示事件Vj的最早发生时间 Vl(j)表示事件Vj的最迟发生时间 e(i)表示活动ai的最早开始时间 l(i)表示活动ai的最迟开始时间 l(i)-e(i)表示完成活动ai的时间余量 关键活动关键路径上的活动叫,即l(i)=e(i)的活动,问题分析 如何找e(i)=l(i)的关键活动?,设活动ai用弧表示,其持续时间记为:dut() 则有:(
7、1)e(i)=Ve(j) (2)l(i)=Vl(k)-dut(),如何求Ve(j)和Vl(j)?,(1)从Ve(1)=0开始递推,(2)从Vl(n)=Ve(n)开始递推,求关键路径步骤 求Ve(i) 求Vl(j) 求e(i) 求l(i) 计算l(i)-e(i),V1 V2 V3 V4 V5 V6 V7 V8 V9,0 6 4 5 7 7 16 14 18,0 6 6 8 7 10 16 14 18,a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11, ,算法实现 以邻接表作存储结构 从源点V1出发,令Ve1=0,按拓扑序列求各顶点的Vei 从汇点Vn出发,令Vln=Ven,按
8、逆拓扑序列求其余各顶点的Vli 根据各顶点的Ve和Vl值,计算每条弧的ei和li,找出ei=li的关键活动,算法描述 1-输入顶点和弧信息,建立其邻接表 计算每个顶点的入度 2-对其进行拓扑排序 2.1-排序过程中求顶点的Vei 2.2-将得到的拓扑序列进栈 3-按逆拓扑序列求顶点的Vli 4-计算每条弧的ei和li,找出ei=li的关键活动,Status TopologicalOrder(ALGraph G, Stack / TopologicalOrder,Status CriticalPath(ALGraph G) / 算法7.14, G为有向网,输出G的各项关键活动。 Stack T; int a,j,k,el,ee,dut; char tag; ArcNode *p; if (!TopologicalOrder(G, T) return ERROR; for(a=0; anextarc) k=p-adjvex; dut=p-info; /dut if (vlk-dut nextarc) k=p-adjvex;dut=p-info; ee = vej; el = vlk-dut; tag = (ee=el) ? * : ;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人融资担保协议二零二五年
- 公司股份分配协议书二零二五年
- 2合伙人合同样本
- 借用协议合同样本
- 六年级体育教案
- 乳品销售合同样本
- 二十类典型合同样本
- 个人雇短工合同样本
- 学习房地产项目工程质量管理与监控心得
- 2025物业管理合同协议范本
- 2023年北京市农林科学院事业单位招聘(共500题含答案解析)笔试历年难、易错考点试题含答案附详解
- 尿崩症诊疗规范内科学诊疗规范诊疗指南2023版
- 3D打印实训指导书
- 除草机器人简介
- 当代文学第一章1949-1966年的文学思潮
- 抽油井检泵作业课件
- a320飞机空调系统工作原理与使用维护分析
- 施工机具进场检查验收记录
- 《液压与气动技术项目教程》高职配套教学课件
- 2022年七步洗手法操作考核评分标准
- 过敏性紫癜的护理PPT课件(PPT 33页)
评论
0/150
提交评论