Project - Traveling salesman problem
Function file
function D=Distanse(a)
row=size(a,1);
D=zeros(row,row);
for i=1:row
for j=i+1:row
D(i,j)=((a(i,1)-a(j,1))^2+(a(i,2)-a(j,2))^2)^0.5;
D(j,i)=D(i,j);
end
end
Program code:
clc
clear all
close all
city=20;
a=100*rand(city,1);
b=100*rand(city,1);
Z=[a b];
D=Distanse(Z)
figure(1)
plot(a,b,'b--o');
grid on
xlabel('Distance in km')
ylabel('Distance in km')
title('TSP')
set(gca,'fontsize',14)
dist=sqrt(a.^2+b.^2)
[minD,x_min]=min(dist)
close_X=a(x_min);
close_Y=b(x_min);
figure(2)
plot(close_X,close_Y)
% plot(a,b,'b--o');
grid on
xlabel('Distance in km')
ylabel('Distance in km')
title('Optimimized TSP')
set(gca,'fontsize',14)
city_trav=false(1,city);
count=2;
iter_max=city;
city_trav(x_min)=true;
fprintf('The Minimum Travel Distance')
fprintf('(%f %f)--',close_X,close_Y)
while sum(city_trav)<=(city-1)&&(count<=iter_max)
old_X=a(x_min(count-1));
old_Y=b(x_min(count-1));
a(city_trav)=inf;
dist=sqrt((a-old_X).^2+(b-old_Y).^2);
[mindist,x_min(count)]=min(dist);
close_X=a(x_min(count));
close_Y=b(x_min(count));
line([old_X,close_X],[old_Y,close_Y])
city_trav(x_min(count))=true;
count=count+1;
fprintf('(%f %f)--',close_X, close_Y)
end
print('TSP_Optimizied_figure','-djpeg')
Output: