myselection.m

来自「用遗传算法求解二维函数的最大值问题」· M 代码 · 共 45 行

M
45
字号
% The select oprator function myselection.m 

eval_sum=0; 
eval_temp=0; 
r=0; 
i=0;j=0; 
for i=1:nind 
    eval_sum=eval_sum+eval(i); %群体的适应度值总和
end 
for i=1:nind
     p(i)=eval(i)/eval_sum;%计算对应于每个染色体的选择概率p
end
  
for i=1:nind-1      %选择39次,最后一个个体留给历代最优解 
    p_temp=0;      %初始化累加概率为0 
    j=0; 
    while(p_temp<rand) 
        j=j+1; 
        p_temp=p_temp+p(j);        
    end 
    for k=1:2*bits
        new_pop(i,k)=pop(j,k); %将选中的染色体每个基因赋给新的种群
    end 
  
end 
  
% 最优解复制 
for i=1:2*bits 
    new_pop(nind,i)=best_individual(i);  %将本代最优解赋给最后一个个体
end 
  
%将选择产生的新群体复制给pop种群 
for i=1:nind
    for j=1:2*bits
        pop(i,j)=new_pop(i,j); 
    end 
end 
  
clear i; 
clear j; 
clear k; 
clear r; 
clear p_temp; 

⌨️ 快捷键说明

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