ga_linear_fit_scale.m

来自「书籍代码:遗传演算法原理与应用_活用MATLAB(Source Code)」· M 代码 · 共 25 行

M
25
字号
% Linear fitness scaling
% Given cm, fitness, we find sfitness
function sfitness=GA_linear_fit_scale(fitness,cm)

if cm>=1.5 & cm<=3    % cm=1.5 to 3 is reasonable.
   fave=mean(fitness);
   fmax =max(fitness);
   if abs(fmax-fave)>0.1
      a=(cm-1)*fave/(fmax-fave);     %formulae only
      b=(1-a)*fave;
      sfitness=a*fitness+b;
   else
      sfitness=fitness;
   end;   
else
   sfitness=fitness; 
end;

% if negative fitness, change it to positive.
I=find(sfitness<=0);
if ~isempty(I)
   Minf=min(sfitness);
   sfitness=sfitness-Minf; %Make sure all nonnegative
end;   

⌨️ 快捷键说明

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