Skip to content
Emmanuel Benazera edited this page Jul 3, 2014 · 34 revisions

Welcome to the libcmaes documentation

libcmaes is a multithreaded C++11 library for high performance blackbox stochastic optimization using the CMA-ES algorithm for Covariance Matrix Adaptation Evolution Strategy.

It is especially useful and efficient for finding minimums and maximums of possibly complex, non-separable, non-derivable functions.

The library exposes a set of simple structures to the user. Below, the function to be optimized is refered to as the objective function, whose parameters define the state-space into which the search for solution takes place. The hyper-parameters are the set of parameters that govern the CMA-ES algorithm: some have their value determined automatically, and others can be overridden by the user.

  1. Building and installing libcmaes

  2. Quick start

  3. Library structures and API

  4. Using libcmaes

  5. Optimizing a function

  6. Visualizing optimization results and convergence

  7. Defining and using bounds on parameters

  8. Using parameter space transforms known as genotype/phenotype transforms

  9. Using a custom progress function

  10. Using a user-defined gradient function

  11. Defining a custom algorithm based on libcmaes primitives

  12. Applications

  13. using CMA-ES in CERN's ROOT

  14. experiments with CMA-ES and neural networks