ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:275.13KB ,
资源ID:8492453      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8492453.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮信息工程通信网理论基础实验4报告Floyd算法.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北邮信息工程通信网理论基础实验4报告Floyd算法.docx

1、北邮信息工程通信网理论基础实验4报告Floyd算法 信息与通信工程学院通信网理论基础实验报告班 级: 姓 名: 学 号: 序 号: 实验四 Floyd算法一、实验目的Floyd算法通过图的权值矩阵求出任意两点间的最短距离矩阵和路由矩阵。优点是容易理解,可以算出任意两个节点之间最短距离的算法,且程序容易实现,缺点是复杂度达到 ,不适合计算大量数据。本次实验要求利用MATLAB实现Floyd算法,可对输入的邻接距离矩阵计算图中任意两点间的最短距离矩阵和路由矩阵,且能查询任意两点间的最短距离和路由。二、 实验原理Floyd算法可描述如下:给定图及其边的权F0:初始化距离矩阵和路由矩阵。其中:F1:已

2、求得和,依据下面的迭代求和F2:若,重复F1;若,终止。三、 实验内容用MATLAB仿真工具实现Floyd算法:给定图及其边的权,求出其各个端点之间的最小距离以及路由。1、分别用以下两个初始距离矩阵表示的图进行算法验证:分别求出和。2、根据最短路由矩阵查询任意两点间的最短距离和路由(1)最短距离可以从最短距离矩阵的中直接得出;(2) 相应的路由则可以通过在路由矩阵中查找得出。由于该程序中使用的是前向矩阵,因此在查找的过程中,路由矩阵中r(i,j)对应的值为Vi到Vj路由上的下一个端点,这样再代入r(r(i,j),j),可得到下下个端点,由此不断循环下去,即可找到最终的路由。(3)对图1,分别以

3、端点对V4和V6, V3和V4为例,求其最短距离和路由;对图2,分别以端点对V1和V7,V3和V5,V1和V6为例,求其最短距离和路由。3、输入一邻接权值矩阵,求解最短距离和路由矩阵,及某些点间的最短路径。4、扩展的实验内容(选作部分)(1)实现Floyd算法的回溯路由矩阵;(2)探讨可降低算法复杂度的算法。四、程序基本信息1、设计语言及开发工具:MATLAB。2、数据结构:本次实验涉及到了数据结构中图的相关内容,如图的遍历等等。另外,实验中采用不定长数组存储算法的相关矩阵信息。3、主要函数(算法):本程序采用MATLAB语言编写,程序文件名为Floyd.m。第一部分:Floyd算法求出其各个

4、端点之间的最小距离以及路由这里包含两种路由方法的Floyd算法:前向路由和回溯路由。下面先介绍其中的前向路由方法部分。它的主要思想及流程在实验原理部分已给出,下页以流程图的形式给出该段程序的工作流程,和原算法本身相比并无太多不同。回溯路由方法的Floyd算法流程如下:F0:初始化距离矩阵和路由矩阵。其中:F1:已求得和,依据下面的迭代求和F2:若,重复F1;若,终止。可见该算法仅在路由矩阵更新方面有些许不同,因此这里不再给出它的流程图。另外要说明的一点是,程序中无法表示,用100代替。Floyd算法(前向路由)流程图第二部分:Floyd算法程序改进Floyd算法中,距离矩阵每次更新的元素非常少

5、(相对于矩阵元素总个数而言),而路由矩阵又随着距离矩阵的更新而更新。原先的程序中无论是否更新都要执行一次赋值操作,其实只需要保留需要更新值的赋值操作,不更新值的赋值操作没有意义。因此优化后的程序可以大大减少赋值次数。这个程序其实没有改变原算法思想,只是针对程序本身进行了优化。第三部分:查询任意两点间的最短距离和路由这段算法非常简单,主要利用了Floyd算法生成的距离矩阵和路由矩阵,以下简述它的工作流程:五、程序运行结果与分析1、利用给定的两个路由矩阵判定算法正确性:矩阵1的执行结果:矩阵2的执行结果:注:上面的运行结果中,W1为最短距离矩阵,R1为最短路由(前向)矩阵,R2为最短路由(回溯)矩

6、阵。2、根据最短路由矩阵查询任意两点间的最短距离和路由:以下查询均使用前向最短路由矩阵。矩阵1:V4到V6,V3到V4。即V4到V6的最短距离:6.8,最短路由:V4V1V7V2V6;V3到V4的最短距离:3.2,最短路由:V3V7V1V4。矩阵2:V1到V7,V3到V5,V1到V6。即V1到V7的最短距离:5.1,最短路由:V1V3V7;V3到V5的最短距离:3.7,最短路由:V3V1V2V5;V1到V6的最短距离:8.4,最短路由:V1V2V5V6。3、原程序与改进后的程序运行结果及时间比较:采用矩阵1进行测试。测试时,原程序的回溯矩阵处理语句被注释掉,即不让它处理回溯矩阵,同时两个程序的

7、初始化矩阵W0和R0的时间都不考虑。原程序运行结果:改进后程序运行结果: 这里仅给出一次运行的结果。由上图可见,两个算法的运行结果是完全相同的(路由矩阵对角线上的元素不同,但是实际应用时对角线上的元素值没有意义),且优化后的程序执行时间比未优化的程序短。当然,每次运行结果都是不同的,有极小的可能会出现二者执行时间近似甚至优化后程序超过未优化程序。由于时间所限,无法对每次的运行时间加以统计,但大致上,优化后程序平均起来运行时间要比未优化的程序短20%到30%。对于阶数较大的输入矩阵,优化后程序的性能提升更为明显。六、遇到的主要问题1、Wk和Rk矩阵的表示问题两个矩阵本身是二维的,又要考虑一个k变量,因此采用三维数组。另外由于W和R矩阵都有一个初始矩阵W0和R0,因此k取值范围为1到n+1(n为方阵阶数)。2、多次执行查询两点间最短距离和路由算法时,输出的最短路由出现错误。 该问题当上一次执行的路由比这次的多时就会出现。每次执行都要处理一个数组并输出它的所有内容,出现错误的原因是本次算法执行前数组没有清空,导致前一次的路由信息也一并输出了。七、实验总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1