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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(Floyd算法 计算最短距离矩阵和路由矩阵 查询最短距离和路由 matlab实验报告.pdf)为本站会员(HR专家)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

Floyd算法 计算最短距离矩阵和路由矩阵 查询最短距离和路由 matlab实验报告.pdf

1、实 验 四 : Floyd 算 法 一 、 实 验 目 的 利 用 MATLAB 实 现 Floyd 算 法 , 可 对 输 入 的 邻 接 距 离 矩 阵 计 算 图 中 任 意 两 点 间 的 最 短 距 离 矩 阵 和 路 由 矩 阵 , 且 能 查 询 任 意 两 点 间 的 最 短 距 离 和 路 由 。 二 、 实 验 原 理 Floyd 算 法 适 用 于 求 解 网 络 中 的 任 意 两 点 间 的 最 短 路 径 : 通 过 图 的 权 值 矩 阵 求 出 任 意 两 点 间 的 最 短 距 离 矩 阵 和 路 由 矩 阵 。 优 点 是 容 易 理 解 , 可 以 算 出

2、 任 意 两 个 节 点 之 间 最 短 距 离 的 算 法 , 且 程 序 容 易 实 现 , 缺 点 是 复 杂 度 达 到 , 不 适 合 计 算 大 量 数 据 。 Floyd 算 法 可 描 述 如 下 : 给 定 图 G 及 其 边 (i , j )的 权 wi, j (1 in ,1 jn) F0 : 初 始 化 距 离 矩 阵 W(0 )和 路 由 矩 阵 R(0 )。 其 中 : F1 : 已 求 得 W(k-1 )和 R(k-1 ), 依 据 下 面 的 迭 代 求 W(k)和 R(k) F2 : 若 kn, 重 复 F1 ; 若 kn, 终 止 。 三 、 实 验 内 容

3、 1 、 用 MATLAB 仿 真 工 具 实 现 Floyd 算 法 : 给 定 图 G 及 其 边 (i , j )的 权 wi , j (1 in ,1 jn) , 求 出 其 各 个 端 点 之 间 的 最 小 距 离 以 及 路 由 。 ( 1 ) 尽 可 能 用 M 函 数 分 别 实 现 算 法 的 关 键 部 分 , 用 M 脚 本 来 进 行 算 法 结 果 验 证 ; ( 2 ) 分 别 用 以 下 两 个 初 始 距 离 矩 阵 表 示 的 图 进 行 算 法 验 证 : 分 别 求 出 W(7 )和 R(7 )。2 、 根 据 最 短 路 由 矩 阵 查 询 任 意 两

4、 点 间 的 最 短 距 离 和 路 由 ( 1 ) 最 短 距 离 可 以 从 最 短 距 离 矩 阵 的 (i,j)中 直 接 得 出 ;( 2 ) 相 应 的 路 由 则 可 以 通 过 在 路 由 矩 阵 中 查 找 得 出 。 由 于 该 程 序 中 使 用 的 是 前 向 矩 阵 , 因 此 在 查 找 的 过 程 中 , 路 由 矩 阵 中 r(i,j)对 应 的 值 为 Vi到 Vj 路 由 上 的 下 一 个 端 点 , 这 样 再 代 入 r(r(i,j),j), 可 得 到 下 下 个 端 点 , 由 此 不 断 循 环 下 去 , 即 可 找 到 最 终 的 路 由 。

5、( 3 ) 对 图 1 , 分 别 以 端 点 对 V4 和 V6 , V3 和 V4 为 例 , 求 其 最 短 距 离 和 路 由 ; 对 图 2 , 分 别 以 端 点 对 V1 和 V7 , V3 和 V5 , V1 和 V6 为 例 , 求 其 最短 距 离 和 路 由 。 3 、 输 入 一 邻 接 权 值 矩 阵 , 求 解 最 短 距 离 和 路 由 矩 阵 , 及 某 些 点 间 的 最短 路 径 。 四 、 采 用 的 语 言 MatLab源 代 码 : 【 func1 .m】 function w r = func1 (w)n=length(w); x = w;r = z

6、eros(n,1 );%路 由 矩 阵 的 初 始 化 for i=1 :1 :n for j=1 :1 :n if x(i,j)=inf r(i,j)=0 ; else r(i,j)=j; end, end end;%迭 代 求 出 k次 w值 for k=1 :n a=w; s = w; for i=1 :n for j=1 :n w(i,j)=min(s(i,j),s(i,k)+s(k,j); end end %根 据 k-1 次 值 和 k次 w值 求 出 k次 r值 for i=1 :n for j=1 :n if i=j r(i,j)=0 ; elseif w(i,j)a(i,j)

7、 r(i,j)=r(i,k); else r(i,j)=r(i,j); end end end end; 【 func2 .m】function P u=func2 (w,k1 ,k2 ) n = length(w);U = w; m = 1 ;while m U(i,m) + U(m,j) U(i,j) = U(i,m) + U(m,j); end end end m = m + 1 ; endu = U(k1 ,k2 ); P1 =zeros(1 ,n);k = 1 ; P1 (k) = k2 ;V = ones(1 ,n) * 1 0 0 ; kk = k2 ;while kk=k1 f

8、or i = 1 :n V(1 ,i) = U(k1 ,kk) - w(i,kk); if V(1 ,i) = U(k1 ,i) P1 (k+1 )=i; kk=i; k=k+1 ; end end endk=1 ; wrow = find(P1 =0 );for j=length(wrow):(-1 ):1 P(k) = P1 (wrow(j); k=k+1 ; endP; 【 m1 .m】 w1 =0 1 0 0 1 0 0 1 .2 9 .2 1 0 0 0 .5 ; 1 0 0 0 1 0 0 5 1 0 0 3 .1 2 ; 1 0 0 1 0 0 0 1 0 0 1 0 0 4 1

9、 .5 ; 1 .2 5 1 0 0 0 6 .7 1 0 0 1 0 0 ; 9 .2 1 0 0 1 0 0 6 .7 0 1 5 .6 1 0 0 ; 1 0 0 3 .1 4 1 0 0 1 5 .6 0 1 0 0 ; 0 .5 2 1 .5 1 0 0 1 0 0 1 0 0 0 ;w2 =0 0 .5 2 1 .5 1 0 0 1 0 0 1 0 0 ; 0 .5 0 1 0 0 1 0 0 1 .2 9 .2 1 0 0 ; 2 1 0 0 0 1 0 0 5 1 0 0 3 .1 ; 1 .5 1 0 0 1 0 0 0 1 0 0 1 0 0 4 ; 1 0 0 1 .2

10、5 1 0 0 0 6 .7 1 0 0 ; 1 0 0 9 .2 1 0 0 1 0 0 6 .7 0 1 5 .6 ; 1 0 0 1 0 0 3 .1 4 1 0 0 1 5 .6 0 ; W1 R1 = func1 (w1 )W2 R2 = func1 (w2 ) 【 m2 .m】 w=input(输 入 权 值 矩 阵 w=);k1 =input(输 入 端 点 1 :k1 =); k2 =input(输 入 端 点 2 :k2 =);w W R = func1 (w)P u=func4 (w,k1 ,k2 ); disp(k1 、 k2 间 最 短 路 : ,num2 str(P)

11、;disp(k1 、 k2 间 最 短 距 离 : ,num2 str(u); 五 、 数 据 结 构 1.主 要 函 数 最 短 距 离 、 路 由 函 数 :function w r = func1(w) n=length(w);x = w; r = zeros(n,1);%路 由 矩 阵 的 初 始 化 for i=1:1:n for j=1:1:n if x(i,j)=100 r(i,j)=0; else r(i,j)=j; end, end end;%迭 代 求 出k次w值 for k=1:n a=w; s = w; for i=1:n for j=1:n w(i,j)=min(s(

12、i,j),s(i,k)+s(k,j); end end %根 据k-1次 值 和k次w值 求 出k次r值 for i=1:n for j=1:n if i=j r(i,j)=0; elseif w(i,j)V7 V2 V6, 3和 V4之 间 最 短 距 离 是 3.2, 最 短 路 由 是 V3 V7 V1V4 通 过 上 图 可 知 , , 点 对 V1和 V7之 间 最 短 距 离 是 5.1, 最 短 路 由 是 V1 V3 V7 端 点 对 V3和 V5之 间 最 短 距 离 是 3.7, 最 短 路 由 是 V3 V1 V2 V5端 点 对 V1和 V6之 间 最 短 距 离 是 8.4, 最 短 路 由 是 V1 V2 V5 V6 七 、 遇 到 的 问 题 及 解 决 方 法 (1 ) 图 的 等 价 表 示 方 法 ;(2 ) 两 点 间 的 最 短 路 径 查 询 算 法 。 八 、 实 验 心 得 通 过 本 次 实 验 实 现 了 用 计 算 机 语 言 编 写 Floys本 掌 握 了 算 法 的 实 现 方法 , 对 MatLab编 程 语 言 更 加 熟 悉 , 培 养 了 算 法 设 计 与 优 化 能 力 。 此 次 实 验 我 受 益 匪 浅 。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报