?? ga_tsp.m
字號:
%function tsp
clc;
clear all;
citysize=30;%城市數
[D,M]=tsp(citysize);
popsize=50;%popsize為種群個數
N=1000;%N為迭代次數
pcro=0.85;
pmut=0.5;
gen=1;
minval=inf;
pop=initialize(popsize,citysize);
while gen<=N
val=adapt(pop,popsize,citysize,D);
% fitval=1./val; %適應度
fitval=(1000./val).^15;
[valmin,minind]=min(val);
%保存最優
if valmin<minval
minval=valmin;
minpath=pop(minind,:);
end
minf(gen)=minval; %最短路徑長度
pop=select(pop,fitval,popsize,citysize,minpath); %比例選擇
pop=crossover(pop,pcro,popsize,citysize); %OX交叉
pop=mutation(pop,pmut,popsize,citysize); %變異
drawTSP(M,minpath,minval,gen,0);
gen=gen+1;
end
drawTSP(M,minpath,minval,gen,1);
figure;plot(minf,'-r');xlabel('迭代次數');ylabel('最短路徑長度');
disp('最短路徑為:');disp(minpath);
disp('最短路徑長度為:');disp(minval);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -