Project details for libcmaes

Logo libcmaes 0.9.5

by beniz - March 9, 2015, 09:05:22 CET [ Project Homepage BibTeX Download ]

view (14 today), download ( 3 today ), 3 subscriptions

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
URL: Project Homepage
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.