Sferes2
A lightweight, generic C++11 framework for evolutionary computation
Install / Use
/learn @sferes2/Sferes2README
sferes2 
Sferes2 is a high-performance, multi-core, lightweight, generic C++98 framework for evolutionary computation. It is intently kept small to stay reliable and understandable.
Sferes2 heavily relies on template-based meta-programming in C++ to get both abstraction and execution speed.
If you use this software in an academic article, please cite:
Mouret, J.-B. and Doncieux, S. (2010). SFERESv2: Evolvin' in the Multi-Core World. Proc. of Congress on Evolutionary Computation (CEC) Pages 4079--4086.
The article is available here: http://www.isir.upmc.fr/files/2010ACTI1524.pdf
@INPROCEEDINGS{Mouret2010,
AUTHOR = {Mouret, J.-B. and Doncieux, S.},
TITLE = {{SFERES}v2: Evolvin' in the Multi-Core World},
YEAR = {2010},
BOOKTITLE = {Proc. of Congress on Evolutionary Computation (CEC)},
PAGES = {4079--4086}
}
Documentation (including instruction for compilation)
We are in the process of porting the documentation to http://sferes2.github.io/sferes2/ (the old documentation is on the wiki here: https://github.com/jbmouret/sferes2/wiki ). You will find tutorials, installation instructions etc.
Warning Sferes2 now requires a C++11 compiler (recent versions of g++ or clang++ work fine).
Main optional modules
- evolvable neural networks: https://github.com/sferes2/nn2
- khepera-like simulator: https://github.com/sferes2/fastsim
- Map-Elites (we will soon integrate a more flexible version in the master branch of sferes_v2): https://github.com/sferes2/map_elites
Design
The following choices were made in the initial design:
- use of modern c++ techniques (template-based programming) to employ object-oriented programming without the cost of virtual functions;
- use of Intel TBB to take full advantages of multicore and SMP systems;
- use of boost libraries when it's useful (shared_ptr, serialization, filesystem, test,...);
- use of MPI to distribute the computational cost on clusters;
- a full set of unit tests;
- no configuration file: a fully optimized executable is built for each particular experiment.
Sferes2 is extended via modules and experiments.
Sferes2 should work on most Unix systems (in particular, GNU/Linux and OSX). It successfully compiles with gcc, clang and icc (if it is not the case, please file a bug report in the issue tracker).
Author
- Jean-Baptiste Mouret jean-baptiste.mouret@inria.fr: main author and maintainer
Other contributors
- Stephane Doncieux doncieux@isir.upmc.fr
- Konstantinos Chatzilygeroudis konstantinos.chatzilygeroudis@inria.fr
- Paul Tonelli tonelli@isir.upmc.fr (documentation)
- Many members of ISIR (http://isir.upmc.fr)
Peer-reviewed academic papers that used Sferes2:
If you used Sferes2 in an academic paper, please send us an e-mail (jean-baptiste.mouret@inria.fr) so that we can add it here!
(you can find a pdf for most of these publications on http://scholar.google.com).
2019
- Kaushik R, Chatzilygeroudis K, Mouret JB. Multi-objective Model-based Policy Search for Data-efficient Learning with Sparse Rewards.Proceedings of CoRL (Conference on Robot Learning), 2019
- Ellefsen KO, Huizinga J, Torresen J. Guiding Neuroevolution with Structural Objectives. Evolutionary computation. 2019 Feb 15:1-26.
- Nordmoen J, Samuelsen E, Ellefsen KO, Glette K. Dynamic mutation in MAP-Elites for robotic repertoire generation. In Artificial Life Conference Proceedings 2018 Jul (pp. 598-605).
2018
- Nygaard TF, Martin CP, Samuelsen E, Torresen J, Glette K. Real-world evolution adapts robot morphology and control to hardware limitations. InProceedings of the Genetic and Evolutionary Computation Conference 2018 Jul 2 (pp. 125-132). ACM.
- Pautrat R, Chatzilygeroudis K, Mouret JB. Bayesian optimization with automatic prior selection for data-efficient direct policy search. In2018 IEEE International Conference on Robotics and Automation (ICRA) 2018 May 21 (pp. 7571-7578). IEEE.
- Nordmoen J, Ellefsen KO, Glette K. Combining map-elites and incremental evolution to generate gaits for a mammalian quadruped robot. In International Conference on the Applications of Evolutionary Computation 2018 Apr 3 (pp. 719-733). Springer, Cham.
- Vassiliades V, Mouret JB. Discovering the elite hypervolume by leveraging interspecies correlation. InProceedings of the Genetic and Evolutionary Computation Conference 2018 Jul 2 (pp. 149-156). ACM.
2017
- Maurice, P., Padois, V., Measson, Y., & Bidaud, P. (2017). Human-oriented design of collaborative robots. International Journal of Industrial Ergonomics, 57, 88-102.
- Viejo, G., Girard, B., Procyk, E., & Khamassi, M. (2017). Adaptive coordination of working-memory and reinforcement learning in non-human primates performing a trial-and-error problem solving task. Behavioural Brain Research.
- Vassiliades, V., Chatzilygeroudis, K., & Mouret, J. B. (2017). Using centroidal voronoi tessellations to scale up the multi-dimensional archive of phenotypic elites algorithm. IEEE Transactions on Evolutionary Computation.
- Pontes J, Doncieux S, Santos C, Padois V. An adaptive approach to humanoid locomotion. InAdvances in Cooperative Robotics 2017 (pp. 437-444).
- Ellefsen KO, Tørresen J. Evolving neural networks with multiple internal models. In Artificial Life Conference Proceedings 14 2017 Sep (pp. 138-145).
- Cully A, Demiris Y. Quality and diversity optimization: A unifying modular framework. IEEE Transactions on Evolutionary Computation. 2017 Jun 26;22(2):245-59.
2016
- Mengistu, H., Huizinga, J., Mouret, J.-B., & Clune, J. The evolutionary origins of hierarchy. PLoS Computational Biology, Public Library of Science, 2016, 12 (6),
- Velez, R., and Clune, J.. "Identifying Core Functional Networks and Functional Modules within Artificial Neural Networks via Subsets Regression." Proceedings of the Genetic and Evolutionary Computation Conference. 2016.
- Tarapore, D. Clune, J., Cully, A., and Mouret, J.-B "How Do Different Encodings Influence the Performance of the MAP-Elites Algorithm?" Proceedings of the Genetic and Evolutionary Computation Conference. 2016.
- Huizinga J., Mouret J.-B., Clune J. "Does aligning phenotypic and genotypic modularity improve the evolution of neural networks?" Proceedings of the Genetic and Evolutionary Computation Conference. 2016.
- Norouzzadeh M., Clune J. Neuromodulation improves the evolution of forward models. Proceedings of the Genetic and Evolutionary Computation Conference. 2016.
- Stanton, C., and Clune J. "Curiosity Search: Producing Generalists by Encouraging Individuals to Continually Explore and Acquire Skills throughout Their Lifetime." PloS one 11.9 (2016): e0162235.
- Nguyen A, Yosinski J, Clune J. Understanding Innovation Engines: Automated Creativity and Improved Stochastic Optimization via Deep Learning. Evolutionary Computation. 2016 Sep;24(3):545-72.
- Bernard, A., André, J. B., & Bredeche, N. (2016). Evolving specialisation in a population of heterogeneous robots: the challenge of bootstrapping and maintaining genotypic polymorphism. Artificial Life, 15, 1-8.
- Pontes, J., Doncieux, S., Santos, C., & Padois, V. (2016). An Adaptive Approach to Humanoid Locomotion. In Advances in Cooperative Robotics--Proceedings of the 19th International Conference on Climbing and Walking Robots and the Support Technologies for Mobile Machines (pp. 437-444).
- Velez R, Clune J. Diffusion-based neuromodulation can eliminate catastrophic forgetting in simple neural networks. PloS one. 2017 Nov 16;12(11):e0187736.
- Zimmer M, Doncieux S. Bootstrapping $ q $-learning for robotics from neuro-evolution results. IEEE Transactions on Cognitive and Developmental Systems. 2017 Mar 15;10(1):102-19.
2015
- Maestre, Carlos, Antoine Cully, Christophe Gonzales, and Stephane Doncieux. "Bootstrapping interactions with objects from raw sensorimotor data: a Novelty Search based approach." In IEEE International Conference on Developmental and Learning and on Epigenetic Robotics. 2015.
- Cully, Antoine, Jeff Clune, Danesh Tarapore, and Jean-Baptiste Mouret. "Robots that can adapt like animals." Nature 521, no. 7553 (2015): 503-507.
- Viejo, Guillaume, Mehdi Khamassi, Andrea Brovelli, and Benoît Girard. "Modeling choice and reaction time during arbitrary visuomotor learning through the coordination of adaptive working memory and reinforcement learning." Frontiers in behavioral neuroscience 9 (2015).
- Nguyen, Anh, Jason Yosinski, and Jeff Clune. "Innovation engines: Automated creativity and improved stochastic optimization via deep learning." In Proceedings of the Genetic and Evolutionary Computation Conference. 2015.
- Maestre, Carlos, Antoine Cully, Christophe Gonzales, and Stephane Doncieux. "Bootstrapping interactions with objects from raw sensorimotor data: a Novelty Search based approach." In IEEE International Conference on Developmental and Learning and on Epigenetic Robotics. 2015.
- Shrouf, Fadi, Joaquin Ordieres-Meré, Alvaro García-Sánchez, and Miguel Ortega-Mier. "Optimizing the production scheduling of a single machine to minimize total energy consumption costs." Journal of Cleaner Production 67 (2014): 197-207.
- Ellefsen, Kai Olav, Jean-Baptiste Mouret, and Jeff Clune. "Neural Modularity Helps Organisms Evolve to Learn New Skills without Forgetting Old Skills." PLoS Comput Biol 11.4 (2015): e1004128.
- Cully, Antoine, and J-B. Mouret. "Evolving a Behavioral Repertoire for a Walking Robot." Evolutionary computation (2015).
- Mouret, Jean-Baptiste, and Jeff Clune. "Illuminating search spaces by mapping elites." arXiv preprint arXiv:1504.04909 (2015).
- Tarapore, Danesh, and Jean-Baptiste Mouret. "Evolvability signatures of generative encodings: beyond standard performance benchmarks." Information Sciences (2015).
- Nguyen, A., Yosinski, J.
