EvolvingObjects
eo::CMAState Class Reference

List of all members.

Public Member Functions

 CMAState (const CMAParams &, const std::vector< double > &initial_point, const double initial_sigma=1.0)
 CMAState (const CMAState &)
CMAStateoperator= (const CMAState &)
void sample (std::vector< double > &v) const
 sample a vector from the distribution
void reestimate (const std::vector< const std::vector< double > * > &sorted_population, double muBest, double muWorst)
 Reestimate covariance matrix and other internal parameters Does NOT update the eigen system (call that seperately)
bool updateEigenSystem (unsigned max_tries=1, unsigned max_iters=0)
 call this function after reestimate in order to update the eigen system It is a seperate call to allow the user to periodically skip this expensive step

Private Attributes

CMAStateImplpimpl

Detailed Description

Definition at line 23 of file CMAState.h.


Member Function Documentation

void eo::CMAState::sample ( std::vector< double > &  v) const

sample a vector from the distribution

If the sample is not to your liking (i.e., not within bounds) you can do one of two things:

a) Call sample again b) multiply the entire vector with a number between -1 and 1

Do not modify the sample in any other way as this will invalidate the internal consistency of the system.

A final approach is to copy the sample and modify the copy externally (in the evaluation function) and possibly add a penalty depending on the size of the modification.

Definition at line 358 of file CMAState.cpp.

Referenced by eoCMABreed< FitT >::operator()(), and eoCMAInit< FitT >::operator()().

void eo::CMAState::reestimate ( const std::vector< const std::vector< double > * > &  sorted_population,
double  muBest,
double  muWorst 
)

Reestimate covariance matrix and other internal parameters Does NOT update the eigen system (call that seperately)

Needs a population of mu individuals, sorted on fitness, plus

muBest: the best fitness in the population muWorst: the worst fitness in the population

Definition at line 360 of file CMAState.cpp.

Referenced by eoCMABreed< FitT >::operator()().

bool eo::CMAState::updateEigenSystem ( unsigned  max_tries = 1,
unsigned  max_iters = 0 
)

call this function after reestimate in order to update the eigen system It is a seperate call to allow the user to periodically skip this expensive step

max_iters = 0 implies 30 * N iterations

If after max_tries still no numerically sound eigen system is constructed, the function returns false

Definition at line 361 of file CMAState.cpp.

Referenced by eoCMABreed< FitT >::operator()().


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Friends