SkillAgentSearch skills...

Sferes2

A lightweight, generic C++11 framework for evolutionary computation

Install / Use

/learn @sferes2/Sferes2

README

sferes2 Build Status

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

  1. 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
  2. Ellefsen KO, Huizinga J, Torresen J. Guiding Neuroevolution with Structural Objectives. Evolutionary computation. 2019 Feb 15:1-26.
  3. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. Maurice, P., Padois, V., Measson, Y., & Bidaud, P. (2017). Human-oriented design of collaborative robots. International Journal of Industrial Ergonomics, 57, 88-102.
  2. 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.
  3. 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.
  4. Pontes J, Doncieux S, Santos C, Padois V. An adaptive approach to humanoid locomotion. InAdvances in Cooperative Robotics 2017 (pp. 437-444).
  5. Ellefsen KO, Tørresen J. Evolving neural networks with multiple internal models. In Artificial Life Conference Proceedings 14 2017 Sep (pp. 138-145).
  6. 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

  1. Mengistu, H., Huizinga, J., Mouret, J.-B., & Clune, J. The evolutionary origins of hierarchy. PLoS Computational Biology, Public Library of Science, 2016, 12 (6),
  2. 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.
  3. 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.
  4. 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.
  5. Norouzzadeh M., Clune J. Neuromodulation improves the evolution of forward models. Proceedings of the Genetic and Evolutionary Computation Conference. 2016.
  6. 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.
  7. 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.
  8. 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.
  9. 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).
  10. Velez R, Clune J. Diffusion-based neuromodulation can eliminate catastrophic forgetting in simple neural networks. PloS one. 2017 Nov 16;12(11):e0187736.
  11. 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

  1. 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.
  2. Cully, Antoine, Jeff Clune, Danesh Tarapore, and Jean-Baptiste Mouret. "Robots that can adapt like animals." Nature 521, no. 7553 (2015): 503-507.
  3. 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).
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Cully, Antoine, and J-B. Mouret. "Evolving a Behavioral Repertoire for a Walking Robot." Evolutionary computation (2015).
  9. Mouret, Jean-Baptiste, and Jeff Clune. "Illuminating search spaces by mapping elites." arXiv preprint arXiv:1504.04909 (2015).
  10. Tarapore, Danesh, and Jean-Baptiste Mouret. "Evolvability signatures of generative encodings: beyond standard performance benchmarks." Information Sciences (2015).
  11. Nguyen, A., Yosinski, J.
View on GitHub
GitHub Stars170
CategoryDevelopment
Updated5mo ago
Forks36

Languages

C++

Security Score

82/100

Audited on Nov 5, 2025

No findings