




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,1.问题的提出:已知一个各边权值均大于0的带权有向图,对每一对顶点vivj,要求求出vi与vj之间的最短路径和最短路径长度。,2.解决办法方法一:每次以一个顶点为源点,重复执行Dijkstra算法n次T(n)=O(n)方法二:弗洛伊德(Floyd)算法,1,5/2/2020,2,求最短路径步骤初始时设置一个n阶方阵,令其对角线元素为0,若存在弧,则对应元素为权值;否则为逐步试着在原直接路径中增加中间顶点,若加入中间点后路径变短,则修改之;否则,维持原值所有顶点试探完毕,算法结束,3.Floyd算法思想:逐个顶点试探法,2,5/2/2020,从图的带权邻接矩阵G.arcs出发,假设求顶点Vi到Vj的最短路径。如果从Vi到Vj有弧,则从Vi到Vj存在一条长度为G.arcsij的路径,但该路径是否一定是最短路径,还需要进行n次试探。,1.第一次,判别(Vi,V0)和(V0,Vj),即判别(Vi,V0,Vj)是否存在,若存在,则比较(Vi,Vj)和(Vi,V0,Vj)的长度,取长度较短的为从Vi到Vj的中间顶点序号不大于0的最短路径。,3,5/2/2020,2.第二次,再加一个顶点V1,如果(Vi,V1)和(V1,Vj)分别是当前找到的中间顶点序号不大于0的最短路径,那么(Vi,V1,Vj)就有可能是从Vi到Vj的中间顶点序号不大于1的最短路径。将它和已经得到的从Vi到Vj之间顶点序号不大于0的最短路径相比较,取较短者为从Vi到Vj的中间顶点序号不大于1的最短路径。,3.第三次,再加一个顶点V2,继续进行试探。,4,5/2/2020,D(-1)=,D(-1)为有向网的邻接矩阵第一步:以D(-1)为基础,以V0为中间顶点,求从Vi到Vj的最短路径。该路径或者为从Vi到Vj的边,或者为(Vi,V0)+(V0,Vj)。,D(0)ij=,minD(-1)ij,D(-1)i0+D(-1)0j,D(0)ij为从Vi到Vj的中间顶点序号不大于0的最短路径长度.,5,2020/5/2,以D(0)为基础,以V1为中间顶点,求从Vi,到Vj的最短路径。该路径或者为从Vi到Vj的边,或者为从Vi开始通过V0或V1到达Vj的最短路径。,D(1)ij=,minD(0)ij,D(0)i1+D(0)1j,6,2020/5/2,以D(1)为基础,以V2为中间顶点,求从Vi,到Vj的最短路径。或者为从Vi到Vj的边,或者为从Vi开始通过V0,V1,V2到达Vj的最短路径。,D(2)ij=,minD(1)ij,D(1)i2+D(1)2j,7,2020/5/2,以D(2)为基础,以V3为中间顶点,求从Vi,到Vj的最短路径。或者为从Vi到Vj的边,或者为从Vi开始通过V0,V1,V2,V3到达Vj的最短路径。,D(3)ij=,minD(2)ij,D(2)i3+D(2)3j,D(3)ij即为从Vi到Vj的最短路径长度.,8,2020/5/2,9,例题:,9,5/2/2020,10,10,5/2/2020,11,4.论点:A(-1)ij是从顶点vi到vj,中间顶点是v1的最短路径的长度,A(k)ij是从顶点vi到vj,中间顶点的序号不大于k的最短路径的长度,A(n-1)ij是从顶点vi到vj的最短路径长度。证明:归纳证明,始归纳于s(上角标);(1)归纳基础:当s=-1时,A(-1)ij=Edgeij,vi到vj,不经过任何顶点的边,是最短路径。(2)归纳假设:当sk时,A(s)ij是从顶点vi到vj,中间顶点的序号不大于s的最短路径的长度;(3)当s=k时,,11,5/2/2020,12,i,j,k,A(k-1)ik,A(k-1)kj,A(k-1)ij,因为:A(k)ij=minA(k-1)ij,A(k-1)ik+A(k-1)kj由归纳假设知:A(k-1)ij:是i到j的最短路径(标号不高于k-1);A(k-1)ik:是i到k的最短路径(标号不高于k-1);A(k-1)kj:是k到j的最短路径(标号不高于k-1);所以:A(k)ij是i到j的最短路径(标号不高于k)。,12,5/2/2020,13,图用邻接矩阵存储edge存放最短路径长度pathij是从Vi到Vj的最短路径上Vj前一顶点序号,5.算法实现,voidfloyd()for(inti=0;in;i+)/矩阵dist与path初始化for(intj=0;jn;j+)/置A(-1)distij=Edgeij;pathij=-1;/初始不经过任何顶点for(intk=0;kn;k+)/产生dist(k)及path(k)for(i=0;in;i+)for(j=0;jn;j+)if(distik+distkjdistij)distij=distik+distkj;pathij=k;/缩短路径,绕过k到j/floyd,13,5/2/2020,14,6.算法分析:设最内层循环体为基本操作,算法有三层循环,每层循环n次,所以T(n)=O(n3),14,5/2/2020,15,15,5/2/2020,16,以Path(3)为例,对最短路径的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit6 Celebrating the Big Days单元测试卷(含答案) 仁爱科普版(2024)七年级英语上册
- 用电安全知识培训大纲课件
- 生铁废钢基础知识培训课件
- 生理解剖兔子实验课件
- 生物安全知识培训课件证明
- 2025年注册安全评价师考试模拟试卷 安全风险评估专项训练
- 2025年Python二级考试冲刺试卷:核心知识点专项训练
- 课本理论考试题及答案
- 2025至2030中国种牛市场前景分析及行业前景与趋势报告
- 2025至2030中国基于客户端的MMORPG行业产业运行态势及投资规划深度研究报告
- 国企保密管理制度
- 2025年山东威海城投集团子公司招聘工作人员19人自考难、易点模拟试卷(共500题附带答案详解)
- 野外作业安全知识培训
- 工程资质挂靠合作协议书范本
- 《贝叶斯估计》课件
- 2025重庆市建筑安全员《B证》考试题库及答案
- 2024年中交分包商培训参考答案
- 建筑安全五大危险源
- 肥厚型梗阻性心肌病护理
- 腹腔热灌注化疗术后护理
- 铁路防寒安全培训
评论
0/150
提交评论