数模论坛

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

floyd算法

[复制链接]
发表于 2003-8-17 06:01:54 | 显示全部楼层 |阅读模式
最近两天做了一个图论的题目,其中有一个求最短路的,我用的是floyd算法,现贴出来,供大家参考。
-------------------------------------------------------------------
function [LeR,r]=floyd(w)
%[LeR,r]=floyd(w)
%w;邻接矩阵
%LeR:为所得的最短路矩阵
%参考文献:谢政,李建平:网络算法与复杂性理论.国防科技出版社.1995,第一版。
n=size(w,1);
u.m_1=w;
r.m_1=ones(n,1)*[1:n];

m=1;
while m~=n+1
   for i=1:n
      for j=1:n
           if u.m_1(i,j)<=u.m_1(i,m)+u.m_1(m,j)
               r.m(i,j)=r.m_1(i,j);
           else
               r.m(i,j)=r.m_1(i,m);
           end
           u.m(i,j)=min(u.m_1(i,j),u.m_1(i,m)+u.m_1(m,j));
      end
   end
    u.m_1=u.m;
    r.m_1=r.m;
    m=m+1;
end

LeR=u.m;
--------------------------------------------------------------------------
最短轨:
function [Road]=FindRoad(var1,var2,r)
%Road=cell(size(r.m));
Rola=0;
Road=var1;
while Rola~=var2
    Rola=r.m(var1,var2);
    Road=[Road Rola];
    var1=Rola;
end[em05][em05][em05][em05][em05][em05]
发表于 2003-8-17 19:14:46 | 显示全部楼层
多谢了
发表于 2003-8-18 06:11:13 | 显示全部楼层
谢谢
非常不错
发表于 2003-8-18 19:26:50 | 显示全部楼层
谢谢啊!
新手求教:
r是什么意思?
能不能将你做的题目贴出来让我们看看?
 楼主| 发表于 2003-8-19 00:06:37 | 显示全部楼层
Mcm90年的
参考数目:谢政,李建平:网络算法与复杂性理论.国防科大出版社.1995.5第一版
发表于 2003-8-19 01:35:23 | 显示全部楼层
厉害!!
发表于 2003-8-19 19:07:45 | 显示全部楼层
使用什么 写的 呀
发表于 2003-8-20 04:29:56 | 显示全部楼层
MATLAB
发表于 2003-8-30 01:57:50 | 显示全部楼层
多谢了。
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

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

GMT+8, 2024-3-28 18:50 , Processed in 0.053267 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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