matlab编写dijkstare算法出现错误,求解谢谢!!!
%dijsk最短路径算法clear,clc
G=[0 5 15 inf 10 17 inf inf inf;
6 0 inf 12 inf 10 20 14 inf;
15 inf 0 18 inf inf inf inf inf;
inf 12 18 0 inf inf inf 7 14;
10 inf inf inf 0 16 inf inf inf;
17 10 inf inf 16 0 15 inf inf;
inf 20 inf inf inf 15 0 11 inf;
inf 14 inf 7 inf inf 11 0 9;
inf inf inf 14 inf inf inf 9 0;];
%邻接矩阵
N=size(G,1); %顶点数
v0=1; %源点
v1=ones(1,N); %除去原点后的集合
v1(v0)=0;
%计算和源点最近的点
D=G(v0,:);
while 1
D2=D;
for i=1:N
if v1(i)==0
D2(i)=inf;
end
end
D2
=min(D2);
if isinf(Dmin),error,
end
v0= %将最近的点加入v0集合,并从v1集合中删除
v1(id)=0;
if size(v0,2)==N,break;end
%计算v0(1)到v1各点的最近距离
fprintf('计算v0(1)到v1各点的最近距离\n');v0,v1
id=0;
for j=1:N %计算到j的最近距离
if v1(j)
for i=1:N
if ~v1(i) %i在vo中
D(j)=min(D(j),D(i)+G(i,j));
end
D(j)=min(D(j),G(v0(1),i)+G(i,j));
end
end
end
fprintf('最近距离\n');D
if isinf(Dmin),error,end
end
v0
%>> v0
笑脸那里是:这个符号
笑脸那里是:这个符号
笑脸那里是:这个符号
我的电脑能运行,不知道你的到底是啥问题?
页:
[1]