Limbo (LIbrary for Model-Based Optimization) is an open-source C++11 library for Gaussian Processes and data-efficient optimization (e.g., Bayesian optimization) that is designed to be both highly flexible and very fast. It can be used as a state-of-the-art optimization library or to experiment with novel algorithms with "plugin" components.
The development branch is the master branch. For the latest stable release, check the release-2.1 branch. Documentation is available at: http://www.resibots.eu/limbo
If you use Limbo in a scientific paper, please cite:
Cully, A., Chatzilygeroudis, K., Allocati, F., and Mouret J.-B., (2018). Limbo: A Flexible High-performance Library for Gaussian Processes modeling and Data-Efficient Optimization. The Journal of Open Source Software.
In BibTex:
@article{cully2018limbo,
title={{Limbo: A Flexible High-performance Library for Gaussian Processes modeling and Data-Efficient Optimization}},
author={Cully, A. and Chatzilygeroudis, K. and Allocati, F. and Mouret, J.-B.},
year={2018},
journal={{The Journal of Open Source Software}},
publisher={The Open Journal},
volume={3},
number={26},
pages={545},
doi={10.21105/joss.00545}
}
- Antoine Cully (Imperial College): http://www.antoinecully.com
- Jean-Baptiste Mouret (Inria): http://members.loria.fr/JBMouret
- Konstantinos Chatzilygeroudis (Inria): http://costashatz.github.io/
- Federico Allocati (Inria)
- Vaios Papaspyros (Inria)
- Roberto Rama (Inria)
Limbo is partly funded by the ResiBots ERC Project (http://www.resibots.eu).
- Implementation of the classic algorithms (Bayesian optimization, many kernels, likelihood maximization, etc.)
- Modern C++-11
- Generic framework (template-based / policy-based design), which allows for easy customization, to test novel ideas
- Experimental framework that allows user to easily test variants of experiments, compare treatments, submit jobs to clusters (OAR scheduler), etc.
- High performance (in particular, Limbo can exploit multi-core computers via Intel TBB and vectorize some operations via Eigen3)
- Purposely small to be easily maintained and quickly understood
- Chatzilygeroudis, K., & Mouret, J. B. (2018). Using Parameterized Black-Box Priors to Scale Up Model-Based Policy Search for Robotics. Proceedings of the International Conference on Robotics and Automation (ICRA).
- Pautrat, R., Chatzilygeroudis, K., & Mouret, J.-B. (2018). Bayesian Optimization with Automatic Prior Selection for Data-Efficient Direct Policy Search. Proceedings of the International Conference on Robotics and Automation (ICRA).
- Chatzilygeroudis, K., Vassiliades, V. and Mouret, J.-B. (2017). Reset-free Trial-and-Error Learning for Robot Damage Recovery. Robotics and Autonomous Systems.
- Karban P., Pánek D., Mach F. and Doležel, I. (2017). Calibration of numerical models based on advanced optimization and penalization techniques. Journal of Electrical Engineering, 68(5), 396-400.
- Chatzilygeroudis K., Rama R., Kaushik, R., Goepp, D., Vassiliades, V. and Mouret, J.-B. (2017). Black-Box Data-efficient Policy Search for Robotics. Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).
- Tarapore, D., Clune, J., Cully, A., and Mouret, J.-B. (2016). How Do Different Encodings Influence the Performance of the MAP-Elites Algorithm?. In Proc. of Genetic and Evolutionary Computation Conference.
- Cully, A., Clune, J., Tarapore, D., and Mouret, J.-B. (2015). Robots that can adapt like animals. Nature, 521(7553), 503-507.
- Chatzilygeroudis, K., Cully, A. and Mouret, J.-B. (2016). Towards semi-episodic learning for robot damage recovery. Workshop on AI for Long-Term Autonomy at the IEEE International Conference on Robotics and Automation 2016.
- Papaspyros, V., Chatzilygeroudis, K., Vassiliades, V., and Mouret, J.-B. (2016). Safety-Aware Robot Damage Recovery Using Constrained Bayesian Optimization and Simulated Priors. Workshop on Bayesian Optimization at the Annual Conference on Neural Information Processing Systems (NIPS) 2016.
- Resibots. ERC Starting Grant: http://www.resibots.eu/
- PAL. H2020 EU project: http://www.pal4u.eu/