📄 select.m
字号:
function ret=select(individuals,sizepop)
%轮赌盘选择
sumfitness=sum(individuals.fitness); %这里的适应值还用再倒吗?
sumf=(individuals.fitness)./sumfitness;
% index=[];
% for i=1:sizepop
% pick=rand;
% while pick==0 %pick ~= 0
% pick=rand;
% end
% for i=1:sizepop %这里的i应该是j ?
% pick=pick-sumf(i);
% if pick<0
% index=[index i];
% break;
% end
% end
% end
% individuals.chrom=individuals.chrom(index,:);
% individuals.fitness=individuals.fitness(index);
sumf=cumsum(sumf);
rns=sort(rand(sizepop,1));
fitin=1;newin=1;
while newin<=sizepop
if rns(newin)<sumf(fitin)
chrom(newin,:)=individuals.chrom(fitin,:);
fitness(newin)=individuals.fitness(fitin);
newin=newin+1;
else
fitin=fitin+1;
end
end
individuals.chrom=chrom;
individuals.fitness=fitness;
ret=individuals;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -