clc;
NODENUM = 13;
INF = 1000;
dis = zeros(NODENUM,NODENUM);
sign = zeros(NODENUM,1);
linkss = zeros(NODENUM,NODENUM);
signnum = 1;
sign(signnum) = 1;%选择第一个点
minnum = [1,1];
x = 1;
for k = 1:NODENUM-1
min = INF;
for i = 1:NODENUM
if sign(i) == 1
for j = 1:NODENUM
if dis(i,j)<min && linkss(i,j)~=1 &&linkss(j,i)~=1 && i~=j && sign(j)~=1
min = dis(i,j);
minnum(1,1) = i;
minnum(1,2) = j;
end
end
end
end
signnum = signnum+1;
sign(minnum(1,2)) = 1;
disp(num2str(minnum(1,1)))
linkss(minnum(1,1),minnum(1,2)) = 1;
disp(['第',num2str(x),'次']);
disp(['minnum=',num2str(minnum(1,1)),' ',num2str(minnum(1,2))]);
x = x+1;
end
A=[26,31];
H=[ 5,33;8,9;10,24;13,34;17,23;20,10;25,47;...
31,18;35,42;36,25;41,31;45,38];
hold on
PH=[A;H];
load a:\dat\a2.txt; %加载168个点的坐标
PC=a2;%将168个点的坐标生成向量赋值给PC
PT=[H;PC]; %将一级供水站和二级供水站坐标拼接起来
plot(PT(:,1),PT(:,2),'b.');
plot(A(:,1),A(:,2),'g*',H(:,1),H(:,2),'ro');
hold on
sumnew = 0;
for i=1:NODENUM
for j=1:NODENUM
if linkss(i,j)==1
sumnew = sumnew+dis(i,j);
plot([PH(i,1),PH(j,1)],[PH(i,2),PH(j,2)],'r');
end
end
end
load C:\Users\nianzhen\Desktop\数学建模\dat\dis2.txt;
sumnew2 = 0;
for i=1:180
for j=1:180
if link(i,j)==1
sumnew2 = sumnew2+dis2(i,j);
plot([PT(i,1),PT(j,1)],[PT(i,2),PT(j,2)],'b');
end
end
end