selection.m

来自「用matlab编写的自适应遗传算法例子」· M 代码 · 共 48 行

M
48
字号
% The select oprator function
% function new_pop=select(pop,ada)

ada_sum=0;
ada_temp=0;
r=0;
i=0;j=0;
for i=1:40
    ada_sum=ada_sum+adapt(i);
end

for i=1:39      %选择39次,最后一个个体留给历代最优解
    r=rand*ada_sum;  %随机产生一个数
    ada_temp=0;      %初始化累加值为0
    j=0;
    while(ada_temp<r)
        j=j+1;
        ada_temp=ada_temp+adapt(j);        
    end
    %退出循环时的j值即为被选择的个体序号
%     if j>40
%         j=40;
%     end
        
    for k=1:10
        new_pop(i,k)=pop(j,k);
    end

end

% 最优解复制
for i=1:10
    new_pop(40,i)=best_individual(i);
end

%将选择产生的新群体复制给pop种群
for i=1:40
    for j=1:10
        pop(i,j)=new_pop(i,j);
    end
end

clear i;
clear j;
clear k;
clear r;
clear ada_temp;

⌨️ 快捷键说明

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