www.pudn.com > segment_ga.rar > cross_2d1.m
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;