調用sweep(窮舉算法解決tsp問題)函數格式為
length=sweep(l)
其中:
l:距離矩陣
length:最短路徑長度
調用distancematrix(求距離矩陣)函數格式為
t=distancematrix(a)
其中:
a:n個點的坐标矩陣,是一個n行2列的矩陣,第一列為橫坐标,第二列為縱坐标。
t:生成的距離矩陣。
補充說明:由于窮舉法的時間複雜性極大,故在此僅編寫4個點的窮舉法作為示例。
function length=sweep(l)
%窮舉法求最短路徑
%l為距離矩陣
for a=1:4
for j=1:4
if j~=a
tr1(j)=l(j,a);
else
continue;
end
for k=1:4
if k~=a&&k~=j
tr2(k)=tr1(j)+l(k,j);
else
continue;
end
for i=1:4
if i~=a&&i~=j&&i~=k
tr3(i)=tr2(k)+l(i,k);
loop(i)=tr3(i)+l(a,i);
else
continue;
end
end
end
end
end
length=min(loop);
end