selection.m

来自「基本遗传算法,RBF神经网络算法,BP神经网络算法,一共5个源代码.程序可移植性」· M 代码 · 共 22 行

M
22
字号
%选择复制
%选择或复制操作决定哪些个体可以进入下一代.程序中采用赌轮盘选择法选择
function [newpop]=selection(pop,fitvalue)
totalfit=sum(fitvalue);  %求适应度之和
fitvalue=fitvalue/totalfit;%单个个体被选择的概率
fitvalue=cumsum(fitvalue); %如fitvalue=[1 2 3 4],则cumsum(fitvalue)=[1 3 6 10]
[px,py]=size(pop);
ms=sort(rand(px,1));  %从小到大排列,将产生的一系列随机数变成轮盘形式的表示方法,由小到大排列

fitin=1; 
newin=1;
while newin<=px
    if(ms(newin))<fitvalue(fitin) %ms(newin)表示的是ms列向量中第"newin"位数值
        fitvalue(fitin)
        newpop(newin,:)=pop(fitin,:); %赋值,即将旧种群中的第fitin个个体保留到下一代(newpop)
        newin=newin+1;
    else
        fitin=fitin+1;
    end 
end

⌨️ 快捷键说明

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