已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,1.问题的提出:已知一个各边权值均大于0的带权有向图,对每一对顶点 vi vj,要求求出vi 与vj之间的最短路径和最短路径长度。,2.解决办法 方法一:每次以一个顶点为源点,重复执行Dijkstra算法n次 T(n)=O(n) 方法二:弗洛伊德(Floyd)算法,2,求最短路径步骤 初始时设置一个n阶方阵,令其对角线元素为0,若存在弧,则对应元素为权值;否则为 逐步试着在原直接路径中增加中间顶点,若加入中间点后路径变短,则修改之;否则,维持原值 所有顶点试探完毕,算法结束,3. Floyd算法思想:逐个顶点试探法,从图的带权邻接矩阵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的最短路径。,2. 第二次,再加一个顶点V1,如果(Vi, , V1) 和(V1, , Vj)分别是当前找到的中间顶点序号不大于0的最短路径,那么(Vi, , V1, , Vj )就有可能是从Vi到Vj的中间顶点序号不大于1的最短路径。将它和已经得到的从Vi到Vj之间顶点序号不大于0的最短路径相比较,取较短者为从Vi到Vj的中间顶点序号不大于1的最短路径。,3. 第三次,再加一个顶点V2,继续进行试探。,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的最短路径长度.,以D(0)为基础,以V1为中间顶点,求从Vi,到Vj的最短路径。该路径或者为从Vi到Vj的边, 或者为从Vi开始通过V0或V1到达Vj的最短路径 。,D(1) ij =,minD(0) ij, D(0) i1+D(0) 1j,以D(1)为基础,以V2为中间顶点,求从Vi,到Vj的最短路径。或者为从Vi到Vj的边, 或者为从Vi开始通过V0,V1, V2到达Vj的最短路径 。,D(2) ij =,minD(1) ij, D(1) i2+D(1) 2j,以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的最短路径长度.,9,例题:,10,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时,,12,i,j,k,A(k-1) ik,A(k-1) kj,A(k-1) ij,因为:A(k) ij = min A(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)。,13,图用邻接矩阵存储 edge 存放最短路径长度 pathij是从Vi到Vj的最短路径上Vj前一顶点序号,5.算法实现,void floyd ( ) for ( int i = 0; i n; i+ ) /矩阵dist与path初始化 for ( int j = 0; j n; j+ ) /置A(-1) distij = Edgeij; pathij = -1; / 初始不经过任何顶点 for ( int k = 0; k n; k+ ) /产生dist(k)及path(k) for ( i = 0; i n; i+ ) for ( j = 0; j n; j+ ) if (distik + distkj distij ) distij = distik + distkj; pathij = k; /缩短路径, 绕过 k 到 j / floyd,14,6.算法分析: 设最内层循环体为基本操作,算法有三层循环,每层循环n次,所以T(n)=O(n3),15,16,以 Path(3)为例,对最短路径的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学健康教育学(健康教育策划)试题及答案
- 2025年中职美术教育(教学方法)试题及答案
- 2025年高职(农产品加工与质量检测)农产品质量检测试题及答案
- 2025年大学大三(无人机植保技术)无人机农业植保作业规划综合测试题及答案
- 2025年中职市场营销(销售技巧)试题及答案
- 2025年高职第一学年(学前教育)幼儿行为观察与分析试题及答案
- 2025年高职药学(药品调剂技术)试题及答案
- 2026年商场管理(商户服务管理)试题及答案
- 2025年高职计算机应用(办公软件应用)试题及答案
- 2025年高职数字媒体艺术设计(媒体应用)试题及答案
- 《念奴娇 赤壁怀古》《永遇乐 京口北固亭怀古》《声声慢》默写练习 统编版高中语文必修上册
- 妇产科病史采集临床思维
- 《半导体器件物理》复习题2012
- 非电量保护装置技术说明书
- 全国行政区划代码
- 新华书店先进事迹汇报
- 船体振动的衡准及减振方法
- 刑事侦查卷宗
- 水泥混凝土路面滑模摊铺机施工工法
- 儿童严重过敏反应急救演示文稿
- GB/T 4802.1-2008纺织品织物起毛起球性能的测定第1部分:圆轨迹法
评论
0/150
提交评论