数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 3393|回复: 2

请帮忙解读一下这个matlab程序,急需!

[复制链接]
发表于 2007-6-8 22:39:37 | 显示全部楼层 |阅读模式
Floyd最短路算法的MATLAB程序
%floyd.m
              %
采用floyd算法计算图a中每对顶点最短路
              %d
是矩离矩阵
              %r
是路由矩阵
              function [d,r]=floyd(a)
              n=size(a,1);
              d=a;
              for i=1:n
                  for j=1:n
                      r(i,j)=j;
                  end
              end
              r
              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);
                              r(i,j)=r(i,k)
                          end
                      end
                  end
                  k
                  d
                  r
              end

能不能解释一下这个程序.应该怎样输入数据,需要输入一些什么数据?
发表于 2007-6-10 00:02:54 | 显示全部楼层
你先看下 最短路问题的一个例子(folyd算法) ,你就明白了! 这个里面 要输入的数据就是 a,a 就是 路径上的 "权值", 这个权值在最短路问题上就是"两点之间的距离"!
发表于 2007-6-15 09:28:41 | 显示全部楼层
图论中每对顶点的最短距离,a为距离的邻接矩阵不相邻的点用inf表示,结果中d就是每对顶点的最短矩离,r是修改后的可达矩阵
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 11:44 , Processed in 0.062921 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表