📄 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 + -