MATLAB实现遗传算法寻找31个城市最短距离
city_31是城市的坐标(x,y),保存为city_31.mat文件,文件在本人的资源里,直接下载即可!
###下载地址:https://download.youkuaiyun.com/download/qq_39238001/18800430?spm=1001.2014.3001.5503
clc;
close all;
clear all;
load city_31
C=city_31;
N=size(C,1);%31个城市
Dis=zeros(N);%城市间距离矩阵
for i=1:N
for j=1:N
Dis(i,j)=((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2)^0.5;
end
end
%%参数设置
NP=200;%初始种群规模
GE=2000;%最大迭代次数
f=zeros(NP,N);%初始种群,200*31
F=[];%中间更新种群存储
%%随机生成初始种群
for i=1:NP
f(i,:)=randperm(N);
end
lens=zeros(NP,1);%存储路径长度200*1
R=f(1,:);%存储最优路径1*31
fitness=zeros(NP,1);%存储适应度值
%%%%%%%循环遗传算法,最大迭代次数为GE%%%
gen=0;
tic
while gen<GE
%%计算路径长度
for i=1:NP
lens(i,1)=Dis(f(i,N),f(i,1));
for j=1:N-1
lens(i,1)=