网站大量收购独家精品文档,联系QQ:2885784924

1945.图论算法及其MATLAB程序代码.pdf

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1945.图论算法及其MATLAB程序代码.pdf

图论算法及其MATLAB 程序代码 求赋权图G = ( V, E , F ) 中任意两点间的最短路的Warshall-Floyd 算法: 设A = (a ) × 为赋权图G = ( V, E , F ) 的矩阵, 当v v ∈E 时a = F (v v ), 否则取a =0, a ij n n i j ij i j ii ij = + ∞(i≠j ), d 表示从v 到v 点的距离, r 表示从v 到v 点的最短路中一个点的编号. ij i j ij i j ① 赋初值. 对所有i, j , d = a , r =j . k = 1. 转向② ij ij ij ② 更新d , r . 对所有i, j , 若d + d <d , 则令d = d + d , r = k, 转向③. ij ij ik k j ij ij ik k j ij ③ 终止判断. 若d <0, 则存在一条含有顶点v 的负回路, 终止; 或者k = n 终止; 否则 ii i 令k = k + 1, 转向②. 最短路线可由rij 得到. 例 1 求图6-4 中任意两点间的最短路. 图6-4 解:用Warshall-Floyd 算法, MATLAB 程序代码如下: n=8;A=[0 2 8 1 Inf Inf Inf Inf 2 0 6 Inf 1 Inf Inf Inf 8 6 0 7 5 1 2 Inf 1 Inf 7 0 Inf Inf 9 Inf Inf 1 5 Inf 0 3 Inf 8 Inf Inf 1 Inf 3 0 4 6 Inf Inf 2 9 Inf 4 0 3 Inf Inf Inf Inf 8 6 3 0]; % MATLAB 中, Inf 表示∞ D=A; %赋初值 for(i=1:n)for(j=1:n)R(i,j)=j;end;end %赋路径初值 for(k=1:n)for(i=1:n)for(j=1:n)if(D(i,k)+D(k,j)D(i,j))D(i,j)=D(i,k)+D(k,j); %更新dij R(i,j)=k;end;end;end %更新rij k %显示迭代步数 D %显示每步迭代后的路长 R %显示每步迭代后的路径 pd=0;for i=1:n %含有负权时 if(D(i,i)0)pd=1;break;end;end %存在一条含有顶点vi 的负回路 if(pd)break;end %存在一条负回路, 终止程序 end %程序结束 Kr

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档