n=size(a,1);
a=a-diag(diag(a));
for i=1:n
for j=1:n
d(i,j)=norm(b(i,:)-b(j,:))/a(i,j);
end
end
Z=zeros(1,n);
p=Z;
m=Z;
D=Z;
p(1)=-1;
k=1;
while ~all(m)
l=Z
for j=k
q=~~a(j,:)&~p
if any(q)
p(q)=j
D(q)=D(q)+d(j,q)+D(j)
l=l|q & ~m
end
end
m(k)=1
k=find(l)
end
L=0;
while L~=D
L=D;
for i=2:n
q=~~q(i,:);
[y v] = min(d(i,q)+D(q));
if y<D(i)
p(i)=v;
D(i)=y;
end
end
end
[y v]=max(D);
c=[];
while v>0
c=[v,c];
v=p(v);
end
|