cross_over.m

来自「遗传算法与神经网络联合例程」· M 代码 · 共 25 行

M
25
字号
function y=cross_over(chrom)
% [m,n]=size(chrom);
% temchrom=zeros(1,n);
% for i=1:2:m-1
% %      c=rand(1);
% %     temchrom=chrom(i,:);
% %     chrom(i,:)=c.*chrom(i,:)+(1-c).*chrom(i+1,:);
% %     chrom(i+1,:)=(1-c).*temchrom+c.*chrom(i+1,:);
%     c=rand(1);
%     temchrom=chrom(i,:);
%     chrom(i,:)=c.*chrom(i,:)+(1-c).*chrom(i+1,:);
%     chrom(i+1,:)=(1-c).*temchrom+c.*chrom(i+1,:);
% end
% y=chrom;
[m,n]=size(chrom);  %两点交叉
temchrom=zeros(1,n);
for i=1:2:m-1
    c=1+fix(n*rand(1,2));
    c_a=min(c);
    c_b=max(c);
    temchrom=chrom(i,:);
    chrom(i,c_a:c_b)=chrom(i+1,c_a:c_b);
    chrom(i+1,c_a:c_b)=temchrom(:,c_a:c_b);
end
y=chrom;

⌨️ 快捷键说明

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