📄 crossover.m
字号:
function child=crossover(father,cp)
[n,m]=size(father);
k=0;a=[];
for i=1:n
if rand<cp
k=k+1;
end
end
if k==0
child=father;
else
for j=1:k
d=[];
i=1;
while (i<=2)
a(i)=round(rand*(n-1))+1;
if i==2 & a(i)==a(i-1)
a(i)=round(rand*(n-1))+1;
i=i-1;
end
i=i+1;
end
i=1;
while (i<=2)
b(i)=round(rand*(m-1))+1;
if i==2 & b(i)==b(i-1)
b(i)=round(rand*(m-1))+1;
i=i-1;
end
i=i+1;
end
c1=min(b);
c2=max(b);
a1=a(1);
a2=a(2);
for i=c1;c2
d(i-c1+1)=father(a1,i);
father(a1,i)=father(a2,i);
father(a2,i)=d(i-c1+1);
end
end
child=father;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -