25 #ifndef PAGMO_ALGORITHM_CMAES_H
26 #define PAGMO_ALGORITHM_CMAES_H
31 #include "../config.h"
33 #include "../population.h"
35 #include "../serialization.h"
36 #include "../Eigen/Dense"
41 namespace pagmo {
namespace algorithm {
51 cmaes(
int gen = 500,
double cc = -1,
double cs = -1,
double c1 = -1,
double cmu = -1,
double sigma0=0.5,
double ftol = 1e-6,
double xtol = 1e-6,
bool memory =
true);
54 std::string get_name()
const;
57 void set_gen(
const int gen);
60 void set_cc(
const double p);
61 double get_cc()
const;
63 void set_cs(
const double p);
64 double get_cs()
const;
66 void set_c1(
const double p);
67 double get_c1()
const;
69 void set_cmu(
const double p);
70 double get_cmu()
const;
72 void set_sigma(
const double p);
73 double get_sigma()
const;
75 void set_xtol(
const double p);
76 double get_xtol()
const;
78 void set_ftol(
const double p);
79 double get_ftol()
const;
82 std::string human_readable_extra()
const;
84 friend class boost::serialization::access;
85 template <
class Archive>
86 void serialize(Archive &ar,
const unsigned int)
88 ar & boost::serialization::base_object<base>(*this);
89 ar &
const_cast<std::size_t &
>(m_gen);
116 mutable double m_sigma;
122 mutable Eigen::VectorXd m_mean;
123 mutable Eigen::VectorXd m_variation;
124 mutable std::vector<Eigen::VectorXd> m_newpop;
125 mutable Eigen::MatrixXd m_B;
126 mutable Eigen::MatrixXd m_D;
127 mutable Eigen::MatrixXd m_C;
128 mutable Eigen::MatrixXd m_invsqrtC;
129 mutable Eigen::VectorXd m_pc;
130 mutable Eigen::VectorXd m_ps;
131 mutable int m_counteval;
132 mutable int m_eigeneval;
139 #endif // PAGMO_ALGORITHM_CMAES_H
boost::shared_ptr< base > base_ptr
Alias for shared pointer to base algorithm.
Covariance Matrix Adaptation Evolutionary Strategy (CMAES)
The Compass Search Solver (CS)