diff --git a/optimization/optimizers/cma_es/cma_es.h b/optimization/optimizers/cma_es/cma_es.h index 0101af8fd2debe8202bf03ba7bd92d2ba69667a3..8fb5e6fc0a4924124d84394f22d6e59caba1549c 100644 --- a/optimization/optimizers/cma_es/cma_es.h +++ b/optimization/optimizers/cma_es/cma_es.h @@ -30,6 +30,13 @@ public: uint32_t pop_size() const { return pop_size_; } uint32_t& pop_size() { return pop_size_; } + template <typename Objective> + VectorXs optimize( + Objective& objective, + VectorXs const& initial_point, + Scalar initial_std_dev = 0.3 + ); + template <typename Objective> VectorXs optimize( Objective& objective, @@ -49,6 +56,19 @@ private: uint32_t n_iterations_; }; +//.................................................................................................. +template <typename Objective> +VectorXs CmaEs::optimize( + Objective& objective, + VectorXs const& initial_point, + Scalar initial_std_dev +) { + VectorXs std_dev_vector; + std_dev_vector.resize(initial_point.size()); + std_dev_vector.fill(initial_std_dev); + return optimize(objective, initial_point, std_dev_vector); +} + //.................................................................................................. template <typename Objective> VectorXs CmaEs::optimize( diff --git a/optimization/optimizers/cma_es/main.cpp b/optimization/optimizers/cma_es/main.cpp index e79cb58b06d5bc6b072da5a5c545c4b570754475..8148c9f4700b536a0e49a9bce23367458fc4bcaf 100644 --- a/optimization/optimizers/cma_es/main.cpp +++ b/optimization/optimizers/cma_es/main.cpp @@ -35,7 +35,7 @@ int main(int const argc, char const** argv) { clara::Opt(pop_size, "pop_size")["-p"]["--pop-size"]("Population size") | clara::Opt(seed, "seed")["-s"]["--seed"]("Seed for CMA-ES random number generator") | clara::Opt(max_evaluations, "max_evaluations")["-n"]["--max-evaluations"]("Max number of function evaluations") | - clara::Opt(max_iterations, "max_iterations")["-n"]["--max-iterations"]("Max number of generations") | + clara::Opt(max_iterations, "max_iterations")["-i"]["--max-iterations"]("Max number of generations") | clara::Opt(rel_y_tol, "rel_y_tol")["-t"]["--rel-y-tol"]("Termination condition") | clara::Opt(x0, "x0")["-x"]["--x0"]("X coordinate of initial point") | clara::Opt(y0, "y0")["-y"]["--y0"]("Y coordinate of initial point");