gusucode.com > matlab优化的遗传算法来优化支持向量机的参数源码程序 > 优化的遗传算法来优化支持向量机的参数/遗传优化向量机/Select.m
function ret=Select(individuals,sizepop) % 该函数用于进行选择操作 % individuals input 种群信息 % sizepop input 种群规模 % ret output 选择后的新种群 %% 无回放余数随机选择算子 N=floor(sizepop*individuals.fitness/sum(individuals.fitness)); new_fitness=individuals.fitness-N*sum(individuals.fitness)/sizepop;%新适应度 fitness1=new_fitness; %个体选择概率 sumfitness=sum(fitness1); sumf=fitness1./sumfitness; %采用轮盘赌法选择新个体 index=[]; for i=1:(sizepop-sum(N)) %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 %% 汇总所有选择出的新的个体 %赌博轮盘选择出的个体 temp1=individuals.chrom(index,:); f1=individuals.fitness(index); if size(f1,2)==1 else f1=f1'; end % 按比例选择出的个体 for i=1:length(N) if N(i)==0 else temp1=[temp1;repmat(individuals.chrom(i,:),N(i),1)]; f1=[f1;repmat(individuals.fitness(i),N(i),1)]; end end individuals.chrom=temp1;individuals.fitness=f1; ret=individuals; end