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

📄 findmaxusinges.asv

📁 其中提到遺傳學的程式碼與應用提供給次淚相向的研究者參考下載
💻 ASV
字号:
% findMaxUsingES.m
% Find max. of sinc(x)sinc(y) in -5 to 5 in x,y using
% Evolution strategy.
%% PenChen Chou, 2004-5-11

rand('state',sum(100*clock));  % Seed
% Initial popu
genSize=1500; popuSize=50;
range=[-5 -5
    5 5];
[junk,var_n]=size(range);
for i=1:var_n
    popu(1:popuSize,i)=rand(popuSize,1)*(range(2,i)-range(1,i))+...
        range(1,i);
end
% Fitness calculation
fit=sinc(popu(:,1)).*sinc(popu(:,2));
globalFit=0;
figure;
hold on
% Generation begins
for loop=1:genSize
  % Best Fitness
  [bestFit, indx]=max(fit);
  if bestFit>globalFit, 
      globalFit=bestFit; 
      bestX=popu(indx,1);
      bestY=popu(indx,2);
  end
  fprintf('#Gen=%4d; bestFit=%15.8f; x=%10.6f; y=%10.6f\n',...
      loop,globalFit,bestX,bestY);
  if loop==1
     plot(bestX,bestY,'+');
  elseif loop==genSize
     plot(bestX,bestY,'o');
  else
     plot(bestX,bestY,'.');
  end
  % Selection
  popu=GA_wheel(fit, popu);
  % Mutation
  sigma=0.1;
  popu=GA_evolutionStrategy(popu,range,sigma);
  % Fitness calculation
  fit=sinc(popu(:,1)).*sinc(popu(:,2));
end
grid
axis([-5 5 -5 5])
title('Trajectory,+=start; o=endPoint')

⌨️ 快捷键说明

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