实用标准文案
实验四: 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,
您可能关注的文档
最近下载
- 三国杀卡牌(全套精装+限量版).pdf VIP
- 22HM001-1 海绵城市建设设计示例(一)上.pdf VIP
- 2026人教版小学数学六年级下册期末考试精选3套试卷(含答案解析).docx
- 2025年中考英语时文阅读 20(学生版+解析版).docx
- 2025年江苏专转本《财经综合基础理论(财会基础)》精编讲义复习备考必备资料.pdf VIP
- G60沪昆高速(浙江段)出入口、服务区、里程数及风景点.docx
- 高考历史蓝皮书 挖掘隐含前提.pptx VIP
- 高考文言文逆袭指南:吃透150词+6大招.docx VIP
- DB1310_T 369-2025 化学分析实验室玻璃仪器使用规.docx VIP
- 款 MAZDA(马自达)3 轿车用户使用手册.pdf VIP
原创力文档

文档评论(0)