我想重组(交叉)两条染色体(遗传算法)。这是我的伪代码,我的问题在哪里?
popu是 50 * 10 矩阵。(我的人口)
popsize =50
选择的是 1*50 矩阵(选择具有适应度评估器的最佳个体)
function pop = recombin( popu,selected )
global popsize;
pop=zeros(50,10);
for i=1:popsize/2
rc=randi([1,10]);
for j=1:10
if(j<=rc)
pop(i,j)=popu(selected(i),j);
pop(i+25,j)=popu(selected(i+25),j);
else
pop(i,j)=popu(selected(i+25),j);
pop(i+25,j)=popu(selected(i),j);
end
%keyboard
end
end
end
我的代码工作正常(语法上)。但我不确定这是在通用算法中组合 2 个染色体的正确方法:(