-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for CMA-ES minimizer based on libcmaes #40
Closed
Closed
Changes from 132 commits
Commits
Show all changes
137 commits
Select commit
Hold shift + click to select a range
07fa07d
first cmaes addition
beniz 19851dd
Merge branch 'master' into cmaes4root_master
beniz 002dbc1
Merge branch 'master' into cmaes4root_master
beniz 86fda1d
fixed configure for root 6 with cmaes
beniz ebe6df6
adding cmaes repository
beniz e69e1d1
added cmaes plugin
4df6185
first working auto-loaded cmaes
073302a
fixed cmaes wrapper + added likelihood gaussian fit to tutorial
a687d1c
connecting error estimates to cmaes wrapper
e8a2cca
Merge branch 'master' into cmaes4root_master
60128d6
libcmaes auto detection
89eaa6a
default CMA-ES progress function set to no output
a52cc9d
Merge branch 'master' into cmaes4root_master
45715cd
added support for box-type constraints with CMA-ES
aa85c46
Merge branch 'master' into cmaes4root_master
b33c970
Merge branch 'master' into cmaes4root_master
c9e85a8
added support to multiple flavors of CMA-ES
783d691
added 1D histograms fitting benchmark for CMA-ES
9a119c5
fixed loading of libraries in CMA-ES tutorial hist fit
e40d79d
fixed status in libcmaes wrapper
7843678
fixed initialization of parameters with CMA-ES
8f03372
added 2D bench for cmaes
30b5b73
added explanations to hist 1D fit for cmaes
1bb66ab
Merge branch 'master' into cmaes4root_master
5d2237b
fixed parameters init for CMA-ES after refactoring of the libcmaes
8bb7470
provides error to true in CMAESMinimizer.h + preparing for fixed para…
9416360
Merge branch 'master' into cmaes4root_master
75cee76
Merge branch 'master' into cmaes4root_master
13db0b4
set default sigma0 for CMA-ES as the max step size across parameters
54d92df
fixed multiple loading of external lib in fit tutorial for CMA-ES
0664ca9
introduced first MINOS version for CMA-ES + added control of ftoleran…
15c636f
added to CMA-ES packagte the same tests that are available for Minuit2
a9775a9
fixes and additions to current set of fit tutorials for CMA-ES + new …
1f5b561
Merge branch 'master' into cmaes4root_master
1c0d780
connected fUp to CMA-ES confidence interval (minos) computations
5d0b952
added control of max iterations and max functions eval to CMA-ES thro…
0fc7f5e
did bump the default max function budget for CMA-ES
f740ca0
Merge branch 'master' into cmaes4root_master
ee94115
Merge branch 'master' into cmaes4root_master
33eb441
Merge branch 'master' into cmaes4root_master
8d23ad1
added support for MinimizerOptions with cmaes, fixes #4
ad60a3c
using conservative min initial step-size value across all parameters …
fce8cac
adapted tutorials to new cmaes performances
c8bb5de
added support for gradient information with cmaes when available
fc4ffed
added cmaes full bench tutorial script
ff0c535
added more examples + fixes to cmaes bench script
862b8e4
added support for cmaes / minuit2 budget and cpu ratio to benchmark
9a3cced
fixed settings of fixed variables in cmaes minimizer
3acc44c
fixed clearing of parameter object in cmaes wrapper
b694568
new scheme in cmaes benchmark in order to compare algorithms on exact…
36e6d71
added new functions to cmaes benchmark, in new format
9e84653
added combined fit cmaes benchmark to new format
0d06688
completed migration of cmaes benchmarks
a762f37
added control of number of cmaes benchmark loops over functions
862342d
first release of the cmaes / minuit2 benchmark tool and visualization
ffb0730
Merge branch 'master' into cmaes4root_master
d78d362
added support for Edm to ROOT with CMA-ES, closes #6
d716eaa
filled up missing functions in CMA-ES minimizer wrapper
1609f4c
made CMA-ES minimizer's status compatible with those of Minuit2, clos…
675ac58
clean up of CMA-ES minimizer header
2a5bb1c
logscale + fixes to benchmark suite for CMA-ES and plot
d5ca1ae
improvements to CMA-ES benchmark suite
328a5cd
CMA-ES benchmark suite support for multiple lambda values
e20ce5e
logging of freeDim variable
6a7ec92
CMA-ES benchmark suite with multiple lambda values
489ab7b
reactivate all problems on CMA-ES benchmark
54dedd7
added linear scaling of input parameters to CMA-ES Minimizer, ref #5
4002d0c
added support for sigma as option to CMA-ES Minimizer
6af37c4
added optional linear scaling to CMA-ES Minimizer, ref #5
b02d596
added support for optional linear scaling to CMA-ES benchmark suite, …
56f92a8
updated CMA-ES lorentz tutorial with control of sigma and lambda
b682b35
Merge branch 'master' into cmaes4root_master
55b1350
Merge branch 'master' into cmaes4root_master
487b580
fixed sigma0 as conservative value when linear scaling is not activat…
6b3050c
fixed configure so that libcmaes location is configurable from comman…
473fcce
added computation of error bounds when geno/pheno tranform is active …
73b4158
Merge branch 'master' into cmaes4root_master
dd4dd96
refactoring for new Minimizer getters for fTol, fUp and fMaxIter
8f5cd44
Merge branch 'master' into cmaes4root_master
2eaab09
Merge branch 'master' into cmaes4root_master
36cc741
added support of numerical gradient injection to cma-es wrapper
a1dc520
change for setting edm with cma-es
628edcd
Merge branch 'master' into cmaes4root_master
c6700b9
Merge branch 'master' into cmaes4root_master
0cfe208
Merge branch 'master' into cmaes4root_master
e940690
update to the minuit/cmaes benchmark
da7bbd6
major fix to CMA-ES / Minuit2 benchmark
6892e99
Merge branch 'master' into cmaes4root_master
1d200ef
updated cmaes due to new setters/getters in libcmaes
6c06502
merge with stash
237b738
fixed previous commit
70883e1
fixed access to private cmaes pli members
5434a0c
added support for multihreaded objective function calls to CMA-ES fro…
33a6f08
Merge branch 'master' into cmaes4root_master
2ccbd83
added support for control of the quiet option of libcmaes through Min…
f20103e
cmaes: added support for seed as an option + added example of a custo…
54e1585
cmaes: fixed activation of gradient function when available from with…
8371dc2
Merge branch 'master' into cmaes4root_master
d6aa10e
Merge branch 'master' into cmaes4root_master
d004e71
Merge branch 'master' into cmaes4root_master
8dd3211
fix wrt to cmaes API
3f6f5ed
cmaes working with cmake
a9c69e2
fixes for cmake and configure building systems with cmaes
c2cc264
Merge branch 'root_master' into cmaes4root_master
8f51b6a
fix for new cmaes pli accesors
db4b44d
Merge branch 'master' into cmaes4root_master
276f559
Support for CMA-ES minimizer based on libcmaes
7e2dd23
allow cmake build with CMA-ES support without pkg-config nor full ins…
ba771c8
libcmaes and CMA-ES are OFF by default
272d67b
fixed libcmaes flag in compilation
c918352
Merge branch 'master' into cmaes4root_master
1806b87
cmake download libcmaes and eigen3, install them locally from scratch…
4f2818f
cmake download libcmaes and eigen3, install them locally from scratch…
d9d3945
name of export project was confusing cmake
beniz 4843055
only build libcmaes lib with no exe when build from ROOT cmake
beniz fd43a82
added cmaes support README.md file
bb487bb
Merge branch 'root_master'
4938c5d
Merge branch 'master' into cmaes4root_master
ad85416
Merge branch 'master' into cmaes4root_master
b1e1ccf
lower the default number of CMA-ES profile likelihood (aka Minos) ite…
0208657
activate full CMA-ES Root benchmark
5802811
CMA-ES glue code cleanup
1d0d235
added support for novel CMA-ES options: uncertainty handling and elitism
fefa75f
cleanup of the CMA-ES tutorial fit examples
f67a502
connected libcmaes contour function
51387d9
Merge branch 'cmaes4root_master' of github.com:beniz/root into cmaes4…
5f1feae
use libcmaes simplified algo setter
7531a86
cleared compilation warnings of CMA-ES Minimizer
f486bf8
disabling libcmaes surrogates as unused in ROOT and for faster build …
ef9b055
added Scan function to CMAESMinimizer
4e56d84
using libcmaes errors() call for standard deviation
021b077
Merge branch 'root_master' into cmaes4root_master
9c19e74
added proper funding reference of the CMA-ES integration work
a038166
Merge branch 'cmaes4root_master' of github.com:beniz/root into cmaes4…
dcb9f30
Merge branch 'master' into cmaes4root_master
eaecd0c
Merge branch 'master' into cmaes4root_master
cfdacb6
Merge pull request #11 from beniz/cmaes4root_master
beniz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
# - Try to find libcmaes, https://github.com/beniz/libcmaes | ||
# Once done this will define | ||
# | ||
# LIBCMAES_FOUND - system has libcmaes | ||
# LIBCMES_INCLUDE_DIR - the libcmaes include directory | ||
# LIBCMAES_LIBRARIES - Link these to use libcmaes | ||
# LIBCMAES_DEFINITIONS - Compiler switches required for using libcmaes | ||
# Redistribution and use is allowed according to the terms of the BSD license. | ||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file. | ||
# | ||
|
||
|
||
# Copyright (c) 2014, Emmanuel Benazera, <[email protected]> | ||
# | ||
# Redistribution and use is allowed according to the terms of the BSD license. | ||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file. | ||
|
||
if ( LIBCMAES_INCLUDE_DIR AND LIBCMAES_LIBRARIES ) | ||
# in cache already | ||
SET(Libcmaes_FIND_QUIETLY TRUE) | ||
endif ( LIBCMAES_INCLUDE_DIR AND LIBCMAES_LIBRARIES ) | ||
|
||
# use pkg-config to get the directories and then use these values | ||
# in the FIND_PATH() and FIND_LIBRARY() calls | ||
if( NOT WIN32 ) | ||
find_package(PkgConfig) | ||
pkg_check_modules(PC_LIBCMAES QUIET libcmaes) | ||
|
||
if( PKG_CONFIG_FOUND ) | ||
set(LIBCMAES_INCLUDE_DIR ${PC_LIBCMAES_INCLUDE_DIRS}) | ||
set(LIBCMAES_LIBRARIES ${PC_LIBCMAES_LIBRARY_DIRS}) | ||
set(LIBCMAES_DEFINITIONS ${PC_LIBCMAES_CFLAGS_OTHER}) | ||
endif( PKG_CONFIG_FOUND ) | ||
|
||
endif( NOT WIN32 ) | ||
|
||
find_path(LIBCMAES_INCLUDE_DIR NAMES cmaes.h | ||
PATHS | ||
${PC_LIBCMAES_INCLUDEDIR} | ||
${PC_LIBCMAES_INCLUDE_DIRS} | ||
) | ||
|
||
find_library(LIBCMAES_LIBRARIES NAMES libcmaes | ||
PATHS | ||
${PC_LIBCMAES_LIBDIR} | ||
${PC_LIBCMAES_LIBRARY_DIRS} | ||
) | ||
|
||
include(FindPackageHandleStandardArgs) | ||
find_package_handle_standard_args(Libcmaes DEFAULT_MSG LIBCMAES_INCLUDE_DIR LIBCMAES_LIBRARIES ) | ||
|
||
# show the LIBCMAES_INCLUDE_DIR and LIBCMAES_LIBRARIES variables only in the advanced view | ||
mark_as_advanced(LIBCMAES_INCLUDE_DIR LIBCMAES_LIBRARIES ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# - Try to find libcmaes, https://github.com/beniz/libcmaes | ||
# Once done this will define | ||
# | ||
# LIBCMAES_FOUND - system has libcmaes | ||
# LIBCMES_INCLUDE_DIR - the libcmaes include directory | ||
# LIBCMAES_LIBRARIES - Link these to use libcmaes | ||
# LIBCMAES_DEFINITIONS - Compiler switches required for using libcmaes | ||
# Redistribution and use is allowed according to the terms of the BSD license. | ||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file. | ||
# | ||
|
||
|
||
# Copyright (c) 2014, Emmanuel Benazera, <[email protected]> | ||
# | ||
# Redistribution and use is allowed according to the terms of the BSD license. | ||
# For details see the accompanying COPYING-CMAKE-SCRIPTS file. | ||
|
||
if ( LIBCMAES_INCLUDE_DIR AND LIBCMAES_LIBRARIES ) | ||
# in cache already | ||
SET(Libcmaes_FIND_QUIETLY TRUE) | ||
endif ( LIBCMAES_INCLUDE_DIR AND LIBCMAES_LIBRARIES ) | ||
|
||
# use pkg-config to get the directories and then use these values | ||
# in the FIND_PATH() and FIND_LIBRARY() calls | ||
if( NOT WIN32 ) | ||
find_package(PkgConfig) | ||
|
||
pkg_check_modules(PC_LIBCMAES REQUIRED libcmaes) | ||
|
||
set(LIBCMAES_INCLUDE_DIRS ${PC_LIBCMAES_INCLUDE_DIRS}) | ||
set(LIBCMAES_LIBRARIES ${PC_LIBCMAES_LIBRARIES_DIRS}) | ||
set(LIBCMAES_DEFINITIONS ${PC_LIBCMAES_CFLAGS_OTHER}) | ||
endif( NOT WIN32 ) | ||
|
||
find_path(LIBCMAES_INCLUDE_DIR NAMES cmaes.h | ||
PATHS | ||
${PC_LIBCMAES_INCLUDEDIR} | ||
${PC_LIBCMAES_INCLUDE_DIRS} | ||
) | ||
|
||
find_library(LIBCMAES_LIBRARIES NAMES libcmaes | ||
PATHS | ||
${PC_LIBCMAES_LIBDIR} | ||
${PC_LIBCMAES_LIBRARY_DIRS} | ||
) | ||
|
||
include(FindPackageHandleStandardArgs) | ||
find_package_handle_standard_args(Libcmaes DEFAULT_MSG LIBCMAES_INCLUDE_DIR LIBCMAES_LIBRARIES ) | ||
|
||
# show the LIBCMAES_INCLUDE_DIR and LIBCMAES_LIBRARIES variables only in the advanced view | ||
mark_as_advanced(LIBCMAES_INCLUDE_DIR LIBCMAES_LIBRARIES ) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -137,6 +137,7 @@ ROOT_BUILD_OPTION(krb5 ON "Kerberos5 support, requires Kerberos libs") | |
ROOT_BUILD_OPTION(ldap ON "LDAP support, requires (Open)LDAP libs") | ||
ROOT_BUILD_OPTION(mathmore ON "Build the new libMathMore extended math library, requires GSL (vers. >= 1.8)") | ||
ROOT_BUILD_OPTION(memstat ${memstat_defvalue} "A memory statistics utility, helps to detect memory leaks") | ||
ROOT_BUILD_OPTION(libcmaes OFF "Build the libcmaes minimizer library") | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We'd like alphabetical order here. |
||
ROOT_BUILD_OPTION(minuit2 ${minuit2_defvalue} "Build the new libMinuit2 minimizer library") | ||
ROOT_BUILD_OPTION(monalisa ON "Monalisa monitoring support, requires libapmoncpp") | ||
ROOT_BUILD_OPTION(mysql ON "MySQL support, requires libmysqlclient") | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -388,6 +388,7 @@ set(buildmathmore ${value${mathmore}}) | |
set(buildcling ${value${cling}}) | ||
set(buildroofit ${value${roofit}}) | ||
set(buildminuit2 ${value${minuit2}}) | ||
set(buildcmaes ${value${libcmaes}}) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Likewise. |
||
set(buildunuran ${value${unuran}}) | ||
set(buildgdml ${value${gdml}}) | ||
set(buildhttp ${value${http}}) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
void P010_Minuit2Minimizer() | ||
{ | ||
gPluginMgr->AddHandler("ROOT::Math::Minimizer", "Minuit2", "ROOT::Minuit2::Minuit2Minimizer", | ||
"Minuit2", "Minuit2Minimizer(const char *)"); | ||
gPluginMgr->AddHandler("ROOT::Math::Minimizer", "Minuit2", "ROOT::Minuit2::Minuit2Minimizer", | ||
"Minuit2", "Minuit2Minimizer(const char *)"); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
void P090_TCMAESMinimizer() | ||
{ | ||
gPluginMgr->AddHandler("ROOT::Math::Minimizer", "cmaes", "ROOT::cmaes::TCMAESMinimizer", | ||
"cmaes_root", "TCMAESMinimizer(const char *)"); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems this file is not needed. It is some editor backup.