crossover.m

来自「用matlab编写的自适应遗传算法例子」· M 代码 · 共 25 行

M
25
字号
%交叉操作,概率为0.7,单点交叉

% function pop=crossover(pop)

for i=1:2:39
    cross_P=rand;   %随机产生一个数,以比较交叉概率
    if cross_P<(-0.6*G+180.6)./200  %交叉概率线性变换,由0.9下降到0.3
        cross_pos=round(10*rand);   %交叉位置为0~9,若位置为0或1,则不进行交叉操作
        if or(cross_pos==0,cross_pos==1)
            continue;
        end
    
        for j=cross_pos:10
            temp=pop(i,j);
            pop(i,j)=pop(i+1,j);
            pop(i+1,j)=temp;
        end
    end
end

clear i;
clear j;
clear temp;
clear cross_P;
clear cross_pos;

⌨️ 快捷键说明

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