Challenge

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:

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.