selection.asv

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

ASV
45
字号
% 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=1;
    while(ada_temp<r)
        ada_temp=ada_temp+adapt(j);
        j=j+1;
    end
    %退出循环时的j值即为被选择的个体序号
    if j>40
        j=40;
    end
        
    for k=1:10
        new_pop(i,k)=pop(j,k);
    end

end

jb wd

%将选择产生的新群体复制给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 + -
显示快捷键?