Skip to content

adaptive-intelligent-robotics/Multi-Emitter_Map-Elites

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-Emitter MAP-Elites: Improving quality, diversity and data efficiency with heterogeneous sets of emitters

This repository contains the code associated with Multi-Emitter MAP-Elites: Improving quality, diversity and data efficiency with heterogeneous sets of emitters

Libraries and dependencies

The implementation of all tasks and algorithms is based on the qd-branch of the C++ Sferes2 library presented in Sferesv2: Evolvin' in the multi-core world, and the hexapod control task uses the Dart simulator introduced in Dart: Dynamic animation and robotics toolkit. Furthermore, the analysis of the results is based on Panda, Matplotlib and Seaborn libraries.

Structure

The main part of the code contains the following files and folders:

  • The src folder contains the main structure the code based on the framework of QD algorithms introduced in Quality and diversity optimization: A unifying modular framework.
  • The python folder is used for the results analysis.
  • The singularity folder contains the required files to compile the Singularity container for this experiment.

Execution

The results of the paper can be reproduced by running the Singularity container image of the experiment. Instructions to install Singularity can be found in Singularity documentation. To compile the container, run the command: python build_final_image.py from the singularity folder. The resulting container should be called something like final_Multi-Emitter_Map-Elites_YYYY-MM-DD_HH_MM_SS.sif

This container is an executable that can be used to launch an experiment by providing the name of the experiment as argument to the container. The argument should have the form of: [algo]_[task]. A valid example is hetero_ucb_hexa_omni

algo can take one of the following values

  • hetero_ucb: Multi-Emitter MAP-Elites with UCB1.
  • hetero: Multi-Emitter MAP-Elites with uniform sampling.
  • cmame_imp: CMA-ME with Improving Emitter.
  • cmame_opt: CMA-ME with Optimising Emitter.
  • cmame_rdw: CMA-ME with Random Direction Emitter.
  • cmame_rand: CMA-ME with Random Emitter (equivalent to MAP-Elites with line variation operator).

task can take one of the following values

  • rastrigin: Noise-free Baseline for each of the three tasks.
  • rastrigin_multi: Explicit-averaging approach with 1 re-sampling.
  • sphere: Explicit-averaging approach with 50 re-sampling.
  • rarm: DG-MAP-Elites approach with depth 50.
  • hexa_omni: Adaptive sampling approach without drifting elites.
  • hexa_uni: Adaptive sampling approach with drifting elites.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published