Population variable

Structure:

 popu.LB Vector (1 x nvar) Low boundaries
 popu.UB Vector (1 x nvar) High boundaries
 popu.devi Matrix (nind x nvar) Strategy variables
 popu.chrom Matrix (nind x nvar) Chromosomes
 popu.generation Scalar integer Generation number


nvar: number of variables, dimensions of search-space
nind: number of individuals, size of population


The LB and UB contain the lower and upper constraints for every variables. The IEC will search in these intervals. User must give low and high boundaries for every variable, certainly the -Inf and +Inf can be used. The upper boundary must be grater than the low boundary.

The devi contains the strategy variables. Under mutation random generated numbers are added to individuals, these normally distributed random numbers are multiplied by factors. The devi contains these factors for every individuals (see the article).

The chrom contains the chromosomes: real-coded row-vectors for every individual.

Example:

%Initialize popu variable:
popun = 9;    %population size
popu.LB = [0  0 -1];
popu.UB = [5 10 +1];
initchrom = [2.5 5 0]; %chromosome for first generation
initdevi = (popu.UB-popu.LB)/sqrt(varn)/2; %strategy variable for first generation
popu.devi = repmat([popu.devi],popun,1); %strategy variables
popu.chrom = repmat(initchrom,popun,1)+randn(popun,varn).*popu.devi; %chromosomes
popu.generation = 1;
%Display the chromosome of first individual:
popu.chrom(1,:)