-
- Description:
libcmaes is a multithreaded C++11 (with Python bindings) implementation of the CMA-ES algorithm for stochastic optimization of nonlinear 'blackbox' functions. The implemented algorithms have a wide range of applications in various disciplines, ranging from pure function optimization, optimization in industrial and scientific applications, to the solving of reinforcement and machine learning problems.
Current features include: high-level API for simple use in external applications, implementatio of several flavors of CMA-ES, IPOP-CMA-ES, BIPOP-CMA-ES, active CMA-ES, active IPOP and BIPOP restart strategies, sep-CMA-ES and VD-CMA (linear time & space complexity) along with support for IPOP and BIPOP flavors as well.
Some operations benefit from multicores, and there's support for objective function gradient, when available. A control exe in the command line is provided for running the algorithm over a range of classical single-objective optimization problems.
Full documentation is available from https://github.com/beniz/libcmaes/wiki
Developer API documentation is available from http://beniz.github.io/libcmaes/doc/html/index.html
- Changes to previous version:
This is a major release, with several novelties, improvements and fixes, among which:
step-size two-point adaptaion scheme for improved performances in some settings, ref #88
important bug fixes to the ACM surrogate scheme, ref #57, #106
simple high-level workflow under Python, ref #116
improved performances in high dimensions, ref #97
improved profile likelihood and contour computations, including under geno/pheno transforms, ref #30, #31, #48
elitist mechanism for forcing best solutions during evolution, ref 103
new legacy plotting function, ref #110
optional initial function value, ref #100
improved C++ API, ref #89
Python bindings support with Anaconda, ref #111
configure script now tries to detect numpy when building Python bindings, ref #113
Python bindings now have embedded documentation, ref #114
support for Travis continuous integration, ref #122
lower resolution random seed initialization
- BibTeX Entry: Download
- Supported Operating Systems: Linux, Windows, Mac Os X
- Data Formats: Any
- Tags: Black Box Optimization, Evolution Strategy, Stochastic Optimization
- Archive: download here
Other available revisons
-
Version Changelog Date 0.9.5 This is a major release, with several novelties, improvements and fixes, among which:
step-size two-point adaptaion scheme for improved performances in some settings, ref #88
important bug fixes to the ACM surrogate scheme, ref #57, #106
simple high-level workflow under Python, ref #116
improved performances in high dimensions, ref #97
improved profile likelihood and contour computations, including under geno/pheno transforms, ref #30, #31, #48
elitist mechanism for forcing best solutions during evolution, ref 103
new legacy plotting function, ref #110
optional initial function value, ref #100
improved C++ API, ref #89
Python bindings support with Anaconda, ref #111
configure script now tries to detect numpy when building Python bindings, ref #113
Python bindings now have embedded documentation, ref #114
support for Travis continuous integration, ref #122
lower resolution random seed initialization
March 9, 2015, 09:05:22 0.9.4 Update works around clang bug (e.g. for OSX) and implements uncertainty handling scheme. Main changes:
work around clang bug, now working with clang, ref #19
easier build on OSX
added uncertainty handling scheme for noisy objective functions, ref #65
optional support for surrogates at compile time, reducing the overal lib size, ref #90
fixed uninstall of python bindings
January 8, 2015, 11:09:02 0.9.3 This is an important update:
full support for surrogates, allowing optimization of costly objective functions, ref #57
integrated rankign SVM default surrogate, ref #83
Python bindings for surrogates, ref #75
more informed optimization status and error messages, ref #85
API for computing confidence intervals around optima, ref #30
API for computing 2D contour around optima, ref #31
new 'elitist' scheme for improved restart strategy useful on some rather difficult functions, ref #77
fixed Eigen namespace import, ref #62
fixed and added new parameter vector getter in Candidate, ref #84
November 17, 2014, 14:04:10 0.9.2 Main changes:
new VD-CMA algorithm with linear time and space complexity for black-box optimization
API control of stopping criteria, with individual activation scheme
improved memory control when tackling large-scale optimization problems
solutions now support printing out in pheno space
improved API of solutions object
fixed compilation error with gcc 4.7
October 30, 2014, 14:08:34 0.9.1 Small release with two bug fixes and tiny changes otherwise:
small API improvements
fixed bug in tolX stopping criteria when using 'sep' algorithm
fixed bug to the natural gradient with genotype /phenotype transforms
file stream now outputs parameter's mean in phenotype
tiny wrapper to simplify maximization of objective function (default is minimization)
October 9, 2014, 10:08:18 0.9.0 - Python bindings, ref #26
- Cleaned up setters / getters interface, ref #64
- Lib is now quiet by default, ref #61
- Support for pkg-config, ref #58
- Improved make uninstall, ref #66
- API improvements (e.g. new parameters constructor from vector, ref #60)
- Stopping criteria with explicit control of in-memory history size for large-scale optimization
September 10, 2014, 10:13:53 0.8.1 - Added customization of data to file streaming function, ref #51
- Added configure control for compiling the library alone without examples or tools, ref #11
- Fixed code in order to avoid various compiler warnings
- Fixed sample code in README, ref #54
- Fixed get_max_iter and set_mt_feval in Parameters object
- New CMAParameters constructor, from x0 as a vector of double
- Updated building instructions for Mac OSX
- New set_str_algo in Parameters object
August 12, 2014, 16:18:31 0.8 Initial Announcement on mloss.org.
July 15, 2014, 11:20:02
Comments
No one has posted any comments yet. Perhaps you'd like to be the first?
Leave a comment
You must be logged in to post comments.