⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 select.m

📁 用简单遗传算法SGA实现的关于控制图的程序
💻 M
字号:
function ret=select(individuals,sizepop,opts)
% In this function,it fulfils a selection among chromosomes
% individuals input  : set of individuals
% sizepop     input  : size of population
% opts        input  : tag for choosing method of selection
% ret         output : new set of individuals
switch opts
    case 'roulette'  % roulette wheel model
        sumfitness=sum(1./individuals.fitness);
        sumf=(1./individuals.fitness)./sumfitness;
        index=[]; 
        for i=1:sizepop
            pick=rand;
            while pick==0
                 pick=rand;
            end
            for i=1:sizepop
                pick=pick-sumf(i);
                if pick<0
                   index=[index i];
                   break;
                end
            end
        end
        individuals.chrom=individuals.chrom(index,:);
        individuals.fitness=individuals.fitness(index);
        ret=individuals;
case 'tournament'  % tourment model 
    allindex=[];    
    for i=1:sizepop
        pick=rand(1,2);
        while prod(pick)==0
             pick=rand(1,2);
        end
        index=ceil(pick.*sizepop);
        if individuals.fitness(index(1))<=individuals.fitness(index(2))
             allindex=[allindex index(1)];
        else
             allindex=[allindex index(2)];
        end
    end
    individuals.chrom=individuals.chrom(allindex,:);
    individuals.fitness=individuals.fitness(allindex);
    ret=individuals;        
end

⌨️ 快捷键说明

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