libcmaes
A C++11 library for stochastic optimization with CMA-ES
|
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 <ipopcmastrategy.h>
Public Member Functions | |
IPOPCMAStrategy (FitFunc &func, CMAParameters< TGenoPheno > ¶meters) | |
constructor. More... | |
IPOPCMAStrategy (FitFunc &func, CMAParameters< TGenoPheno > ¶meters, const CMASolutions &solutions) | |
constructor. More... | |
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. More... | |
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. More... | |
Public Member Functions inherited from libcmaes::CMAStrategy< TCovarianceUpdate, TGenoPheno > | |
CMAStrategy () | |
dummy constructor | |
CMAStrategy (FitFunc &func, CMAParameters< TGenoPheno > ¶meters) | |
constructor. More... | |
CMAStrategy (FitFunc &func, CMAParameters< TGenoPheno > ¶meters, const CMASolutions &cmasols) | |
constructor for starting from an existing solution. More... | |
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. More... | |
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. More... | |
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. More... | |
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 > ¶meters) | |
constructor More... | |
ESOStrategy (FitFunc &func, CMAParameters< TGenoPheno > ¶meters, const CMASolutions &solutions) | |
constructor for starting from an existing solution. More... | |
dMat | ask () |
Generates a set of candidate points. More... | |
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. More... | |
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. More... | |
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. More... | |
void | inc_iter () |
increment iteration count. | |
void | update_fevals (const int &evals) |
updates the consumed budget of objective function evaluations. More... | |
void | set_gradient_func (GradFunc &gfunc) |
sets the gradient function, if available. More... | |
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. More... | |
void | start_from_solution (const CMASolutions &sol) |
starts optimization from a given solution object. More... | |
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. More... | |
dVec | gradf (const dVec &x) |
returns numerical gradient of objective function at x. More... | |
dVec | gradgp (const dVec &x) const |
returns the numerical gradient of the objective function in phenotype space More... | |
double | edm () |
computes expected distance to minimum (EDM). More... | |
CMASolutions & | get_solutions () |
returns reference to current solution object More... | |
CMAParameters< TGenoPheno > & | get_parameters () |
returns reference to current optimization parameters object More... | |
double | fitfunc (const double *x, const int N) |
execute objective function More... | |
void | uncertainty_handling () |
uncertainty handling scheme that computes and uncertainty level based on a dual candidate ranking. | |
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 = &pfuncdef_impl<TCovarianceUpdate,TGenoPheno> |
static PlotFunc< CMAParameters < TGenoPheno >, CMASolutions > | _defaultFPFunc = &fpfuncdef_impl<TCovarianceUpdate,TGenoPheno> |
Protected Attributes inherited from libcmaes::CMAStrategy< TCovarianceUpdate, TGenoPheno > | |
Eigen::EigenMultivariateNormal < double > | _esolver |
CMAStopCriteria< TGenoPheno > | _stopcriteria |
std::ofstream * | _fplotstream = nullptr |
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 |
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.
libcmaes::IPOPCMAStrategy< TCovarianceUpdate, TGenoPheno >::IPOPCMAStrategy | ( | FitFunc & | func, |
CMAParameters< TGenoPheno > & | parameters | ||
) |
constructor.
func | objective function to minimize |
parameters | stochastic search parameters |
libcmaes::IPOPCMAStrategy< TCovarianceUpdate, TGenoPheno >::IPOPCMAStrategy | ( | FitFunc & | func, |
CMAParameters< TGenoPheno > & | parameters, | ||
const CMASolutions & | solutions | ||
) |
constructor.
func | objective function to minimize |
parameters | stochastic search parameters |
solutions | solution to start search from |
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.
evalf | custom eval function |
askf | custom ask function |
tellf | custom tell function |
|
inline |
Finds the minimum of the objective function. It makes alternate calls to ask(), tell() and stop() until one of the termination criteria triggers.