cross_2d1.m

来自「程序代码的 啊卡点击开飞机啊的;房间 啊健康垃圾房啊的vj 啊卡就」· M 代码 · 共 45 行

M
45
字号
function [c10,c11]=cross_2d1(s_code10,s_code11,k)
   
   %交叉算子
  
   if k <= 50                                 %交叉概率取0.8,0.6
       pc=0.8; 
   else
       pc=0.6; 
   end
   
   
   population=20;
   
   %(1,2)/(3,4)/(5,6)进行交叉运算,(7,8)/(9,10)复制
   
   ww0=s_code10;
   ww1=s_code11;
   
   for i=1:(pc*population/2)
       r0=abs(round(rand(1)*10)-3);
       r1=abs(round(rand(1)*10)-3);
       for j=(r0+1):8
           temp0=ww0(2*i-1,j);
           ww0(2*i-1,j)=ww0(2*i,j);
           ww0(2*i,j)=temp0; 
       end
       for j=(r1+1):8
           temp1=ww1(2*i-1,j);
           ww1(2*i-1,j)=ww1(2*i,j);
           ww1(2*i,j)=temp1; 
       end
   end
   
   c10=ww0;
   c11=ww1;
   
   
           
           
       
       
   
   
   
   

⌨️ 快捷键说明

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