function main()
clear;
clc;
%城市坐标
a=importdata('data.txt',',');
a=a/1000;
x=a(:,1)';x(end+1)=a(1,1);
y=a(:,2)';y(end+1)=a(1,2);
n=0:50;
x=cos(2*pi*n/50);
y=sin(2*pi*n/50);
%初始方式数目
%城市数目
n=length(x)-1;
kinsize=500;
%编码长度
lm=n-1;
%初始方式
kin = initkin(kinsize,lm);
%编码
code=encode(kin);
%交叉概率
pc = 0.6;
%变异概率
pm = 0.8;
for i = 1:20000
%计算周长
[adx,ady]=get_add(x,y,code);
len=cal_length(adx,ady);
[ax(i),ad]=min(len);
if mod(i,400) == 0
figure;
plot(x,y,'ro');
decode(code(ad,:));
hold on;
plot(adx(ad,:),ady(ad,:));
title(['迭代次数为n=' num2str(i)]);
end
mincode=code(ad,:);
%适应度值(函数值)
a=-1;
objvalue = exp(a*len);
%选择操作
ncode=selection(code,objvalue);
%交叉操作
ncode &
利用遗传算法 求解TSP问题 matlab 源代码
最新推荐文章于 2024-06-03 23:46:59 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)