Sferes2

From Robin

Revision as of 03:46, 4 May 2016 by Fredrsae (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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