![算法12最短路径弗洛伊德Floyd算法_第1页](http://file4.renrendoc.com/view/76f0c4b0468c22d2ef1ed6b76965dcc6/76f0c4b0468c22d2ef1ed6b76965dcc61.gif)
![算法12最短路径弗洛伊德Floyd算法_第2页](http://file4.renrendoc.com/view/76f0c4b0468c22d2ef1ed6b76965dcc6/76f0c4b0468c22d2ef1ed6b76965dcc62.gif)
![算法12最短路径弗洛伊德Floyd算法_第3页](http://file4.renrendoc.com/view/76f0c4b0468c22d2ef1ed6b76965dcc6/76f0c4b0468c22d2ef1ed6b76965dcc63.gif)
![算法12最短路径弗洛伊德Floyd算法_第4页](http://file4.renrendoc.com/view/76f0c4b0468c22d2ef1ed6b76965dcc6/76f0c4b0468c22d2ef1ed6b76965dcc64.gif)
![算法12最短路径弗洛伊德Floyd算法_第5页](http://file4.renrendoc.com/view/76f0c4b0468c22d2ef1ed6b76965dcc6/76f0c4b0468c22d2ef1ed6b76965dcc65.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
11.问题的提出:已知一个各边权值均大于0的带权有向图,对每一对顶点vi
vj,要求求出vi
与vj之间的最短路径和最短路径长度。2.解决办法方法一:每次以一个顶点为源点,重复执行Dijkstra算法n次——T(n)=O(n³)方法二:弗洛伊德(Floyd)算法2求最短路径步骤初始时设置一个n阶方阵,令其对角线元素为0,若存在弧<Vi,Vj>,则对应元素为权值;否则为逐步试着在原直接路径中增加中间顶点,若加入中间点后路径变短,则修改之;否则,维持原值所有顶点试探完毕,算法结束3.Floyd算法思想:逐个顶点试探法从图的带权邻接矩阵G.arcs出发,假设求顶点Vi到Vj的最短路径。如果从Vi到Vj有弧,则从Vi到Vj存在一条长度为G.arcs[i][j]的路径,但该路径是否一定是最短路径,还需要进行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,继续进行试探。
V2V3V0V1123456890123012301240092350801608888D(-1)=
D(-1)为有向网的邻接矩阵
第一步:以D(-1)为基础,以V0为中间顶点,求从Vi到Vj的最短路径。该路径或者为从Vi到Vj的边,或者为(Vi,V0)+(V0,Vj)。
D(0)[i][j]=
min{D(-1)[i][j],
D(-1)[i][0]+D(-1)[0][j]}47D(0)=
D(0)[i][j]为从Vi到Vj的中间顶点序号不大于0的最短路径长度.V0V2V3V0V112345689
以D(0)为基础,以V1为中间顶点,求从Vi,到Vj的最短路径。该路径或者为从Vi到Vj的边,或者为从Vi开始通过V0或V1到达Vj的最短路径。
D(1)[i][j]=
min{D(0)[i][j],
D(0)[i][1]+D(0)[1][j]}0123012301240092350801608888A(-1)=47D(0)=1036D(1)=V0V1V0V1V2V3V0V112345689
以D(1)为基础,以V2为中间顶点,求从Vi,到Vj的最短路径。或者为从Vi到Vj的边,或者为从Vi开始通过V0,V1,V2到达Vj的最短路径。
D(2)[i][j]=
min{D(1)[i][j],
D(1)[i][2]+D(1)[2][j]}0123012301240092350801608888A(-1)=47A(0)=1036D(1)=D(2)=12
910V0V1V20123012301240092350801608888A(-1)=47A(0)=1036A(1)=D(2)=12
910D(3)=V2V3V0V112345689
以D(2)为基础,以V3为中间顶点,求从Vi,到Vj的最短路径。或者为从Vi到Vj的边,或者为从Vi开始通过V0,V1,V2,V3到达Vj的最短路径。
D(3)[i][j]=
min{D(2)[i][j],
D(2)[i][3]+D(2)[3][j]}
9
11
8V3V2V0V1
D(3)[i][j]即为从Vi到Vj的最短路径长度.9ACB264311041160230初始:路径:ABACBA
BCCA046602370加入B:路径:ABABCBA
BCCA
CAB0411602370加入A:路径:ABACBA
BCCACAB046502370加入C:路径:AB
ABCBCA
BCCA
CAB例题:10例ACB264311初始:041160230length=011202300path=加入A:0411602370length=011202310path=加入B:046602370length=012202310path=加入C:046502370length=012302310path=114.论点:A(-1)[i][j]是从顶点vi到vj,中间顶点是
v1的最短路径的长度,A(k)[i][j]是从顶点vi到vj,中间顶点的序号不大于k的最短路径的长度,A(n-1)[i][j]是从顶点vi到vj的最短路径长度。证明:归纳证明,始归纳于s(上角标);(1)归纳基础:当s=-1时,A(-1)[i][j]=Edge[i][j],vi到vj,不经过任何顶点的边,是最短路径。(2)归纳假设:当s<k时,A(s)[i][j]是从顶点vi到vj,中间顶点的序号不大于s的最短路径的长度;(3)当s=k时,12
ijkA(k-1)[i][k]A(k-1)[k][j]A(k-1)[i][j]因为:A(k)[i][j]=min{A(k-1)[i][j],
A(k-1)[i][k]+A(k-1)[k][j]}由归纳假设知:A(k-1)[i][j]:是i到j的最短路径(标号不高于k-1);A(k-1)[i][k]:是i到k的最短路径(标号不高于k-1);A(k-1)[k][j]:是k到j的最短路径(标号不高于k-1);所以:A(k)[i][j]是i到j的最短路径(标号不高于k)。
13图用邻接矩阵存储edge[][]存放最短路径长度path[i][j]是从Vi到Vj的最短路径上Vj前一顶点序号5.算法实现voidfloyd(){
for(inti=0;i<n;i++)//矩阵dist与path初始化
for(int
j=0;j<n;j++){//置A(-1)dist[i][j]=Edge[i][j];
path[i][j]=-1;}//初始不经过任何顶点
for(intk=0;k<n;k++)//产生dist(k)及path(k)for(i=0;i<n;i++) for(j=0;j<n;j++)if(dist[i][k]+dist[k][j]<dist[i][j]){
dist[i][j]=dist[i][k]+dist[k][j];
path[i][j]=k;}//缩短路径,绕过k到j
}//floyd
146.算法分析:设最内层循环体为基本操作,算法有三层循环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度国产打印机节能环保认证采购合同
- 重庆2025年重庆市北碚区基层医疗卫生事业单位招聘14人笔试历年参考题库附带答案详解
- 酒泉2025年甘肃酒泉市公安局招聘留置看护岗位辅警60人笔试历年参考题库附带答案详解
- 贵州2025年贵州省文化和旅游厅直属事业单位招聘12人笔试历年参考题库附带答案详解
- 玉林2025年广西玉林市第一人民医院招聘24人笔试历年参考题库附带答案详解
- 漯河2024年河南漯河市立医院(漯河市骨科医院漯河医专二附院)招聘高层次人才笔试历年参考题库附带答案详解
- 海口海南海口市琼山区教育局招聘2025届师范毕业生笔试历年参考题库附带答案详解
- 河北2024年中国工商银行河北分行乡村振兴专项招聘20人笔试历年参考题库附带答案详解
- 2025年中国太阳能十字路口单黄闪警示灯市场调查研究报告
- 2025年艾纳素项目可行性研究报告
- 光缆线路施工安全协议书范本
- 成本合约规划培训
- 山东省济宁市2025届高三历史一轮复习高考仿真试卷 含答案
- 五年级数学(小数乘法)计算题专项练习及答案
- 交通法规教育课件
- 产前诊断室护理工作总结
- 6S管理知识培训课件
- 小学校长任期五年工作目标(2024年-2029年)
- 医院培训课件:《猴痘流行病学特点及中国大陆首例猴痘病例调查处置》
- 氢气-安全技术说明书MSDS
- 产科护士临床思维能力培养
评论
0/150
提交评论