QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3103|回复: 2
打印 上一主题 下一主题

[已经回复] 帮我分析一下就行

[复制链接]
字体大小: 正常 放大
ky8023        

1

主题

0

听众

2

积分

升级  40%

该用户从未签到

跳转到指定楼层
1#
发表于 2008-6-2 17:33 |只看该作者 |倒序浏览
|招呼Ta 关注Ta

以前上课做的一道题,现在需要这个程序,可是却忘了怎么写程序开头。

关于最短路径的问题。

function [l,z,d,s]=Dijkstra(w,u0,ui);
if nargin=0;
w=[];
u0=1;

上面的是我自己加上去的,可是不行,你们帮我改下,谢谢了。

后面的是:

w=[0 2 1 8 inf inf inf inf;
2 0 inf 6 1 inf inf inf;
1 inf 0 7 inf inf 9 inf;
8 6 7 0 5 1 2 inf;
inf 1 inf 5 0 3 inf 9;
inf inf inf 1 3 0 4 6;
inf inf 9 2 inf 4 0 3;
inf inf inf inf 9 6 3 0]
n=size(w,1);
w1=w(1,;


%赋初值
for i=1:n
l(i)=w1(i);
z(i)=1;
end
s=[];
s(1)=1;
u=s(1);
k=1
l
z

while k<n
% 更新 l(v) 和 z(v)
for i=1:n
for j=1:k
if i~=s(j)
if l(i)>l(u)+w(u,i)
l(i)=l(u)+w(u,i);
z(i)=u;
end
end
end
end
l
z

%求v*
ll=l;
for i=1:n
for j=1:k
if i~=s(j)
ll(i)=ll(i);
else
ll(i)=inf;
end
end
end

lv=inf;
for i=1:n
if ll(i)<lv
lv=ll(i);
v=i;
end
end
lv
v

s(k+1)=v
k=k+1
u=s(k)

end
l
z

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
梦飞翔        

0

主题

0

听众

2

积分

升级  40%

该用户从未签到

w=[0 2 1 8 inf inf inf inf;2 0 inf 6 1 inf inf inf;1 inf 0 7 inf inf 9 inf;...
      8 6 7 0 5 1 2 inf;inf 1 inf 5 0 3 inf 9;inf inf inf 1 3 0 4 6;...
      inf inf 9 2 inf 4 0 3;inf inf inf inf 9 6 3 0]
   n=size(w,1);
   w1=w(1,;
  
   %赋初值
   for i=1:n
      l(i)=w1(i);
      z(i)=1;
   end
   s=[];
   s(1)=1;
   u=s(1);
   k=1
   l
   z
  

while k<n
   % 更新 l(v) 和 z(v)
   for i=1:n
      for j=1:k
      if i~=s(j)
         if l(i)>l(u)+w(u,i)
            l(i)=l(u)+w(u,i);
            z(i)=u;
         end
      end
      end
   end
   l
   z
  

回复

使用道具 举报

梦飞翔        

0

主题

0

听众

2

积分

升级  40%

该用户从未签到

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2025-8-2 05:12 , Processed in 0.823573 second(s), 66 queries .

回顶部