- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Floyd算法_计算最短距离矩阵和路由矩阵_查询最短距离和路由_matlab实验报告
实验四:Floyd 算法 一、实验目的 利用MATLAB 实现Floyd 算法,可对输入的邻接距离矩阵计算图中任意两点间的最短距离矩阵和路由矩阵,且能查询任意两点间的最短距离和路由。 二、实验原理 Floyd 算法适用于求解网络中的任意两点间的最短路径:通过图的权值矩阵求出任意两点间的最短距离矩阵和路由矩阵。优点是容易理解,可以算出任意两个节点之间最短距离的算法,且程序容易实现,缺点是复杂度达到,不适合计算大量数据。 Floyd 算法可描述如下: 给定图G 及其边(i , j )的权wi, j (1≤i≤n ,1≤j≤n) F0:初始化距离矩阵W(0)和路由矩阵R(0)。其中: F1:已求得W(k-1)和R(k-1),依据下面的迭代求W(k)和R(k) F2:若k≤n,重复F1;若kn,终止。 ? ? 三、实验内容 1、用MATLAB 仿真工具实现Floyd 算法:给定图G 及其边(i , j )的权 wi , j (1≤i≤n ,1≤j≤n) ,求出其各个端点之间的最小距离以及路由。 (1)尽可能用M 函数分别实现算法的关键部分,用M 脚本来进行算法结 果验证; (2)分别用以下两个初始距离矩阵表示的图进行算法验证: 分别求出W(7)和R(7)。 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, 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) 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 = n for i = 1:n; for j = 1:n; if U(i,j)U(i,m) + U(m,j) U(i,j) = U(i,m) + U(m,j); end end end m = m + 1; end u = U(k1,k2); P1=zeros(1,n); k = 1; P1(k) = k2; V = ones(1,n) * 100; kk = k2; while kk~=k1 for 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 end k=1
您可能关注的文档
最近下载
- Rexroth lndraMotion MTX micro简明调试手册04版本.pdf VIP
- 海南省“三医联动一张网”项目建设工程招标(简称:海南省三医联动信 息平台)第三章用户需求书.PDF VIP
- 客户经理业绩考核分析系统数据库设计说明.doc
- 必威体育精装版人教版一年级上册数语文同步练习册及单元试卷.doc VIP
- 人教版高中物理高考总复习全册知识点考点梳理、重点题型分类巩固练习提高版.doc VIP
- 人教版高中物理必修3基础知识自测小纸条(含答案及解析).pdf VIP
- GB50575-2010 1Kv及以下配线工程施工与验收规范.pdf VIP
- 食源性疾病事件应急处置桌面推演脚本.doc VIP
- 智慧校园智能学习环境对城市初中生创新思维培养的实证研究教学研究课题报告.docx
- 人教版高中物理选修3-5全册知识点考点梳理、重点题型分类巩固练习提高版.doc VIP
文档评论(0)