Skip to content

tehqin/QualDivBenchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 

Repository files navigation

QualDivBenchmark

This project is the toy domain from the paper Covariance Matrix Adaptation for the Rapid Illumination of Behavior Space. The project includes parallelizable implementations of CMA-ES, MAP-Elites, and the new CMA-ME algorithm detailed in the paper.

We test each algorithm against classic test functions Sphere and Rastrigin described in the paper. Despite the name, this project is not a official benchmark, but rather an implementation of standard black-box optimization benchmarks. The goal is to test behavioral coverage of behavior spaces that are formed from linear projections of parameter space. Arguments for why this is important are made in the paper.

Installation

To install the project, you need to install the .NET developer toolkit for your system. You may also need the NuGet client tools for updating dependencies for the project.

The first step is running the following commands. These will restore dependency dlls on your system and create a directory to save log files for the experiment. Dependencies are Math.Net which is a linear algebra library needed for Eigen decomposition and Nett which is used for TOML configuration files.

nuget restore
mkdir logs

Now we need to build the project.

dotnet build -c Release

Then running an experiment is as easy as running the associated config file. Let's run the CMA-ES Sphere experiment optimizing 20 parameters.

dotnet run config/sphere20/sphere_cma_es.tml

The first paramter is the config file of the experiment. Provided are all config files for all experiments run in the paper. Simply change the config file to run a different experiment. CSV log files for individuals and the map of elites are stored in the logs folder.

Configuration

The number of trials and parameters of the experiment are configurable through the TOML file. You can change the optimizing function or algorithm here. To change search specific parameters, modify the separate config file for each search.

NumTrials = 30
NumParams = 20
FunctionType = "Sphere"

[Search]
Type = "CMA-ES"
ConfigFilename = "config/cma_es_config.tml"

Below is the config file for CMA-ES. Note that parameters like mutation power and population size are configurable in this file.

OverflowFactor = 1.0
NumParents = 250
PopulationSize = 500
NumToEvaluate = 2500000
MutationPower = 0.5

About

A testbed for continuous domain QD algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published