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

📄 crossover.m

📁 继续上次传的简单遗传算法
💻 M
字号:
function [NewPop]=CrossOver(OldPop,pCross) 
[m,n]=size(OldPop);
r=rand(1,m);
y1=find(r<pCross);
len=length(y1);
if len>2 & mod(len,2)==1
    y1(len)=[];
end
NewPop=OldPop;
if length(y1)>=2
   for i=0:2:length(y1)-2
       hidecode=round(rand(1,n));
       crossposition=find(hidecode==1);
       holdposition=find(hidecode==0);
       NewPop(y1(i+1),crossposition)=OldPop(y1(i+1),crossposition);
       NewPop(y1(i+1),holdposition)=OldPop(y1(i+2),holdposition);
       NewPop(y1(i+2),crossposition)=OldPop(y1(i+2),crossposition);
       NewPop(y1(i+2),holdposition)=OldPop(y1(i+1),holdposition);
   end     
end

⌨️ 快捷键说明

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