root-mirror/root — pull request #40 by beniz (2014-11-18 09:19:56+00:00)
Title: Support for CMA-ES minimizer based on libcmaes

This is ROOT6 support for [CMA-ES](https://www.lri.fr/~hansen/cmaesintro.html), a state-of-the-art black box stochastic minimizer. The implementation uses [libcmaes](https://github.com/beniz/libcmaes), a novel high performance C++11 (with Python bindings) library for blackbox optimization.

The new minimizer yields better results than Minuit2 for most problems, though for an higher computation cost on average. See below for links to relevant benchmarks backing up these claims.

This implementation is on behalf of [Inria Saclay Research group TAO](http://www.inria.fr/en/teams/tao), [Laboratoire de l'Accelerateur Lineaire, group AppStat](http://appstat.lal.in2p3.fr/) and [University Paris-Sud LRI](https://www.lri.fr/index_en.php?lang=EN)

===Features===
- Seamless replacement for Minuit, Minuit2 and Fumili
- Seamless support for RooFit
- Relying on libcmaes allows for best performances known for CMA-ES + access to several flavors of the original algorithm, yielding best results with a trade off for computational cost, as needed
- Compilation support for both Autotools and CMake
- Included tutorial files, tests, and a special benchmark vs Minuit2

===Documentation===
- Main documentation for building and using the new minimizer is here: https://github.com/beniz/libcmaes/wiki/using-CMA-ES-in-CERN's-ROOT

===Performances===
- On-par with Minuit2 on low dimensional problems (< 10-D), consistently beats Minuit2 in higher dimension, leading to better fits. These claims are backed by two benchmarks and two experiments on real world data (we are still waiting from some results from usage at CERN)
- Benchmark CMA-ES vs Minuit on [BBOB](http://coco.gforge.inria.fr/doku.php?id=bbob-2013) available here: https://drive.google.com/open?id=0B3J1vWYhta9ibktXc2JLRUExUTA&authuser=0
- In-ROOT benchmark vs Minuit2 on low-dimensional problems, results available here: https://drive.google.com/open?id=0B3J1vWYhta9iTmR0T0hnN21lSGM&authuser=0
- Beats out Minuit2 up to 98% of the time on some experiments (data + code available on demand from Auger group, ask me)

I am available for help in testing and possibly integrating and maintaining this addition, just let me know.