![Floyd算法计算最短距离矩阵和路由矩阵查询最短距离和路由matlab试验报告_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/50f1d287-2035-4c39-9ece-6621fb52e53f/50f1d287-2035-4c39-9ece-6621fb52e53f1.gif)
![Floyd算法计算最短距离矩阵和路由矩阵查询最短距离和路由matlab试验报告_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/50f1d287-2035-4c39-9ece-6621fb52e53f/50f1d287-2035-4c39-9ece-6621fb52e53f2.gif)
![Floyd算法计算最短距离矩阵和路由矩阵查询最短距离和路由matlab试验报告_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/50f1d287-2035-4c39-9ece-6621fb52e53f/50f1d287-2035-4c39-9ece-6621fb52e53f3.gif)
![Floyd算法计算最短距离矩阵和路由矩阵查询最短距离和路由matlab试验报告_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/50f1d287-2035-4c39-9ece-6621fb52e53f/50f1d287-2035-4c39-9ece-6621fb52e53f4.gif)
![Floyd算法计算最短距离矩阵和路由矩阵查询最短距离和路由matlab试验报告_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/50f1d287-2035-4c39-9ece-6621fb52e53f/50f1d287-2035-4c39-9ece-6621fb52e53f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验四:Floyd算法、实验目的利用MATLAB实现Floyd算法,可对输入的邻接距离矩阵计算图中任意两点间的最短距离矩阵和路由矩阵,且能查询任意两点间的最短距离和路由。二、实验原理Floyd算法适用于求解网络中的任意两点间的最短路径:通过图的权值矩阵求出任意两点间的最短距离矩阵和路由矩阵。优点是容易理解,可以算出任意两个节点之间最短距离的算法,且程序容易实现,缺点是复杂度达到,不适合计算大量数据。Floyd 算法可描述如下:给定图G及其边(i,j)的权wi,j(1W由,1可句)F0:初始化距离矩阵 W和路由矩阵 R。其中:“若(有边)吗n0C若%区F(无边)0若(对角线元素),JJ若 80,
2、其它|F1:已求得 W(k-1)和 R(k-1),依据下面的迭代求 W 的和 R 的吧二皿1(唠?喈+啕)网伊若叫产“产七一反心若明产二“严F2:若 kn,终止。三、实验内容1、用MATLAB仿真工具实现Floyd算法:给定图G及其边(i,j)的权Wi,j(1W由,1可f),求出其各个端点之间的最小距离以及路由。(1)尽可能用M函数分别实现算法的关键部分,用M脚本来进行算法结果验证;(2)分别用以下两个初始距离矩阵表示的图进行算法验证:分别求出W和R(7)2、根据最短路由矩阵查询任意两点间的最短距离和路由(1)最短距离可以从最短距离矩阵的 3(i,j)中直接得出;(2)相应的路由则可以通过在路
3、由矩阵中查找得出。由于该程序中使用的是前向矩阵,因此在查找的过程中,路由矩阵中 r(i,j)对应的值为 Vi 到 Vj 路由上的下一个端点,这样再代入r(r(i,j),j),可得到下下个端点,由此不断循环下去,即可找到最终的路I(3)对图 1,分别以端点对 V4 和 V6,V3 和 V4 为例,求其最短距离和路由;对图 2,分别以端点对 V1 和 V7,V3 和 V5,V1 和 V6 为例,求其最短距离和路由。3、输入一邻接权值矩阵,求解最短距离和路由矩阵,及某些点间的最短路径。四、采用的语言MatLab源代码:func1.mfunctionwr=func1(w)n=length(w);x=w
4、;r=zeros(n,1);%汕矩阵的初始化fori=1:1:nforj=1:1:nifx(i,j)=infr(i,j)=O;elser(i,j尸j;end,endend;%迭代求出k次w值fork=1:na=w;s=w;fori=1:nforj=1:nw(i,j)=min(s(i,j),s(i,k)+s(k,j);end0100100L29.210005100010051003.12100100010010041.5用=1.2510006.71001009.21001006.7015.61001003.1410015.601000521.5100100100000.521.510010010
5、00.50100100L29.21002100010051003,11.5100100010010041001251000651001009.21001006.7015.61001003.1410015,60end%根据k-1次值和k次w值求出k次r值fori=1:nforj=1:nifi=jr(i,j)=0;elseifw(i,j)a(i,j)r(i,j)=r(i,k);elser(i,j)=r(i,j);endendendend;func2.mfunctionPu=func2(w,k1,k2)n=length(w);U=w;m=1;whilemU(i,m)+U(m,j)U(i,j)=U(i
6、,m)+U(m,j);endendendm=m+1;endu=U(k1,k2);P1=zeros(1,n);k=1;P1(k)=k2;V=ones(1,n)*100;kk=k2;whilekk=k1fori=1:nV(1,i)=U(k1,kk)-w(i,kk);ifV(1,i)=U(k1,i)P1(k+1)=i;kk=i;k=k+1;endendendk=1;wrow=find(P1=0);forj=length(wrow):(-1):1P(k)=P1(wrow(j);k=k+1;endP;【m1.m】w1=01001001.29.21000.5;100010051003.12;1001000
7、10010041.5;1.2510006.7100100;9.21001006.7015.6100;1003.1410015.60100;0.521.51001001000;w2=00.521.5100100100;0.501001001.29.2100;2100010051003.1;1.510010001001004;1001.2510006.7100;1009.21001006.7015.6;1001003.1410015.60;W1R1=func1(w1)W2R2=func1(w2)m2.mw=input(输入权值矩阵w=);k1=input(输入端点1:k1=);k2=input(输
8、入端点2:k2=);WR=func1(w)Pu=func2(w,k1,k2);disp(k1、k2间最短路:,num2str(P);disp(k1、k2间最短距离:,num2str(u);五、数据结构1.主要函数最短距离、路由函数:functionwr=func1(w)n=length(w);x=w;r=zeros(n,1);%路由矩阵的初始化fori=1:1:nforj=1:1:nifx(i,j)=100r(i,j)=0;elser(i,j)=j;end,endend;%迭代求出 k 次 w 值fork=1:na=w;s=w;fori=1:nforj=1:nw(i,j)=min(s(i,j)
9、,s(i,k)+s(k,j);endend%根据 k-1 次值和 k 次 w 值求出 k 次 r 值 fori=1:nforj=1:nifi=jr(i,j)=0;elseifw(i,j)a(i,j)r(i,j)=r(i,k);elser(i,j)=r(i,j);endendendend;最短路径函数:functionPu=func2(w,k1,k2)n=length(w);U=w;m=1;whilemU(i,m)+U(m,j)U(i,j)=U(i,m)+U(m,j);endendendm=m+1;endu=U(k1,k2);P1=zeros(1,n);k=1;P1(k)=k2;V=ones(1
10、,n)*100;kk=k2;whilekk=k1fori=1:nV(1,i)=U(k1,kk)-w(i,kk);ifV(1,i)=U(k1,i)P1(k+1)=i;kk=i;k=k+1;endendendk=1;wrow=find(P1=0);forj=length(wrow):(-1):1P(k)=P1(wrow(j);k=k+1;endP;2.算法的流程图Floyd法:开始六、实验结论与分析nlW1=02.50002.00001.20007.90005.60000.50002.500003.50003-700010.40003.10002,00002,00003.5000Q3.20009,
11、90004,00001.5000L20003.70003.200006.70006.80001.70007.&00010.40009.900。6.7000013.50008.40005.50003*10004,00006.800013,500005.10000.50002.00001.5000L70003.40005-10000Rl=0144j:0ii6i40j511I05I144i40&422322021231120通过上图可知,V4和V6之间最短距离是6.8,最短路由是V4V1V7V2V6,3和V4之间最短距离是3.2,最短路由是V3-V7-V1V400.50002.000
12、01.50001.7000S.40005.10000.500002.50002.00001.20007.90005.60002.00002.500003.50003.700010.40001000L60002.00003,500003.2000仇9000工L70001.20003.70003.200006.70006.300Q8.40007.900010.4000g.9Q0。6.7000013.50005.1000S.60003.10004.00006.MOOL3.50000R2=02342231011551110I11711I0II7222206255555053334330fii通过上图可知,点对V1和V7之间最短距离是5.1,最短路由是V1V3-V7端点对V3和V5之间最短距离是3.7,最短路由是V3-V1V2V5端点对V1和V6之间最短距离是8.4,最短路由是V1V2V5-V6CommandWindow2输入权值矩时 infinf5infinf,inf03infirtfinf.tnf901546.84inf0nfinf.infinf10inf0箱入端点 l:k】=2输入端点受 k2M60312516IS2603IEg23g01546g4Q1113
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学四年级数学几百几十数乘以一位数竞赛试题题
- 二年级数学100以内加减法竖式计算题能力考核口算题大全附答案
- 三年级数学三位数乘以一位数题综合测试试题带答案
- 《16 大家排好队》说课稿-2024-2025学年道德与法治一年级上册统编版
- 2025年度建筑节能减排施工合同示范文本
- 2025年中学教研活动总结(三篇)
- 2025年度板材经销商市场推广费用分摊合同范本
- 2025年个人核桃油买卖合同范文(2篇)
- 2025年度电池制造设备采购与安装服务合同
- 2025年度健康医疗大数据平台采购合同
- 2025年买卖个人房屋合同(4篇)
- 2025代运营合同范本
- 武汉2025年湖北武汉理工大学管理人员招聘笔试历年参考题库附带答案详解
- 家庭燃气和煤气防火安全
- 第十一章《功和机械能》达标测试卷(含答案)2024-2025学年度人教版物理八年级下册
- 2025年销售部年度工作计划
- 使用错误评估报告(可用性工程)模版
- 2024年高考全国甲卷英语试卷(含答案)
- 2024年湖南高速铁路职业技术学院单招职业技能测试题库附答案
- 2024年4月浙江省00015英语二试题及答案含评分参考
- 社区精神康复课件
评论
0/150
提交评论