📄 initia~1.m
字号:
function [pop] = initialize(num,bounds,evalFN,evalOps,options)
% function [pop]=initialize(populationSize, variableBounds,evalFN,
% evalOps,options)
% initialize creates a matrix of random numbers with
% a number of rows equal to the populationSize and a number
% columns equal to the number of rows in bounds plus 1 for
% the f(x) value which is found by applying the evalFN.
%
% pop - the initial, evaluated, random population
% populatoinSize - the size of the population, i.e. the number to create
% variableBounds - a matrix which contains the bounds of each variable, i.e.
% [var1_high var1_low; var2_high var2_low; ....]
% evalFN - the evaluation fn, usually the name of the .m file for % evaluation% evalOps - any options to be passed to the eval function defaults []% options - options to the initialize function, ie. % [eps float/binary prec] where eps is the epsilon value % and the second option is 1 for float and 0 for binary,
% prec is the precision of the variables defaults [1e-6 1]
if nargin<5
options=[1e-6 1];
end
if nargin<4
evalOps=[];
end
if any(evalFN<48) %Not a .m file
if options(2)==1 %Float GA
estr=['x=pop(i,:); pop(i,xZomeLength)=', evalFN ';'];
else %Binary GA
estr=['x=b2f(pop(i,:),bounds,bits); pop(i,xZomeLength)=', evalFN ';'];
end
else %A .m file
if options(2)==1 %Float GA
estr=['[pop(i,xZomeLength) pop(i,:)]=' evalFN '(pop(i,:),[0 evalOps]);'];
else %Binary GA
estr=['x=b2f(pop(i,:),bounds,bits);[v x]=' evalFN ...
'(x,[0 evalOps]); pop(i,:)=[f2b(x,bounds,bits) v];'];
end
end
numVars = size(bounds,1); %Number of variables
rng = (bounds(:,2)-bounds(:,1))'; %The variable ranges'
if options(2)==1 %Float GA
xZomeLength = numVars+1; %Length of string is numVar + fit
pop = zeros(num,xZomeLength); %Allocate the new population
pop(:,1:numVars)=(ones(num,1)*rng).*(rand(num,numVars))+...
(ones(num,1)*bounds(:,1)');
else %Binary GA
bits=calcbits(bounds,options(1));
xZomeLength = sum(bits)+1; %Length of string is numVar + fit
pop = round(rand(num,sum(bits)+1));
end
for i=1:num
eval(estr);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -