No BSD License  

Highlights from
Numerical Methods using Matlab, 2e

image thumbnail
from Numerical Methods using Matlab, 2e by John Penny
Companion Software

newchrom=selectga(criteria,chrom,a,b)
function newchrom=selectga(criteria,chrom,a,b)
%
% Example call: newchrom=selectga(criteria,chrom,a,b)
% Selects best chromosomes from chrom for next generation
% using function criteria in range a to b.
% Called by function optga.
%
% Selects best chromosomes for next generation using criteria
[pop bitlength]=size(chrom);
fit=[ ];
%calculate fitness
[fit,fitot]=fitness(criteria,chrom,a,b);
for chromnum=1:pop
  sval(chromnum)=sum(fit(1,1:chromnum));
end;
%select according to fitness
parname=[ ];
for i=1:pop
  rval=floor(fitot*rand);
  if rval<sval(1)
    parname=[parname 1];
  else
    for j=1:pop-1
      sl=sval(j); su=sval(j)+fit(j+1);
      if (rval>=sl) & (rval<=su)
        parname=[parname j+1];
      end
    end
  end
end
newchrom(1:pop,:)=chrom(parname,:);

Contact us at files@mathworks.com