已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
普里姆(Prim)算法,设N=(V,E,C)为连通网,TE是N的最小支撑树的边的集合。算法开始时,U=uo(uoV),TE=;找到满足weight(u,v)minweight(u1,v1)|u1U,v1V-U,的边,把它并入集合TE中,v同时并入U。反复执行,直至V=U时终止算法。,例,克鲁斯卡尔(Kruskar)算法,设连通网N=(V,E,C),T为N的最小支撑树。初始时T=V,即T中没有边,只有n个顶点就是n个连通分量。在E中选择权值最小的边,将此边从E中删除。如果此边的两个顶点在T的不同的连通分量中,则将此边加入到T中,从而导致T中减少一个连通分量;如果此边的两个顶点在同一个连通分量中,则重复执行,直至T中仅剩一个连通分量时,终止操作。,7.5拓扑排序7.5.1基本概念AOV网:在有向图中,用顶点表示活动,用有向边表示活动之间的先后关系,称这样的有向图为AOV网(ActivityOnVertexNetwork)。,例如,计算机专业学生的学习就是一个工程,每一门课程的学习就是整个工程的一些活动。其中有些课程要求先修课程,有些则不要求。这样在有的课程之间有领先关系,有的课程可以并行地学习。,例计算机专业必修课程安排,7.5拓扑排序7.5.1基本概念AOV网:在有向图中,用顶点表示活动,用有向边表示活动之间的先后关系,称这样的有向图为AOV网(ActivityOnVertexNetwork)。计划、施工过程、生产流程、程序流程等都是“工程”。除了很小的工程外,一般都把工程分为若干个叫做“活动”的子工程。完成了这些活动,这个工程就可以完成了。,在AOV网络中,如果活动ai必须在活动aj之前进行,则存在有向边,AOV网络中不能出现有向回路,即有向环。在AOV网络中如果出现了有向环,则意味着某项活动应以自己作为先决条件。因此,对给定的AOV网络,必须先判断它是否存在有向环。,拓扑序列:就是把AOV网中的所有顶点排成一个线性序列,使每个活动的所有前驱活动都排在该活动的前边。拓扑排序:构造AOV网的拓扑序列的过程被称为拓扑排序。,拓扑排序算法基本步骤从网中选择一个入度为0的顶点且输出之。从网中删除该顶点及其所有出边。执行,直至所有顶点已输出,或网中剩余顶点入度均不为0为止。,例如,对学生选课工程图进行拓扑排序:,C6,C0,C2,C3,C5,C4,C1,C7,C8,得到的某拓扑有序序列为C0,C1,C2,C4,C3,C5,C7,C8,C6,或C0,C7,C8,C1,C4,C2,C3,C6,C5,结果:对于任何无回路的AOV网,其所有顶点均可排成拓扑序列,并且其拓扑序列未必唯一。思考:利用拓扑排序可以检查AOV网是否存在环路,到底是通过什么方式检查的呢?,再例如,对学生选课工程图进行拓扑排序:,C6,C0,C2,C3,C5,C4,C1,C7,C8,得到的拓扑有序序列为C0,C1,C2,C7,C8,结果:对于任何无回路的AOV网,其所有顶点均可排成拓扑序列,并且其拓扑序列未必唯一。,结论:如果通过拓扑排序能将AOV网络的所有顶点都排入一个拓扑有序的序列中,则该AOV网络中必定不会出现有向环;相反,如果得不到满足要求的拓扑有序序列,则说明AOV网络中存在有向环,此AOV网络所代表的工程是不可行的。,7.5.2剖析拓扑排序算法例,0,0,2,1,2,3,indegree,4,2,3,拓扑排序算法描述:,InitStack(S);for(i=0;iG.vexnum;+i)/建零入度顶点栈Sif(!indegreei)Push(S,i);/入度为0者进栈count=0;/对输出顶点计数,0,0,2,1,2,3,初始top=-1,indegree,拓扑排序算法描述:,InitStack(S);for(i=0;iG.vexnum;+i)/建零入度顶点栈Sif(!indegreei)Push(S,i);/入度为0者进栈count=0;/对输出顶点计数,0,0,2,1,2,3,indegree,拓扑排序算法描述:,InitStack(S);for(i=0;iG.vexnum;+i)/建零入度顶点栈Sif(!indegreei)Push(S,i);/入度为0者进栈count=0;/对输出顶点计数,0,0,2,1,2,3,indegree,拓扑排序算法描述:,InitStack(S);for(i=0;iG.vexnum;+i)/建零入度顶点栈Sif(!indegreei)Push(S,i);/入度为0者进栈count=0;/对输出顶点计数,0,0,2,1,2,3,indegree,拓扑排序算法描述:,InitStack(S);for(i=0;iadjvex;/对i号顶点的每个邻接点的入度减1if(!(-indegreek)Push(S,k);/若入度减为0,则入栈,0,0,2,1,2,3,indegree,while(!StackEmpty(S)Pop(S,i);printf(i,G.verticesi.data);+count;/输出i号顶点并计数for(p=G.verticesi.firstarc;p;p=p-nextarc)k=p-adjvex;/对i号顶点的每个邻接点的入度减1if(!(-indegreek)Push(S,k);/若入度减为0,则入栈,0,0,2,0,2,3,indegree,while(!StackEmpty(S)Pop(S,i);printf(i,G.verticesi.data);+count;/输出i号顶点并计数for(p=G.verticesi.firstarc;p;p=p-nextarc)k=p-adjvex;/对i号顶点的每个邻接点的入度减1if(!(-indegreek)Push(S,k);/若入度减为0,则入栈,0,0,2,0,2,3,indegree,while(!StackEmpty(S)Pop(S,i);printf(i,G.verticesi.data);+count;/输出i号顶点并计数for(p=G.verticesi.firstarc;p;p=p-nextarc)k=p-adjvex;/对i号顶点的每个邻接点的入度减1if(!(-indegreek)Push(S,k);/若入度减为0,则入栈,0,0,1,0,2,3,indegree,while(!StackEmpty(S)Pop(S,i);printf(i,G.verticesi.data);+count;/输出i号顶点并计数for(p=G.verticesi.firstarc;p;p=p-nextarc)k=p-adjvex;/对i号顶点的每个邻接点的入度减1if(!(-indegreek)Push(S,k);/若入度减为0,则入栈,4,2,3,0,0,1,0,1,3,indegree,while(!StackEmpty(S)Pop(S,i);printf(i,G.verticesi.data);+count;/输出i号顶点并计数for(p=G.verticesi.firstarc;p;p=p-nextarc)k=p-adjvex;/对i号顶点的每个邻接点的入度减1if(!(-indegreek)Push(S,k);/若入度减为0,则入栈,4,2,3,0,0,1,0,1,3,indegree,if(countG.vexnum)returnERROR;/该有向图有回路elsereturnOK;,7.6关键路径7.6.1基本概念如果在有向无环的带权图中用有向边表示一个工程中的各项活动(Activity)用边上的权值表示活动的持续时间(Duration)用顶点表示事件(Event)则这样的有向图叫做用边表示活动的网络,简称AOE(ActivityOnEdges)网络。源点:表示整个工程的开始(入度为零)。汇点:表示整个工程的结束(出度为零)。,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,例某工程(1)完成整个工程至少需要多少时间?(2)为完成工程所需的时间,应当加快哪些活动?,在AOE网络中,有些活动顺序进行,有些活动并行进行。从源点到各个顶点,以至从源点到汇点的有向路径可能不止一条。这些路径的长度也可能不同。完成不同路径的活动所需的时间虽然不同,但只有各条路径上所有活动都完成了,整个工程才算完成。因此,完成整个工程所需的时间取决于从源点到汇点的最长路径长度,即在这条路径上所有活动的持续时间之和。这条路径长度最长的路径就叫做关键路径(CriticalPath)。,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,例某工程关键路径:从源点到汇点具有最大长度的路径称为关键路径。路径长度:指路径上的各边权值之和。,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,关键活动有关的量:,事件vi的最早发生时间ve(i):从源点v0到vi的最长路径长度。,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,事件vi的最早发生时间ve(i),ve(0)=0ve(1)=ve(0)+weight()=0+6=6ve(2)=ve(0)+weight()=0+4=4ve(3)=ve(0)+weight()=0+5=5ve(4)=maxve(1)+weight(),ve(2)+weight()=max6+1,4+1=7,ve(5)=ve(3)+weight()=5+2=7ve(6)=ve(4)+weight()=7+9=16ve(7)=maxve(4)+weight(),ve(5)+weight()=max7+7,7+4=14ve(8)=maxve(6)+weight(),ve(7)+weight()=max16+2,14+4=18,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,关键活动有关的量:,事件vi的最迟发生时间vl(i):保证汇点的最早发生时间不推迟的前提下事件vi允许的最迟开始时间,等于ve(n-1)减去从vi到vn-1最长路径长度。,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,事件vi的最迟发生时间vl(i),vl(8)=ve(8)=18vl(7)=vl(8)-weight()=18-4=14vl(6)=vl(8)-weight()=18-2=16vl(5)=vl(7)-weight()=14-4=10vl(4)=minvl(7)-weight(),vl(6)-weight()=min14-7,16-9=7,vl(3)=vl(5)-weight()=10-2=8vl(2)=vl(4)-weight()=7-1=6vl(1)=vl(4)-weight()=7-1=6vl(0)=minvl(1)-weight(),vl(2)-weight(),vl(3)-weight()=min6-6,6-4,8-5=0,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,关键活动有关的量:,活动ai的最早开始时间e(i):设活动ai在有向边上,ve(j)是从源点v0到vj的最长路径长度。因此e(i)=ve(j)。,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,活动ai的最早开始时间e(i),ai,e(i),a1a2a3a4a5a6a7a8a9a10a11,0,0,0,6,4,5,7,7,7,16,14,012345678,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,关键活动有关的量:,活动ai的最迟开始时间l(i):l(i)是在不会引起时间延误的前提下,该活动允许的最迟开始时间。设活动ai在有向边上,则l(i)=vl(k)-weight(),a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,ai,l(i),a1a2a3a4a5a6a7a8a9a10a11,0,2,3,6,6,8,7,7,10,16,14,活动ai的最迟开始时间l(i),012345678,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,关键活动有关的量:,关键活动:若l(i)e(i)表示活动ai是没有时间余量,则该活动ai即为要找的关键活动。,a1=6,a8=7,a7=9,a6=2,a4=1,a5=1,a3=5,a2=4,a9=4,a11=4,a10=2,关键活动,ai,e(i),l(i),
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年芮城县教师招聘考试模拟试题及答案解析
- 2026年盱眙县教师招聘笔试备考题库及答案解析
- 2026年农安县教师招聘笔试参考题库及答案解析
- 2026年北外滩街道社区工作者、见习社区工作者(辅工)招聘笔试模拟试题及答案解析
- 2027中国石化销售华北分公司校园招聘岗位-4人笔试备考试题及答案解析
- 2026年永清县教师招聘考试模拟试题及答案解析
- 2026下半年珠海高新区公开招聘公办学校事业编制教师40名考试模拟试题及答案解析
- 中国电子科技集团公司第十二研究所2027届校园招聘笔试备考试题及答案解析
- 2026-江苏国有广播电视台预算核算招聘考试参考题库-含答案
- 2026-北京税务局后勤总务招聘考试参考题库-含答案
- 2026年研学导师岗位培训考试试题(附答案)
- 26新五年级上册语文第一次月考检测卷1-2单元
- 第一单元《健康生活 单元小结》课件
- 细胞治疗产品审批监管趋势与市场准入报告
- 国聘招聘笔试测评题库
- 新生儿颅脑超声诊断专家共识(2026版)
- 劲性钢骨梁柱施工方案
- 2026全球及中国柠檬行业消费趋势与需求规模预测报告
- 《碳中和导论》课件-第四章 储能技术与绿色燃料
- 雨课堂学堂在线学堂云《人工智能时代的创新思维(北京理工)》单元测试考核答案
- (2026年)经导管主动脉瓣置换术(TAVR)患者的麻醉管理课件
评论
0/150
提交评论