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

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

实用标准文案 实验四: Floyd 算法 一、实验目的 利用 MATLAB 实现 Floyd 算法,可对输入的邻接距离矩阵计算图中任意 两点间的最短距离矩阵和路由矩阵,且能查询任意两点间的最短距离和路由。 二、实验原理 Floyd 算法适用于求解网络中的任意两点间的最短路径: 通过图的权值矩阵 求出任意两点间的最短距离矩阵和路由矩阵。 优点是容易理解, 可以算出任意两 个节点之间最短距离的算法, 且程序容易实现, 缺点是复杂度达到, 不适合计算 大量数据。 Floyd 算法可描述如下: 给定图 G 及其边 (i , j ) 的权 w i, j (1 ≤i ≤n ,1 ≤j ≤n) (0) (0) F0:初始化距离矩阵 W 和路由矩阵 R 。其中: (k-1) (k-1) (k) (k) F1 :已求得 W 和 R ,依据下面的迭代求 W 和 R F2 :若 k≤n ,重复 F1;若 kn ,终止。 三、实验内容 1、用 MATLAB 仿真工具实现 Floyd 算法:给定图 G 及其边 (i , j ) 的权 精彩文档 实用标准文案 w i , j (1 ≤i ≤n ,1 ≤j ≤n) ,求出其各个端点之间的最小距离以及路由。 (1)尽可能用 M 函数分别实现算法的关键部分,用 M 脚本来进行算法结 果验证; (2 )分别用以下两个初始距离矩阵表示的图进行算法验证: (7) (7) 分别求出 W 和 R 。 2 、根据最短路由矩阵查询任意两点间的最短距离和路由 (1)最短距离可以从最短距离矩阵的ω (i,j) 中直接得出; (2 )相应的路由则可以通过在路由矩阵中查找得出。 由于该程序中使用的是前向矩 阵,因此在查找的过程中,路由矩阵中 r(i,j) 对应的值为 Vi 到Vj 路由上的下一个端 点,这样再代入 r(r(i,j),j) ,可得到下下个端点,由此不断循环下去, 即可找到最终 的路由。 (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 = zeros(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,

文档评论(0)

1亿VIP精品文档

相关文档