selection1.m
来自「请大家看一看, 我编的这个用遗传算法求 f(x)=xsin(10pi*x)+2」· M 代码 · 共 22 行
M
22 行
function newpop=selection1(pop,fitness)
sumfit=sum(fitness); %fitness为个体适应度;
Y=fitness/sumfit; %Y为个体被选中的概率组成的矩阵;
n=size(Y,1); %矩阵的行数;
Z(1,1)=Y(1,1) %Z为累积概率所组成的矩阵;
for i=2:n
Z(i,1)=Y(i,1)+Z(i-1,1);
end
Z;
L=sort(rand(n,1));
newina=1;
newinb=1;
%newpop=rand();
while newinb<=n
if Z(newina)>L(newinb)
newpop(newinb,:)=pop(newina,:);
newinb=newinb+1;
else
newina=newina+1;
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?