25#include <libcmaes/libcmaes_config.h>
26#include <libcmaes/candidate.h>
27#include <libcmaes/eo_matrix.h>
28#include <libcmaes/cmaparameters.h>
29#include <libcmaes/cmastopcriteria.h>
30#include <libcmaes/pli.h>
43 template <
class U,
class V>
friend class CMAStrategy;
44 template <
class U,
class V,
class W>
friend class ESOptimizer;
45 template <
class U,
class V,
class W>
friend class ESOStrategy;
51 template <
class U>
friend class errstats;
68 template<
class TGenoPheno=GenoPheno<NoBoundStrategy> >
78 std::stable_sort(_candidates.begin(),_candidates.end(),
87 void update_best_candidates();
94 void update_eigenv(
const dVec &eigenvalues,
95 const dMat &eigenvectors);
105 if (_best_candidates_hist.empty())
107 if (_initial_candidate.get_x_size())
108 return _initial_candidate;
109 else return Candidate(std::numeric_limits<double>::quiet_NaN(),_xmean);
111 return _best_candidates_hist.back();
120 return _best_seen_candidate;
129 return _worst_seen_candidate;
138 return _candidates.at(
r);
141 inline Candidate get_candidate(
const int &
r)
const
143 return _candidates.at(
r);
160 return _candidates.size();
174 void reset_as_fixed(
const int &
k);
181 std::map<int,pli>::const_iterator
mit;
182 if ((
mit=_pls.find(
k))!=_pls.end())
196 return _xmean.size();
240 dMat full_cov()
const;
266 return _sepcov.data();
294 template<
class TGenoPheno=GenoPheno<NoBoundStrategy> >
300 stds = _cov.diagonal().cwiseSqrt();
302 stds = _sepcov.cwiseSqrt();
304 stds = (dVec::Constant(
cmaparams.dim(),1.0)+_v.cwiseProduct(_v)).
cwiseSqrt().cwiseProduct(_sepcov);
314 template<
class TGenoPheno=GenoPheno<NoBoundStrategy> >
317 return std::sqrt(_sigma)*stds(
cmaparams);
330 double corr(
const int &
i,
const int &
j)
const;
392 return _elapsed_time;
401 return _elapsed_last_iter;
446 return _updated_eigen;
464 return _leigenvalues;
473 return _leigenvectors;
481 template <
class TGenoPheno=GenoPheno<NoBoundStrategy> >
482 std::ostream& print(std::ostream &
out,
500 double _max_eigenv = 0.0;
501 double _min_eigenv = 0.0;
512 bool _updated_eigen =
true;
516 int _elapsed_time = 0;
517 int _elapsed_last_iter = 0;
ACM Surrogate strategy for CMA-ES, follows: 'Surrogate-Assisted Evolutionary Algorithms',...
Definition surrogatestrategy.h:295
Active Covariance Matrix update. This implementation closely follows N. Hansen, R....
Definition acovarianceupdate.h:39
Implementation of the BIPOP flavor of CMA-ES, with restarts that control the population of offsprings...
Definition bipopcmastrategy.h:38
Holder of the set of evolving solutions from running an instance of CMA-ES.
Definition cmasolutions.h:42
std::vector< Candidate > _candidates
Definition cmasolutions.h:496
int run_status() const
returns current optimization status.
Definition cmasolutions.h:372
Candidate _best_seen_candidate
Definition cmasolutions.h:528
bool updated_eigen() const
returns whether the last update is lazy
Definition cmasolutions.h:444
double _suh
Definition cmasolutions.h:537
dVec _xmean
Definition cmasolutions.h:491
std::vector< Candidate > _k_best_candidates_hist
Definition cmasolutions.h:507
dVec stds(const CMAParameters< TGenoPheno > &cmaparams) const
Definition cmasolutions.h:295
dMat _sepcov
Definition cmasolutions.h:489
std::vector< double > _bfvalues
Definition cmasolutions.h:508
std::vector< RankedCandidate > _candidates_uh
Definition cmasolutions.h:535
dVec eigenvalues() const
returns last computed eigenvalues
Definition cmasolutions.h:462
bool get_pli(const int &k, pli &p) const
get profile likelihood if previously computed.
Definition cmasolutions.h:179
const dMat & cov_ref() const
returns reference to error covariance matrix
Definition cmasolutions.h:221
std::vector< Candidate > & candidates()
get a reference to the full candidate set
Definition cmasolutions.h:149
void sort_candidates()
sorts the current internal set of solution candidates.
Definition cmasolutions.h:76
std::vector< Candidate > _best_candidates_hist
Definition cmasolutions.h:497
const dMat & sepcov_ref() const
returns reference to separable covariance diagonal vector, only applicable to sep-CMA-ES algorithms.
Definition cmasolutions.h:255
int niter() const
returns current number of iterations
Definition cmasolutions.h:408
dMat csqinv() const
returns inverse root square of covariance matrix
Definition cmasolutions.h:273
double edm() const
returns expected distance to minimum.
Definition cmasolutions.h:203
void set_xmean(const dVec &xmean)
sets the current distributions' mean in parameter space
Definition cmasolutions.h:363
void set_sigma(const double &sigma)
sets new step-size value, use with care
Definition cmasolutions.h:345
int _lambda_reev
Definition cmasolutions.h:536
double min_eigenv() const
returns current minimal eigen value
Definition cmasolutions.h:426
int elapsed_last_iter() const
returns time spent on last iteration
Definition cmasolutions.h:399
dVec _xmean_prev
Definition cmasolutions.h:544
Candidate get_best_seen_candidate() const
returns the best seen candidate.
Definition cmasolutions.h:118
int elapsed_time() const
returns currently elapsed time spent on optimization
Definition cmasolutions.h:390
dMat _cov
Definition cmasolutions.h:487
dVec _psigma
Definition cmasolutions.h:492
dMat cov() const
returns error covariance matrix
Definition cmasolutions.h:212
int dim() const
return problem dimension.
Definition cmasolutions.h:194
Candidate best_candidate() const
returns current best solution candidate. NOTE: candidates MUST be sorted
Definition cmasolutions.h:103
std::vector< double > _median_fvalues
Definition cmasolutions.h:509
dMat eigenvectors() const
returns last computed eigenvectors
Definition cmasolutions.h:471
double max_eigenv() const
returns current maximal eigen value
Definition cmasolutions.h:435
double _sigma
Definition cmasolutions.h:495
dMat sepcov() const
returns separable covariance diagonal matrix, only applicable to sep-CMA-ES algorithms.
Definition cmasolutions.h:246
dMat _leigenvectors
Definition cmasolutions.h:503
const double * sepcov_data() const
returns pointer to covariance diagnoal vector
Definition cmasolutions.h:264
dMat sepcsqinv() const
returns inverse root square of separable covariance diagonal matrix, only applicable to sep-CMA-ES al...
Definition cmasolutions.h:282
int fevals() const
returns current number of objective function evaluations
Definition cmasolutions.h:453
int nevals() const
returns current budget (number of objective function calls)
Definition cmasolutions.h:417
Candidate & get_candidate(const int &r)
get a reference to the r-th candidate in current set
Definition cmasolutions.h:136
dVec _v
Definition cmasolutions.h:533
dVec _leigenvalues
Definition cmasolutions.h:502
dVec _pc
Definition cmasolutions.h:493
CMASolutions()
dummy constructor.
Definition cmasolutions.h:62
const double * cov_data() const
returns pointer to covariance matrix array
Definition cmasolutions.h:230
dVec errors(const CMAParameters< TGenoPheno > &cmaparams) const
Definition cmasolutions.h:315
std::string status_msg() const
returns current optimization status' message.
Definition cmasolutions.h:381
Candidate get_worst_seen_candidate() const
returns the worst seen candidate.
Definition cmasolutions.h:127
dVec xmean() const
returns current distribution's mean in parameter space
Definition cmasolutions.h:354
int size() const
number of candidate solutions.
Definition cmasolutions.h:158
double sigma() const
returns current value of step-size sigma
Definition cmasolutions.h:336
std::map< int, pli > _pls
Definition cmasolutions.h:525
CMA-ES termination criteria, see reference paper in cmastrategy.h.
Definition cmastopcriteria.h:76
This is an implementation of CMA-ES. It uses the reference algorithm and termination criteria of the ...
Definition cmastrategy.h:46
candidate solution point, in function parameter space.
Definition candidate.h:34
Covariance Matrix update. This is an implementation closely follows: Hansen, N. (2009)....
Definition covarianceupdate.h:38
Main class describing an evolutionary optimization strategy. Every algorithm in libcmaes descends fro...
Definition esostrategy.h:52
an optimizer main class.
Definition esoptimizer.h:72
ESOptimizer()
dummy constructor
Definition esoptimizer.h:77
Implementation of the IPOP flavor of CMA-ES, with restarts that linearly increase the population of o...
Definition ipopcmastrategy.h:36
Simple surrogate strategy: trains every n steps, and exploits in between, mostly as an example and fo...
Definition surrogatestrategy.h:216
VD-CMA update that is a linear time/space variant of CMA-ES This is an implementation that closely fo...
Definition vdcmaupdate.h:39
profile likelihood object holder as a set of points and values.
Definition pli.h:35
linear scaling of the parameter space to achieve similar sensitivity across all components.
Definition acovarianceupdate.h:30