libcmaes 0.10.2
A C++11 library for stochastic optimization with CMA-ES
|
Simple surrogate strategy: trains every n steps, and exploits in between, mostly as an example and for testing / debugging surrogates. This strategy overrides the ask/eval/tell functions of the base optimization strategy. More...
#include <libcmaes/surrogatestrategy.h>
Public Member Functions | |
SimpleSurrogateStrategy (FitFunc &func, CMAParameters< TGenoPheno > ¶meters) | |
constructor | |
void | eval (const dMat &candidates, const dMat &phenocandidates=dMat(0, 0)) |
Evaluates a set of candiates against the objective function or the surrogate model, as needed. | |
void | tell () |
Updates the state of the stochastic search, and prepares for the next iteration by training the surrogate model, as needed. | |
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. | |
int | compute_lifelength () |
estimates surrogate lifelength | |
bool | do_train () const |
whether to train the model | |
![]() | |
SurrogateStrategy (FitFunc &func, CMAParameters< TGenoPheno > ¶meters) | |
constructor | |
int | train (const std::vector< Candidate > &candidates, const dMat &cov) |
train a surrogate model | |
int | predict (std::vector< Candidate > &candidates, const dMat &cov) |
predict from a surrogate model | |
double | compute_error (const std::vector< Candidate > &test_set, const dMat &cov=dMat(0, 0)) |
compute surrogate model error (copies and sorts the test_set) | |
bool | do_train () const |
conditionals on training, to be specialized in inherited surrogate strategies | |
void | set_ftrain (const CSurrFunc &train) |
sets the training function | |
void | set_fpredict (const SurrFunc &predict) |
sets the prediction function | |
void | set_l (const int &l) |
sets the size of the training set (number of points) | |
int | get_l () const |
gets the size of the training set (number of points) | |
void | set_exploit (const bool &exploit) |
sets whether to exploit the surrogate model | |
bool | get_exploit () const |
gets the state of surrogate model exploitation | |
double | get_train_error () const |
returns the surrogate model training error | |
double | get_test_error () const |
returns the surrogate model test error | |
void | set_train_error (const double &err) |
sets training error | |
void | set_test_error (const double &err) |
sets the test error and updates the smoothed test err. | |
void | add_to_training_set (const Candidate &c) |
adds a point to the training set (candidate = points + objective function value) | |
void | set_nsteps (const int &nsteps) |
sets the lifelength of the surrogate, i.e. the number of steps in between to training steps | |
void | reset_training_set () |
resets training set and related information, useful when using algorithms with restarts | |
int | get_nsteps () const |
returns the current surrogate lifelength | |
Public Attributes | |
double | _terr = 0.45 |
int | _nmax = 20 |
Additional Inherited Members | |
![]() | |
bool | _exploit = true |
int | _l = 200 |
std::vector< Candidate > | _tset |
CSurrFunc | _train |
SurrFunc | _predict |
double | _train_err = 0.0 |
double | _test_err = 0.0 |
double | _smooth_test_err = 0.5 |
double | _beta_err = 0.2 |
int | _nsteps = 1 |
int | _auto_nsteps = false |
Simple surrogate strategy: trains every n steps, and exploits in between, mostly as an example and for testing / debugging surrogates. This strategy overrides the ask/eval/tell functions of the base optimization strategy.
libcmaes::SimpleSurrogateStrategy< TStrategy, TCovarianceUpdate, TGenoPheno >::SimpleSurrogateStrategy | ( | FitFunc & | func, |
CMAParameters< TGenoPheno > & | parameters | ||
) |
constructor
func | objective function to minimize |
parameters | optimization parameters |
int libcmaes::SimpleSurrogateStrategy< TStrategy, TCovarianceUpdate, TGenoPheno >::compute_lifelength | ( | ) |
estimates surrogate lifelength
|
inline |
whether to train the model
void libcmaes::SimpleSurrogateStrategy< TStrategy, TCovarianceUpdate, TGenoPheno >::eval | ( | const dMat & | candidates, |
const dMat & | phenocandidates = dMat(0,0) |
||
) |
Evaluates a set of candiates against the objective function or the surrogate model, as needed.
Note: this function overrides the default CMAStrategy::eval
candidates | A matrix whose rows contain the candidates. |
phenocandidates | The candidates transformed into phenotype, leave empty if no pheno transform. |
int libcmaes::SimpleSurrogateStrategy< TStrategy, TCovarianceUpdate, TGenoPheno >::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 libcmaes::SimpleSurrogateStrategy< TStrategy, TCovarianceUpdate, TGenoPheno >::tell | ( | ) |
Updates the state of the stochastic search, and prepares for the next iteration by training the surrogate model, as needed.
Note: this function overrides the default CMAStrategy::tell
double libcmaes::SimpleSurrogateStrategy< TStrategy, TCovarianceUpdate, TGenoPheno >::_terr = 0.45 |
error threshold for estimating optimal nsteps