mycrossover.m

来自「用遗传算法求解二维函数的最大值问题」· M 代码 · 共 24 行

M
24
字号
%交叉操作,概率为0.7,单点交叉 
%mycrossover.m 

for i=1:2:nind-1 
    cross_P=rand;  %随机产生一个数,以比较交叉概率 
    if cross_P<0.7  %交叉概率为0.7 
        cross_pos=round(2*bits*rand);  %交叉位置为0~9,若位置为0或1,则不进行交叉操作 
        if or(cross_pos==0,cross_pos==1) 
            continue; 
        end 
    
        for j=cross_pos:2*bits 
            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 + -
显示快捷键?