libcmaes 0.10.2
A C++11 library for stochastic optimization with CMA-ES
Loading...
Searching...
No Matches
libcmaes::IPOPCMAStrategy< TCovarianceUpdate, TGenoPheno > Class Template Reference

Implementation of the IPOP flavor of CMA-ES, with restarts that linearly increase the population of offsprings used in the update of the distribution parameters. More...

#include <libcmaes/ipopcmastrategy.h>

Inheritance diagram for libcmaes::IPOPCMAStrategy< TCovarianceUpdate, TGenoPheno >:
libcmaes::CMAStrategy< TCovarianceUpdate, TGenoPheno > libcmaes::ESOStrategy< CMAParameters< TGenoPheno >, CMASolutions, CMAStopCriteria< TGenoPheno > > libcmaes::BIPOPCMAStrategy< TCovarianceUpdate, TGenoPheno >

Public Member Functions

 IPOPCMAStrategy (FitFunc &func, CMAParameters< TGenoPheno > &parameters)
 constructor.
 
 IPOPCMAStrategy (FitFunc &func, CMAParameters< TGenoPheno > &parameters, const CMASolutions &solutions)
 constructor.
 
void tell ()
 Updates the covariance matrix and prepares for the next iteration.
 
int optimize (const EvalFunc &evalf, const AskFunc &askf, const TellFunc &tellf)
 Finds the minimum of the objective function. It makes alternate calls to ask(), tell() and stop() until one of the termination criteria triggers.
 
int optimize ()
 Finds the minimum of the objective function. It makes alternate calls to ask(), tell() and stop() until one of the termination criteria triggers.
 
- Public Member Functions inherited from libcmaes::CMAStrategy< TCovarianceUpdate, TGenoPheno >
 CMAStrategy ()
 dummy constructor
 
 CMAStrategy (FitFunc &func, CMAParameters< TGenoPheno > &parameters)
 constructor.
 
 CMAStrategy (FitFunc &func, CMAParameters< TGenoPheno > &parameters, const CMASolutions &cmasols)
 constructor for starting from an existing solution.
 
dMat ask ()
 generates nsols new candidate solutions, sampled from a multivariate normal distribution. return A matrix whose rows contain the candidate points.
 
void tell ()
 Updates the covariance matrix and prepares for the next iteration.
 
bool stop ()
 Stops search on a set of termination criterias, see reference paper.
 
int optimize (const EvalFunc &evalf, const AskFunc &askf, const TellFunc &tellf)
 Finds the minimum of the objective function. It makes alternate calls to ask(), tell() and stop() until one of the termination criteria triggers.
 
int optimize ()
 Finds the minimum of the objective function. It makes alternate calls to ask(), tell() and stop() until one of the termination criteria triggers.
 
void plot ()
 Stream the internal state of the search into an output file, as defined in the _parameters object.
 
- Public Member Functions inherited from libcmaes::ESOStrategy< CMAParameters< TGenoPheno >, CMASolutions, CMAStopCriteria< TGenoPheno > >
 ESOStrategy ()
 dummy constructor.
 
 ESOStrategy (FitFunc &func, CMAParameters< TGenoPheno > &parameters)
 constructor
 
 ESOStrategy (FitFunc &func, CMAParameters< TGenoPheno > &parameters, const CMASolutions &solutions)
 constructor for starting from an existing solution.
 
dMat ask ()
 Generates a set of candidate points.
 
void eval (const dMat &candidates, const dMat &phenocandidates=dMat(0, 0))
 Evaluates a set of candidates against the objective function. The procedure is multithreaded and stores both the candidates and their f-value into the _solutions object that bears the current set of potential solutions to the optimization problem.
 
void tell ()
 Updates the state of the stochastic search, and prepares for the next iteration.
 
bool stop ()
 Decides whether to stop the search for solutions.
 
int optimize (const EvalFunc &evalf, const AskFunc &askf, const TellFunc &tellf)
 Finds the minimum of the objective function. It makes alternative calls to ask(), tell() and stop() until one of the termination criteria triggers.
 
void inc_iter ()
 increment iteration count.
 
void update_fevals (const int &evals)
 updates the consumed budget of objective function evaluations.
 
void set_gradient_func (GradFunc &gfunc)
 sets the gradient function, if available.
 
void set_progress_func (ProgressFunc< CMAParameters< TGenoPheno >, CMASolutions > &pfunc)
 Sets the possibly custom progress function, that is called in between every search step, and gives an outside user a simple way to witness progress of the algorithm, as well as to add custom termination criteria.
 
void start_from_solution (const CMASolutions &sol)
 starts optimization from a given solution object.
 
void set_plot_func (PlotFunc< CMAParameters< TGenoPheno >, CMASolutions > &pffunc)
 Sets the possibly custom plot to file function, that is useful for storing into file various possibly custom variable values for each step until termination.
 
dVec gradf (const dVec &x)
 returns numerical gradient of objective function at x.
 
dVec gradgp (const dVec &x) const
 returns the numerical gradient of the objective function in phenotype space
 
double edm ()
 computes expected distance to minimum (EDM).
 
CMASolutionsget_solutions ()
 returns reference to current solution object
 
CMAParameters< TGenoPheno > & get_parameters ()
 returns reference to current optimization parameters object
 
double fitfunc (const double *x, const int N)
 execute objective function
 
void uncertainty_handling ()
 uncertainty handling scheme that computes and uncertainty level based on a dual candidate ranking.
 
void perform_uh (const dMat &candidates, const dMat &phenocandidates, int &nfcalls)
 uncertainty handling scheme that perform completely the reevaluation of solutions.
 
void select_candidates_uh (const dMat &candidates, const dMat &phenocandidates, dMat &candidates_uh)
 part of the ucertainty handling scheme that select which candidates should be reevaluated.
 
void eval_candidates_uh (const dMat &candidates, const dMat &candidates_uh, std::vector< RankedCandidate > &nvcandidates, int &nfcalls)
 part of the ucertainty handling scheme that evaluate the candidates to be reevaluated.
 
void set_candidates_uh (const std::vector< RankedCandidate > &nvcandidates)
 part of the ucertainty handling scheme that set the results of evaluation to the solutions.
 
void tpa_update ()
 updates the two-point adaptation average rank difference for the step-size adaptation mechanism
 
Candidate best_solution () const
 
void set_initial_elitist (const bool &e)
 

Protected Member Functions

void lambda_inc ()
 
void reset_search_state ()
 
void capture_best_solution (CMASolutions &best_run)
 

Additional Inherited Members

- Static Public Attributes inherited from libcmaes::CMAStrategy< TCovarianceUpdate, TGenoPheno >
static ProgressFunc< CMAParameters< TGenoPheno >, CMASolutions_defaultPFunc
 
static PlotFunc< CMAParameters< TGenoPheno >, CMASolutions_defaultFPFunc
 
- Protected Attributes inherited from libcmaes::CMAStrategy< TCovarianceUpdate, TGenoPheno >
Eigen::EigenMultivariateNormal< double_esolver
 
CMAStopCriteria< TGenoPheno_stopcriteria
 
std::ofstream * _fplotstream
 
- Protected Attributes inherited from libcmaes::ESOStrategy< CMAParameters< TGenoPheno >, CMASolutions, CMAStopCriteria< TGenoPheno > >
FitFunc _func
 
int _nevals
 
int _niter
 
CMASolutions _solutions
 
CMAParameters< TGenoPheno_parameters
 
ProgressFunc< CMAParameters< TGenoPheno >, CMASolutions_pfunc
 
GradFunc _gfunc
 
PlotFunc< CMAParameters< TGenoPheno >, CMASolutions_pffunc
 
FitFunc _funcaux
 
bool _initial_elitist
 

Detailed Description

template<class TCovarianceUpdate, class TGenoPheno>
class libcmaes::IPOPCMAStrategy< TCovarianceUpdate, TGenoPheno >

Implementation of the IPOP flavor of CMA-ES, with restarts that linearly increase the population of offsprings used in the update of the distribution parameters.

Constructor & Destructor Documentation

◆ IPOPCMAStrategy() [1/2]

libcmaes::IPOPCMAStrategy< TCovarianceUpdate, TGenoPheno >::IPOPCMAStrategy ( FitFunc &  func,
CMAParameters< TGenoPheno > &  parameters 
)

constructor.

Parameters
funcobjective function to minimize
parametersstochastic search parameters

◆ IPOPCMAStrategy() [2/2]

libcmaes::IPOPCMAStrategy< TCovarianceUpdate, TGenoPheno >::IPOPCMAStrategy ( FitFunc &  func,
CMAParameters< TGenoPheno > &  parameters,
const CMASolutions solutions 
)

constructor.

Parameters
funcobjective function to minimize
parametersstochastic search parameters
solutionssolution to start search from

Member Function Documentation

◆ optimize() [1/2]

Finds the minimum of the objective function. It makes alternate calls to ask(), tell() and stop() until one of the termination criteria triggers.

Returns
success or error code, as defined in opti_err.h Note: the termination criteria code is held by _solutions._run_status

◆ optimize() [2/2]

int libcmaes::IPOPCMAStrategy< TCovarianceUpdate, TGenoPheno >::optimize ( const EvalFunc &  evalf,
const AskFunc &  askf,
const TellFunc &  tellf 
)

Finds the minimum of the objective function. It makes alternate calls to ask(), tell() and stop() until one of the termination criteria triggers.

Parameters
evalfcustom eval function
askfcustom ask function
tellfcustom tell function
Returns
success or error code, as defined in opti_err.h Note: the termination criteria code is held by _solutions._run_status

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