⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chengxu.txt

📁 遗传算法求解TSP
💻 TXT
字号:
生成初始种群
popm=zero(M,num);
for i=1:M
popm(i,:)=randperm(num);
end
function lem=value(r,dmatrix,num)
minopt=0;
for i=1:num-1
minopt=minopt+dmatrix(r(i),r(i+1));
end
minopt=minopt+dmatrix(r(1),r(num));
lem=1/minopt
lengthall=0;
for i=1:M
r=popm(i,:);
lengthone=value(r,dmatrix,num);
lengthall=lengthone+lengthall;
end
gailu=rands(1,M);
for i=1:M
r=popm(i,:);
gailu(1,i)=value(r,dmatrix,num)/lengthall;
end
father=ones(M,num);
i=1;
while i<=M
jc=rand;
j=1;
for j=1:M
if jc,=gailu(1,j);
father(i,:)=popm(j,:);
i=i+1;
j=M+1;
end
end
end
son=father;
for i=1:M*pc*0.5
a=floor(rand*M)+1;
b=floor(rand*M)+1;
father1=father(a,:);
father2=father(b,:);
k=floor(num*rand)+1;
l=floor(num*rand)+1;
minshu=min(k,l);
maxshu=max(k,l);
select1=father1(minshu:maxshu);
select2=father2(minshu:maxshu);
father12=delet(father1,select2);
father21=delet(father2,select1);
son(a,:)=[select2,father12];
son(b,:)=[select1,father21];
end
function z=delet(x,y)
for n=1:length(y)
x(:,find(x==y(n)))=[];
end
z=x;
for i=1:M*pm
c=floor(rand*M)+1;
g=floor(rand*num)+1;
h=floor(rand*num)+1;
zhjian=son(c,g);
son(c,g)=son(c,h);
son(c,h)=zhjian;
end	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -