


[NewPop] = SampleGaussianFullModel(NumbVar,model,RangeValues,AuxPop,AuxFunVal,sampling_params)
SampleGaussianFullModel: Samples a population of individuals from
a full multivariate Gaussian model
INPUTS
NumbVar: Number of variables
model: model{1} = mean of the variables
model{2} = matrix of covariances between the variables
RangeValues: Matrix of two vectors with the minimum and maximum real values
each variable can take
AuxPop: Auxiliary (selected) population (May be use for partial sampling or resampling)
AuxFunVal: Evaluation of the data set (required for some sampling algorithms, not for this one)
sampling_params{1,1} = N: Number of generated individuals
sampling_params{1,2} = var_scaling: Scaling for the covariance values. A
very low variance tends to move the algorith to stagnation. Scaling is a partial
solution to this problem. Dynamic scaling should
be implemented as a more robust solution
OUTPUTS
NewPop: Sampled individuals
Last version 8/26/2008. Roberto Santana (roberto.santana@ehu.es)

0001 function [NewPop] = SampleGaussianFullModel(NumbVar,model,RangeValues,AuxPop,AuxFunVal,sampling_params) 0002 % [NewPop] = SampleGaussianFullModel(NumbVar,model,RangeValues,AuxPop,AuxFunVal,sampling_params) 0003 % SampleGaussianFullModel: Samples a population of individuals from 0004 % a full multivariate Gaussian model 0005 % INPUTS 0006 % NumbVar: Number of variables 0007 % model: model{1} = mean of the variables 0008 % model{2} = matrix of covariances between the variables 0009 % RangeValues: Matrix of two vectors with the minimum and maximum real values 0010 % each variable can take 0011 % AuxPop: Auxiliary (selected) population (May be use for partial sampling or resampling) 0012 % AuxFunVal: Evaluation of the data set (required for some sampling algorithms, not for this one) 0013 % sampling_params{1,1} = N: Number of generated individuals 0014 % sampling_params{1,2} = var_scaling: Scaling for the covariance values. A 0015 % very low variance tends to move the algorith to stagnation. Scaling is a partial 0016 % solution to this problem. Dynamic scaling should 0017 % be implemented as a more robust solution 0018 % OUTPUTS 0019 % NewPop: Sampled individuals 0020 % 0021 % Last version 8/26/2008. Roberto Santana (roberto.santana@ehu.es) 0022 0023 PopSize = cell2num(sampling_params{1}(1)); 0024 var_scaling = cell2num(sampling_params{1}(2)); 0025 0026 vars_means = model{1}; 0027 vars_cov = model{2}*var_scaling; 0028 0029 % Generate the new population 0030 0031 NewPop = mvnrnd(vars_means,vars_cov,PopSize); 0032 0033 0034 return;