Commit 28233702 authored by Jean-Baptiste Mouret's avatar Jean-Baptiste Mouret
Browse files

Merge branch 'master' into improve_doc

parents fc0205a0 59bf5cf0
limbo [![Build Status](https://travis-ci.org/resibots/limbo.svg?branch=master)](https://travis-ci.org/resibots/limbo)
=====
A lightweight framework for Bayesian and model-based optimisation of black-box functions (C++11).
A lightweight framework for Bayesian and model-based optimization of black-box functions (C++11).
Documentation
-------------
......@@ -17,7 +17,7 @@ Authors
Main features
-------------
- Bayesian optimisation based on Gaussian processes
- Bayesian optimization based on Gaussian processes
- Generic framework (template-based), which allows easy customization for testing original ideas
- Can exploit multicore computers
- Experimental support for some multi-objective algorithms
......
......@@ -114,7 +114,7 @@ Template
size_t dim_in() const { return _model.dim_in(); }
size_t dim_out() const { return _model.dim_out(); }
template <typename AggregatorFunction>
double operator()(const Eigen::VectorXd& v, const AggregatorFunction& afun) const
limbo::opt::eval_t operator()(const Eigen::VectorXd& v, const AggregatorFunction& afun, bool gradient) const
{
// code
}
......
......@@ -13,6 +13,7 @@ Let's say we have a planar 6-DOF arm manipulator and we want its end-effector to
- The forward kinematic model as prior knowledge (mean of Gaussian Process).
- The **Squared exponential covariance function with automatic relevance detection** as the kernel function of the GP.
- Likelihood optimization for the hyperparameters of the GP kernel.
- Use Expected Improvement as the acquisition function.
- Use different optimizer for the acquisition optimization.
- Initialize the GP with random samples.
- Custom stopping criterion.
......@@ -161,7 +162,7 @@ Acquisition, Initialization and other aliases
**Acquisition aliases:** ::
using acqui_t = acqui::UCB<Params, gp_t>;
using acqui_t = acqui::EI<Params, gp_t>;
using acqui_opt_t = opt::Cmaes<Params>;
**Initialization alias:** ::
......@@ -208,14 +209,36 @@ Finally, from the root of limbo, run a build command, with the additional switch
Then, an executable named ``arm_example`` should be produced under the folder ``build/exp/arm_example``. When running the experiment, you should expect something like the following: ::
0 new point: 0.105457 0.984803 0.999724 0.397681 0.00178646 0.472922 value: -2.05529 best:-0.50564
1 new point: 0.0418376 0.211166 0.610741 0.97042 0.49975 0.932997 value: -0.420461 best:-0.420461
2 new point: 0.0499932 0.809128 0.647616 0.607996 0.98363 0.263471 value: -1.47844 best:-0.420461
3 new point: 0.926947 0.304285 0.962505 0.923134 0.340676 0.352674 value: -1.77912 best:-0.420461
4 new point: 0.139309 0.00337038 0.0725873 0.98806 0.52506 0.000522096 value: -0.000876567 best:-0.000876567
New target!
5 new point: 0.0632575 0.981795 0.347888 0.342065 0.51396 0.785025 value: -1.26196 best:-0.50006
6 new point: 0.455737 0.978531 0.55947 0.0435089 0.0143673 0.999978 value: -0.0113502 best:-0.0113502
0 new point: 0.99374 0.999401 0.999716 0.532902 0.999337 0.648682 value: -0.73579 best:-0.73579
1 new point: 0.00924137 0.52356 0.992816 0.591639 0.900581 0.00022477 value: -1.59172 best:-0.73579
2 new point: 0.999114 0.303668 0.0132791 0.792124 0.391522 0.999149 value: -3.00304 best:-0.73579
3 new point: 0.990481 0.981046 0.379883 0.999432 0.282599 0.291695 value: -0.824245 best:-0.73579
4 new point: 0.00771956 0.949676 0.956241 0.0293142 0.244216 0.0891216 value: -2.68335 best:-0.73579
5 new point: 0.972554 0.00021536 0.998559 0.808 0.346161 0.00134114 value: -3.7039 best:-0.73579
6 new point: 0.00275069 0.495195 0.00167023 0.994612 0.631628 0.707545 value: -1.97244 best:-0.73579
7 new point: 0.124159 0.262741 0.303586 0.999707 0.335987 0.0192833 value: -1.28697 best:-0.73579
8 new point: 0.026011 0.307255 0.101375 0.0195426 0.562741 0.0400001 value: -2.31361 best:-0.73579
9 new point: 0.153818 0.00117556 9.92801e-05 0.376417 0.18015 0.00215051 value: -1.00521 best:-0.73579
10 new point: 0.107636 0.710152 0.41314 0.0703153 0.646439 0.606494 value: -0.685661 best:-0.685661
11 new point: 0.282632 0.794559 0.940368 0.530688 0.113832 0.439228 value: -1.44821 best:-0.685661
12 new point: 0.0110291 0.266178 0.576008 0.425873 0.120849 0.444479 value: -1.38147 best:-0.685661
13 new point: 0.109448 0.0548453 0.458707 0.487198 0.739701 0.588758 value: -0.147514 best:-0.147514
14 new point: 0.0877909 0.0481023 0.837642 0.438223 0.387531 0.649942 value: -0.150097 best:-0.147514
15 new point: 0.111047 0.633206 0.509962 0.443725 0.359951 0.243446 value: -0.780535 best:-0.147514
16 new point: 0.0827364 0.186448 0.333666 0.839036 0.536232 0.00476438 value: -0.575265 best:-0.147514
17 new point: 0.123347 0.00377535 0.554967 0.103699 0.371233 0.233517 value: -0.00982979 best:-0.00982979
New target!
18 new point: 0.998604 0.984174 0.999353 0.000200245 0.356422 0.999792 value: -1.38941 best:-0.370924
19 new point: 0.0189988 0.999921 0.942007 0.665937 0.999451 0.986427 value: -3.16331 best:-0.370924
20 new point: 0.0688255 0.230665 0.0273747 0.270297 0.980095 0.990872 value: -2.89225 best:-0.370924
21 new point: 0.997416 0.857708 0.998912 0.984197 0.391337 0.114332 value: -0.883913 best:-0.370924
22 new point: 0.999982 0.000168928 0.999398 0.336817 0.258304 0.929625 value: -1.19557 best:-0.370924
23 new point: 0.0700344 0.281842 0.919103 0.0183289 0.074567 0.970264 value: -4.17297 best:-0.370924
24 new point: 7.78708e-05 2.18076e-06 0.983852 0.99996 0.825274 0.612332 value: -2.57724 best:-0.370924
25 new point: 0.000101799 0.997473 0.797134 0.994634 0.377403 3.70205e-05 value: -2.33882 best:-0.370924
26 new point: 0.0467502 0.327915 0.235275 0.966877 0.0363554 0.909477 value: -3.49153 best:-0.370924
27 new point: 0.999615 0.000340133 0.637717 0.994796 0.00143888 0.464556 value: -2.75311 best:-0.370924
28 new point: 0.998958 0.00509838 0.474495 0.667517 0.532318 0.520064 value: -0.038073 best:-0.038073
Using state-based bayesian optimization, we can transfer what we learned during one task to achieve faster new tasks.
......@@ -2,32 +2,32 @@
//| This project has received funding from the European Research Council (ERC) under
//| the European Union's Horizon 2020 research and innovation programme (grant
//| agreement No 637972) - see http://www.resibots.eu
//|
//|
//| Contributor(s):
//| - Jean-Baptiste Mouret (jean-baptiste.mouret@inria.fr)
//| - Antoine Cully (antoinecully@gmail.com)
//| - Kontantinos Chatzilygeroudis (konstantinos.chatzilygeroudis@inria.fr)
//| - Federico Allocati (fede.allocati@gmail.com)
//| - Vaios Papaspyros (b.papaspyros@gmail.com)
//|
//|
//| This software is a computer library whose purpose is to optimize continuous,
//| black-box functions. It mainly implements Gaussian processes and Bayesian
//| optimization.
//| Main repository: http://github.com/resibots/limbo
//| Documentation: http://www.resibots.eu/limbo
//|
//|
//| This software is governed by the CeCILL-C license under French law and
//| abiding by the rules of distribution of free software. You can use,
//| modify and/ or redistribute the software under the terms of the CeCILL-C
//| license as circulated by CEA, CNRS and INRIA at the following URL
//| "http://www.cecill.info".
//|
//|
//| As a counterpart to the access to the source code and rights to copy,
//| modify and redistribute granted by the license, users are provided only
//| with a limited warranty and the software's author, the holder of the
//| economic rights, and the successive licensors have only limited
//| liability.
//|
//|
//| In this respect, the user's attention is drawn to the risks associated
//| with loading, using, modifying and/or developing or reproducing the
//| software by the user in light of its specific status of free software,
......@@ -38,10 +38,10 @@
//| requirements in conditions enabling the security of their systems and/or
//| data to be ensured and, more generally, to use and operate it in the
//| same conditions as regards security.
//|
//|
//| The fact that you are presently reading this means that you have had
//| knowledge of the CeCILL-C license and that you accept its terms.
//|
//|
#define SKIP_TRICKS
#include "testfunctions.hpp"
#include <chrono>
......
......@@ -2,32 +2,32 @@
//| This project has received funding from the European Research Council (ERC) under
//| the European Union's Horizon 2020 research and innovation programme (grant
//| agreement No 637972) - see http://www.resibots.eu
//|
//|
//| Contributor(s):
//| - Jean-Baptiste Mouret (jean-baptiste.mouret@inria.fr)
//| - Antoine Cully (antoinecully@gmail.com)
//| - Kontantinos Chatzilygeroudis (konstantinos.chatzilygeroudis@inria.fr)
//| - Federico Allocati (fede.allocati@gmail.com)
//| - Vaios Papaspyros (b.papaspyros@gmail.com)
//|
//|
//| This software is a computer library whose purpose is to optimize continuous,
//| black-box functions. It mainly implements Gaussian processes and Bayesian
//| optimization.
//| Main repository: http://github.com/resibots/limbo
//| Documentation: http://www.resibots.eu/limbo
//|
//|
//| This software is governed by the CeCILL-C license under French law and
//| abiding by the rules of distribution of free software. You can use,
//| modify and/ or redistribute the software under the terms of the CeCILL-C
//| license as circulated by CEA, CNRS and INRIA at the following URL
//| "http://www.cecill.info".
//|
//|
//| As a counterpart to the access to the source code and rights to copy,
//| modify and redistribute granted by the license, users are provided only
//| with a limited warranty and the software's author, the holder of the
//| economic rights, and the successive licensors have only limited
//| liability.
//|
//|
//| In this respect, the user's attention is drawn to the risks associated
//| with loading, using, modifying and/or developing or reproducing the
//| software by the user in light of its specific status of free software,
......@@ -38,10 +38,10 @@
//| requirements in conditions enabling the security of their systems and/or
//| data to be ensured and, more generally, to use and operate it in the
//| same conditions as regards security.
//|
//|
//| The fact that you are presently reading this means that you have had
//| knowledge of the CeCILL-C license and that you accept its terms.
//|
//|
#define SKIP_TRICKS
#include "testfunctions.hpp"
#include <chrono>
......
......@@ -2,32 +2,32 @@
//| This project has received funding from the European Research Council (ERC) under
//| the European Union's Horizon 2020 research and innovation programme (grant
//| agreement No 637972) - see http://www.resibots.eu
//|
//|
//| Contributor(s):
//| - Jean-Baptiste Mouret (jean-baptiste.mouret@inria.fr)
//| - Antoine Cully (antoinecully@gmail.com)
//| - Kontantinos Chatzilygeroudis (konstantinos.chatzilygeroudis@inria.fr)
//| - Federico Allocati (fede.allocati@gmail.com)
//| - Vaios Papaspyros (b.papaspyros@gmail.com)
//|
//|
//| This software is a computer library whose purpose is to optimize continuous,
//| black-box functions. It mainly implements Gaussian processes and Bayesian
//| optimization.
//| Main repository: http://github.com/resibots/limbo
//| Documentation: http://www.resibots.eu/limbo
//|
//|
//| This software is governed by the CeCILL-C license under French law and
//| abiding by the rules of distribution of free software. You can use,
//| modify and/ or redistribute the software under the terms of the CeCILL-C
//| license as circulated by CEA, CNRS and INRIA at the following URL
//| "http://www.cecill.info".
//|
//|
//| As a counterpart to the access to the source code and rights to copy,
//| modify and redistribute granted by the license, users are provided only
//| with a limited warranty and the software's author, the holder of the
//| economic rights, and the successive licensors have only limited
//| liability.
//|
//|
//| In this respect, the user's attention is drawn to the risks associated
//| with loading, using, modifying and/or developing or reproducing the
//| software by the user in light of its specific status of free software,
......@@ -38,10 +38,10 @@
//| requirements in conditions enabling the security of their systems and/or
//| data to be ensured and, more generally, to use and operate it in the
//| same conditions as regards security.
//|
//|
//| The fact that you are presently reading this means that you have had
//| knowledge of the CeCILL-C license and that you accept its terms.
//|
//|
#define _USE_MATH_DEFINES
#include <cmath>
#include <algorithm>
......
......@@ -2,32 +2,32 @@
//| This project has received funding from the European Research Council (ERC) under
//| the European Union's Horizon 2020 research and innovation programme (grant
//| agreement No 637972) - see http://www.resibots.eu
//|
//|
//| Contributor(s):
//| - Jean-Baptiste Mouret (jean-baptiste.mouret@inria.fr)
//| - Antoine Cully (antoinecully@gmail.com)
//| - Kontantinos Chatzilygeroudis (konstantinos.chatzilygeroudis@inria.fr)
//| - Federico Allocati (fede.allocati@gmail.com)
//| - Vaios Papaspyros (b.papaspyros@gmail.com)
//|
//|
//| This software is a computer library whose purpose is to optimize continuous,
//| black-box functions. It mainly implements Gaussian processes and Bayesian
//| optimization.
//| Main repository: http://github.com/resibots/limbo
//| Documentation: http://www.resibots.eu/limbo
//|
//|
//| This software is governed by the CeCILL-C license under French law and
//| abiding by the rules of distribution of free software. You can use,
//| modify and/ or redistribute the software under the terms of the CeCILL-C
//| license as circulated by CEA, CNRS and INRIA at the following URL
//| "http://www.cecill.info".
//|
//|
//| As a counterpart to the access to the source code and rights to copy,
//| modify and redistribute granted by the license, users are provided only
//| with a limited warranty and the software's author, the holder of the
//| economic rights, and the successive licensors have only limited
//| liability.
//|
//|
//| In this respect, the user's attention is drawn to the risks associated
//| with loading, using, modifying and/or developing or reproducing the
//| software by the user in light of its specific status of free software,
......@@ -38,10 +38,10 @@
//| requirements in conditions enabling the security of their systems and/or
//| data to be ensured and, more generally, to use and operate it in the
//| same conditions as regards security.
//|
//|
//| The fact that you are presently reading this means that you have had
//| knowledge of the CeCILL-C license and that you accept its terms.
//|
//|
#include <iostream>
#include <chrono>
......
......@@ -2,32 +2,32 @@
//| This project has received funding from the European Research Council (ERC) under
//| the European Union's Horizon 2020 research and innovation programme (grant
//| agreement No 637972) - see http://www.resibots.eu
//|
//|
//| Contributor(s):
//| - Jean-Baptiste Mouret (jean-baptiste.mouret@inria.fr)
//| - Antoine Cully (antoinecully@gmail.com)
//| - Kontantinos Chatzilygeroudis (konstantinos.chatzilygeroudis@inria.fr)
//| - Federico Allocati (fede.allocati@gmail.com)
//| - Vaios Papaspyros (b.papaspyros@gmail.com)
//|
//|
//| This software is a computer library whose purpose is to optimize continuous,
//| black-box functions. It mainly implements Gaussian processes and Bayesian
//| optimization.
//| Main repository: http://github.com/resibots/limbo
//| Documentation: http://www.resibots.eu/limbo
//|
//|
//| This software is governed by the CeCILL-C license under French law and
//| abiding by the rules of distribution of free software. You can use,
//| modify and/ or redistribute the software under the terms of the CeCILL-C
//| license as circulated by CEA, CNRS and INRIA at the following URL
//| "http://www.cecill.info".
//|
//|
//| As a counterpart to the access to the source code and rights to copy,
//| modify and redistribute granted by the license, users are provided only
//| with a limited warranty and the software's author, the holder of the
//| economic rights, and the successive licensors have only limited
//| liability.
//|
//|
//| In this respect, the user's attention is drawn to the risks associated
//| with loading, using, modifying and/or developing or reproducing the
//| software by the user in light of its specific status of free software,
......@@ -38,10 +38,10 @@
//| requirements in conditions enabling the security of their systems and/or
//| data to be ensured and, more generally, to use and operate it in the
//| same conditions as regards security.
//|
//|
//| The fact that you are presently reading this means that you have had
//| knowledge of the CeCILL-C license and that you accept its terms.
//|
//|
#include <iostream>
#include <chrono>
......
......@@ -2,32 +2,32 @@
//| This project has received funding from the European Research Council (ERC) under
//| the European Union's Horizon 2020 research and innovation programme (grant
//| agreement No 637972) - see http://www.resibots.eu
//|
//|
//| Contributor(s):
//| - Jean-Baptiste Mouret (jean-baptiste.mouret@inria.fr)
//| - Antoine Cully (antoinecully@gmail.com)
//| - Kontantinos Chatzilygeroudis (konstantinos.chatzilygeroudis@inria.fr)
//| - Federico Allocati (fede.allocati@gmail.com)
//| - Vaios Papaspyros (b.papaspyros@gmail.com)
//|
//|
//| This software is a computer library whose purpose is to optimize continuous,
//| black-box functions. It mainly implements Gaussian processes and Bayesian
//| optimization.
//| Main repository: http://github.com/resibots/limbo
//| Documentation: http://www.resibots.eu/limbo
//|
//|
//| This software is governed by the CeCILL-C license under French law and
//| abiding by the rules of distribution of free software. You can use,
//| modify and/ or redistribute the software under the terms of the CeCILL-C
//| license as circulated by CEA, CNRS and INRIA at the following URL
//| "http://www.cecill.info".
//|
//|
//| As a counterpart to the access to the source code and rights to copy,
//| modify and redistribute granted by the license, users are provided only
//| with a limited warranty and the software's author, the holder of the
//| economic rights, and the successive licensors have only limited
//| liability.
//|
//|
//| In this respect, the user's attention is drawn to the risks associated
//| with loading, using, modifying and/or developing or reproducing the
//| software by the user in light of its specific status of free software,
......@@ -38,10 +38,10 @@
//| requirements in conditions enabling the security of their systems and/or
//| data to be ensured and, more generally, to use and operate it in the
//| same conditions as regards security.
//|
//|
//| The fact that you are presently reading this means that you have had
//| knowledge of the CeCILL-C license and that you accept its terms.
//|
//|
#define _USE_MATH_DEFINES
#include <Eigen/Core>
......
#include <limbo/limbo.hpp>
#include <limbo/experimental/bayes_opt/cboptimizer.hpp>
#include <limbo/experimental/acqui/cei.hpp>
using namespace limbo;
struct Params {
struct cbayes_opt_boptimizer : public defaults::cbayes_opt_boptimizer {
BO_PARAM(double, noise, 0.01);
};
struct init_randomsampling {
BO_PARAM(int, samples, 10);
};
struct kernel_exp : public defaults::kernel_exp {
};
struct bayes_opt_bobase {
BO_PARAM(bool, stats_enabled, true);
};
struct stop_maxiterations {
BO_PARAM(int, iterations, 100);
};
struct acqui_cei : public defaults::acqui_cei {
};
struct mean_constant {
BO_PARAM(double, constant, 1.0);
};
#ifdef USE_NLOPT
struct opt_nloptnograd : public defaults::opt_nloptnograd {
};
#elif defined(USE_LIBCMAES)
struct opt_cmaes : public defaults::opt_cmaes {
};
#else
struct opt_gridsearch : public defaults::opt_gridsearch {
};
#endif
};
struct cosine {
static constexpr size_t dim_in = 1;
static constexpr size_t dim_out = 1;
static constexpr size_t nb_constraints = 1;
Eigen::VectorXd operator()(const Eigen::VectorXd& x) const
{
Eigen::VectorXd res(2);
// we _maximize in [0:1]
Eigen::VectorXd xx = -4.0 + 8.0 * x.array();
res(0) = std::cos(xx.array()(0));
// testing the constraints
std::string feas = "infeasible";
res(1) = 0;
if (res(0) < 0.5) {
res(1) = 1;
feas = "feasible";
}
std::cout << xx(0) << ": " << res(0) << " --> " << feas << std::endl;
return res;
}
};
int main()
{
tools::par::init();
typedef cosine func_t;
using Stop_t = boost::fusion::vector<stop::MaxIterations<Params>>;
using Stat_t = boost::fusion::vector<stat::Samples<Params>,
stat::BlSamples<Params>,
stat::BestObservations<Params>,
stat::AggregatedObservations<Params>>;
using Mean_t = mean::Constant<Params>;
using Kernel_t = kernel::Exp<Params>;
using GP_t = model::GP<Params, Kernel_t, Mean_t>;
using Constrained_GP_t = model::GP<Params, Kernel_t, Mean_t>;
using Acqui_t = experimental::acqui::CEI<Params, GP_t, Constrained_GP_t>;
using Init_t = init::RandomSampling<Params>;
experimental::bayes_opt::CBOptimizer<Params,
modelfun<GP_t>,
acquifun<Acqui_t>,
statsfun<Stat_t>,
initfun<Init_t>,
stopcrit<Stop_t>,
experimental::constraint_modelfun<Constrained_GP_t>>
opt;
opt.optimize(func_t());
size_t n = 0;
double best = -100;
for (size_t i = 0; i < opt.samples().size(); i++) {
Eigen::VectorXd res = func_t()(opt.samples()[i]);
if (res(0) > best && res(0) < 0.5)
best = res(0);
if (res(0) >= 0.5)
n++;
}
std::cout << "Infeasible points tested: " << n << std::endl;
std::cout << "Best feasible observation: " << best << std::endl;
return 0;
}
......@@ -2,32 +2,32 @@
//| This project has received funding from the European Research Council (ERC) under
//| the European Union's Horizon 2020 research and innovation programme (grant
//| agreement No 637972) - see http://www.resibots.eu
//|
//|
//| Contributor(s):
//| - Jean-Baptiste Mouret (jean-baptiste.mouret@inria.fr)
//| - Antoine Cully (antoinecully@gmail.com)
//| - Kontantinos Chatzilygeroudis (konstantinos.chatzilygeroudis@inria.fr)
//| - Federico Allocati (fede.allocati@gmail.com)
//| - Vaios Papaspyros (b.papaspyros@gmail.com)
//|
//|
//| This software is a computer library whose purpose is to optimize continuous,
//| black-box functions. It mainly implements Gaussian processes and Bayesian
//| optimization.
//| Main repository: http://github.com/resibots/limbo
//| Documentation: http://www.resibots.eu/limbo
//|
//|
//| This software is governed by the CeCILL-C license under French law and
//| abiding by the rules of distribution of free software. You can use,
//| modify and/ or redistribute the software under the terms of the CeCILL-C
//| license as circulated by CEA, CNRS and INRIA at the following URL
//| "http://www.cecill.info".
//|
//|
//| As a counterpart to the access to the source code and rights to copy,
//| modify and redistribute granted by the license, users are provided only
//| with a limited warranty and the software's author, the holder of the
//| economic rights, and the successive licensors have only limited
//| liability.
//|
//|
//| In this respect, the user's attention is drawn to the risks associated
//| with loading, using, modifying and/or developing or reproducing the
//| software by the user in light of its specific status of free software,
......@@ -38,10 +38,10 @@
//| requirements in conditions enabling the security of their systems and/or
//| data to be ensured and, more generally, to use and operate it in the
//| same conditions as regards security.
//|
//|
//| The fact that you are presently reading this means that you have had
//| knowledge of the CeCILL-C license and that you accept its terms.
//|
//|
#include <cmath>
#include <algorithm>
#include <string>
......
......@@ -2,32 +2,32 @@
//| This project has received funding from the European Research Council (ERC) under
//| the European Union's Horizon 2020 research and innovation programme (grant
//| agreement No 637972) - see http://www.resibots.eu
//|
//|
//| Contributor(s):
//| - Jean-Baptiste Mouret (jean-baptiste.mouret@inria.fr)
//| - Antoine Cully (antoinecully@gmail.com)
//| - Kontantinos Chatzilygeroudis (konstantinos.chatzilygeroudis@inria.fr)
//| - Federico Allocati (fede.allocati@gmail.com)
//| - Vaios Papaspyros (b.papaspyros@gmail.com)
//|
//|
//| This software is a computer library whose purpose is to optimize continuous,
//| black-box functions. It mainly implements Gaussian processes and Bayesian
//| optimization.
//| Main repository: http://github.com/resibots/limbo
//| Documentation: http://www.resibots.eu/limbo
//|
//|
//| This software is governed by the CeCILL-C license under French law and
//| abiding by the rules of distribution of free software. You can use,
//| modify and/ or redistribute the software under the terms of the CeCILL-C
//| license as circulated by CEA, CNRS and INRIA at the following URL
//| "http://www.cecill.info".
//|
//|
//| As a counterpart to the access to the source code and rights to copy,
//| modify and redistribute granted by the license, users are provided only
//| with a limited warranty and the software's author, the holder of the
//| economic rights, and the successive licensors have only limited
//| liability.
//|
//|
//| In this respect, the user's attention is drawn to the risks associated
//| with loading, using, modifying and/or developing or reproducing the
//| software by the user in light of its specific status of free software,
......@@ -38,15 +38,17 @@
//| requirements in conditions enabling the security of their systems and/or
//| data to be ensured and, more generally, to use and operate it in the
//| same conditions as regards security.
//|
//|
//| The fact that you are presently reading this means that you have had
//| knowledge of the CeCILL-C license and that you accept its terms.
//|
//|
#include <limbo/limbo.hpp>
#include <limbo/experimental/bayes_opt/parego.hpp>
#include <limbo/experimental/bayes_opt/nsbo.hpp>
#include <limbo/experimental/bayes_opt/ehvi.hpp>
#include <limbo/experimental/stat/pareto_front.hpp>
#include <limbo/experimental/stat/pareto_benchmark.hpp>
#include <limbo/experimental/stat/hyper_volume.hpp>
using namespace limbo;
......@@ -76,12 +78,12 @@ struct Params {
struct acqui_gpucb : public defaults::acqui_gpucb {
};
#ifdef USE_LIBCMAES
struct opt_cmaes : public defaults::opt_cmaes {
};
#elif defined(USE_NLOPT)
#ifdef USE_NLOPT