Sferes2

From Robin

(Difference between revisions)
Jump to: navigation, search
(Created page)
m (Added link to paper)
 
(One intermediate revision not shown)
Line 1: Line 1:
== About ==
== About ==
-
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 is a high-performance C++ framework for evolutionary computation, and is
 +
the back-end for the implementation of MAP-Elites.  
 +
 
 +
The Sferes2-framework is the
 +
component that handles the evolutionary computation. The user defines the
 +
algorithm in a template, and runs it through Sferes2, or using one of the many supplemented algorithms such as NSGA-II, ε-MOEA or CMA-ES.
 +
 
 +
Sferes2 is divided into three parts: The
 +
framework, the optional modules, and the user experiments. The framework
 +
provides the binary string genome, as well as a real number genome with the
 +
supplemented operators: Gaussian mutation, Uniform mutation, Polynomial
 +
mutation and SBX crossover. The user is free to define any additional
 +
modules.
Sferes2 heavily relies on template-based meta-programming in C++ to get both abstraction and execution speed.
Sferes2 heavily relies on template-based meta-programming in C++ to get both abstraction and execution speed.
[https://github.com/sferes2/sferes2 Github page]
[https://github.com/sferes2/sferes2 Github page]
 +
 +
[http://www.isir.upmc.fr/files/2010ACTI1524.pdf Evolvin' in the Multi-Core World]
== Compiling sferes2 ==
== Compiling sferes2 ==

Current revision as of 03:46, 4 May 2016

About

Sferes2 is a high-performance C++ framework for evolutionary computation, and is the back-end for the implementation of MAP-Elites.

The Sferes2-framework is the component that handles the evolutionary computation. The user defines the algorithm in a template, and runs it through Sferes2, or using one of the many supplemented algorithms such as NSGA-II, ε-MOEA or CMA-ES.

Sferes2 is divided into three parts: The framework, the optional modules, and the user experiments. The framework provides the binary string genome, as well as a real number genome with the supplemented operators: Gaussian mutation, Uniform mutation, Polynomial mutation and SBX crossover. The user is free to define any additional modules.

Sferes2 heavily relies on template-based meta-programming in C++ to get both abstraction and execution speed.

Github page

Evolvin' in the Multi-Core World

Compiling sferes2

Sferes2 is built using the waf build system. The source code is bundled with the binary required to run this build system.

You may experience some issues compiling the source code with the non-descriptive error message:

collect2: error: ld returned 1 exit status
Waf: Leaving directory `/home/USER/sferes2/build'
Build failed:
 -> task failed (err #1): 
        {task: cxx_link ex_nsga2_3.o -> ex_nsga2}
 -> task failed (err #1): 
        {task: cxx_link ex_ea_1.o -> ex_ea}

This issue is due to C++98 not supporting constexpr. You can solve this by running waf with the cpp11-flag, changing the standard to C++11.

In the cloned git-repository:

$ ./waf --cpp11=yes

Personal tools
Front page