CMAOptimizer Class Reference

The CMA-ES as a ReClaM Optimizer. More...

#include <CMAOptimizer.h>

Inheritance diagram for CMAOptimizer:

Optimizer

List of all members.

Classes

class  ModelFitness

Public Types

enum  eMode { modeRankMuUpdate = 1, modeRankOneUpdate = 2, modeOnePlusOne = 4 }

Public Member Functions

 CMAOptimizer (int verbosity=0)
 Constructor.
 ~CMAOptimizer ()
 Destructor.
void init (Model &model)
 basic initialization with default parameters
void init (Model &model, double sigma, eMode mode=modeRankMuUpdate, bool best=true, int lambda=0, int mu=0)
 initialization with additional parameters
void init (Model &model, const Array< double > &sigma, eMode mode=modeRankMuUpdate, bool best=true, int lambda=0, int mu=0)
 initialization with additional parameters
void initUncertainty (Model &model, double sigma=0.01, unsigned int maxEvals=1000, double alpha=1.5, double theta=0.1, eMode mode=modeRankMuUpdate, int lambda=0, int mu=0)
 initialization with additional parameter for CMA with uncertainty handling
void initUncertainty (Model &model, const Array< double > &sigma, unsigned int maxEvals=1000, double alpha=1.5, double theta=0.1, eMode mode=modeRankMuUpdate, int lambda=0, int mu=0)
 initialization with additional parameter
double optimize (Model &model, ErrorFunction &errorfunction, const Array< double > &input, const Array< double > &target)
 create and select one CMA-ES generation
int getLambda ()
 return the offspring size, that is, the number of fitness evaluations per generation.

Protected Member Functions

void Ind2Model (Individual &ind, Model &model)

Protected Attributes

ModelFitness objective
bool bFirstIteration
 is this the first iteration?
CMA cma
 CMA object from EALib.
ElitistCMA ecma
 ElitistCMA object from EALib.
Population * parents
 parent population
Population * offspring
 offspring population
eMode cmaMode
 CMA mode.
bool returnBestIndividual
 if true, always return the best known individual
double bestFitness
 best fitness
Array< double > bestParameters
 parameters leading to the best fitness
int verbosity
 verbosity level
bool uncertaintyHandling
 enable uncertainty handling?
unsigned int maxEvals
 maximum number of function evaluations
double alpha
 speed of strategy adaptation for uncertainty handling
double theta
 uncertainty threshold parameter


Detailed Description

The CMA-ES as a ReClaM Optimizer.

For a detailed description please refer to the EALib module.

Examples:

KernelOptimization.cpp.

Definition at line 59 of file CMAOptimizer.h.


Member Enumeration Documentation

Enumerator:
modeRankMuUpdate 
modeRankOneUpdate 
modeOnePlusOne 

Definition at line 62 of file CMAOptimizer.h.


Constructor & Destructor Documentation

CMAOptimizer::CMAOptimizer ( int  verbosity = 0  ) 

Constructor.

Definition at line 46 of file CMAOptimizer.cpp.

References offspring, and parents.

CMAOptimizer::~CMAOptimizer (  ) 

Destructor.

Definition at line 54 of file CMAOptimizer.cpp.

References offspring, and parents.


Member Function Documentation

int CMAOptimizer::getLambda (  ) 

return the offspring size, that is, the number of fitness evaluations per generation.

Definition at line 283 of file CMAOptimizer.cpp.

References offspring.

void CMAOptimizer::Ind2Model ( Individual &  ind,
Model model 
) [protected]

Definition at line 288 of file CMAOptimizer.cpp.

References Model::getParameterDimension(), i, and Model::setParameter().

Referenced by optimize().

void CMAOptimizer::init ( Model model,
const Array< double > &  sigma,
eMode  mode = modeRankMuUpdate,
bool  best = true,
int  lambda = 0,
int  mu = 0 
)

initialization with additional parameters

Parameters:
model model to optimize
sigma initial step size for each coordinate
mode CMA mode, see EALib for details
best if true, return the best individual ever evaluated
lambda number of offspring per generation, a value of 0 indicates the default depending on the problem dimension - not used in 1+1-mode
mu number of parents, a value of 0 indicates the default depending on lambda - not used in 1+1-mode

Definition at line 73 of file CMAOptimizer.cpp.

References bestFitness, bestParameters, bFirstIteration, cma, cmaMode, ecma, Model::getParameter(), Model::getParameterDimension(), i, modeOnePlusOne, modeRankMuUpdate, modeRankOneUpdate, offspring, parents, returnBestIndividual, uncertaintyHandling, and verbosity.

void CMAOptimizer::init ( Model model,
double  sigma,
eMode  mode = modeRankMuUpdate,
bool  best = true,
int  lambda = 0,
int  mu = 0 
)

initialization with additional parameters

Parameters:
model model to optimize
sigma initial step size
mode CMA mode, see EALib for details
best if true, return the best individual ever evaluated
lambda number of offspring per generation, a value of 0 indicates the default depending on the problem dimension - not used in 1+1-mode
mu number of parents, a value of 0 indicates the default depending on lambda - not used in 1+1-mode

Definition at line 66 of file CMAOptimizer.cpp.

References Model::getParameterDimension(), and init().

void CMAOptimizer::init ( Model model  )  [virtual]

basic initialization with default parameters

Parameters:
model model to optimize

Implements Optimizer.

Definition at line 61 of file CMAOptimizer.cpp.

Referenced by init(), and initUncertainty().

void CMAOptimizer::initUncertainty ( Model model,
const Array< double > &  sigma,
unsigned int  maxEvals = 1000,
double  alpha = 1.5,
double  theta = 0.1,
eMode  mode = modeRankMuUpdate,
int  lambda = 0,
int  mu = 0 
)

initialization with additional parameter

Parameters:
model model to optimize
sigma initial step size
maxEvals maximum number of function evaluation for one fitness computation
alpha speed of adaptation of number of function evaluations
theta uncertainty threshold
mode CMA mode, see EALib for details
lambda number of offspring per generation, a value of 0 indicates the default depending on the problem dimension - not used in 1+1-mode
mu number of parents, a value of 0 indicates the default depending on lambda - not used in 1+1-mode

Definition at line 146 of file CMAOptimizer.cpp.

References init(), objective, and uncertaintyHandling.

void CMAOptimizer::initUncertainty ( Model model,
double  sigma = 0.01,
unsigned int  maxEvals = 1000,
double  alpha = 1.5,
double  theta = 0.1,
eMode  mode = modeRankMuUpdate,
int  lambda = 0,
int  mu = 0 
)

initialization with additional parameter for CMA with uncertainty handling

Parameters:
model model to optimize
sigma initial step size
maxEvals maximum number of function evaluation for one fitness computation
alpha speed of adaptation of number of function evaluations
theta uncertainty threshold
mode CMA mode, see EALib for details
lambda number of offspring per generation, a value of 0 indicates the default depending on the problem dimension - not used in 1+1-mode
mu number of parents, a value of 0 indicates the default depending on lambda - not used in 1+1-mode

Definition at line 133 of file CMAOptimizer.cpp.

References init(), objective, and uncertaintyHandling.

double CMAOptimizer::optimize ( Model model,
ErrorFunction errorfunction,
const Array< double > &  input,
const Array< double > &  target 
) [virtual]


Member Data Documentation

double CMAOptimizer::alpha [protected]

speed of strategy adaptation for uncertainty handling

Definition at line 184 of file CMAOptimizer.h.

Referenced by optimize().

double CMAOptimizer::bestFitness [protected]

best fitness

Definition at line 169 of file CMAOptimizer.h.

Referenced by init(), and optimize().

Array<double> CMAOptimizer::bestParameters [protected]

parameters leading to the best fitness

Definition at line 172 of file CMAOptimizer.h.

Referenced by init(), and optimize().

is this the first iteration?

Definition at line 148 of file CMAOptimizer.h.

Referenced by init(), and optimize().

CMA CMAOptimizer::cma [protected]

CMA object from EALib.

Definition at line 151 of file CMAOptimizer.h.

Referenced by init(), and optimize().

CMA mode.

Definition at line 163 of file CMAOptimizer.h.

Referenced by init(), and optimize().

ElitistCMA CMAOptimizer::ecma [protected]

ElitistCMA object from EALib.

Definition at line 154 of file CMAOptimizer.h.

Referenced by init(), and optimize().

unsigned int CMAOptimizer::maxEvals [protected]

maximum number of function evaluations

Definition at line 181 of file CMAOptimizer.h.

Referenced by optimize().

Definition at line 143 of file CMAOptimizer.h.

Referenced by initUncertainty(), and optimize().

Population* CMAOptimizer::offspring [protected]

offspring population

Definition at line 160 of file CMAOptimizer.h.

Referenced by CMAOptimizer(), getLambda(), init(), optimize(), and ~CMAOptimizer().

Population* CMAOptimizer::parents [protected]

parent population

Definition at line 157 of file CMAOptimizer.h.

Referenced by CMAOptimizer(), init(), optimize(), and ~CMAOptimizer().

if true, always return the best known individual

Definition at line 166 of file CMAOptimizer.h.

Referenced by init(), and optimize().

double CMAOptimizer::theta [protected]

uncertainty threshold parameter

Definition at line 187 of file CMAOptimizer.h.

Referenced by optimize().

enable uncertainty handling?

Definition at line 178 of file CMAOptimizer.h.

Referenced by init(), initUncertainty(), and optimize().

int CMAOptimizer::verbosity [protected]

verbosity level

Definition at line 175 of file CMAOptimizer.h.

Referenced by init(), and optimize().


The documentation for this class was generated from the following files: