Skip to main content

Package qdpy implements recent Quality-Diversity algorithms: Map-Elites, CVT-Map-Elites, NSLC, SAIL, etc. QD algorithms can be accessed directly, but qdpy also includes building blocks that can be easily assembled together to build your own QD algorithms. It can be used with parallelism mechanisms and in distributed environments.

This package requires Python 3.6+.

qdpy includes the following features:
  • Generic support for diverse Containers: Grids, Novelty-Archives, Populations, etc

  • Optimisation algorithms for QD: random search methods, quasi-random methods, evolutionary algorithms

  • Support for multi-objective optimisation methods

  • Possible to use optimisation methods not designed for QD, such as [CMA-ES](https://arxiv.org/pdf/1604.00772.pdf)

  • Parallelisation of evaluations, using parallelism libraries, such as multiprocessing, concurrent.futures or [SCOOP](https://github.com/soravux/scoop)

  • Easy integration with the popular [DEAP](https://github.com/DEAP/deap) evolutionary computation framework

Install

qdpy requires Python 3.6+. It can be installed with:

pip3 install qdpy

qdpy includes optional features that need extra packages to be installed:
  • cma for CMA-ES support

  • deap to integrate with the DEAP library

  • tables to output results files in the HDF5 format

  • tqdm to display a progress bar showing optimisation progress

  • colorama to add colours to pretty-printed outputs

You can install qdpy and all of these optional dependencies with:

pip3 install qdpy[all]

The latest version can be installed from the GitLab repository:

pip3 install git+https://gitlab.com/leo.cazenille/qdpy.git@master

Example

From a python shell:

from qdpy import algorithms, containers, benchmarks, plots

# Create container and algorithm. Here we use MAP-Elites, by illuminating a Grid container by evolution.
grid = containers.Grid(shape=(64,64), max_items_per_bin=1, fitness_domain=((0., 1.),), features_domain=((0., 1.), (0., 1.)))
algo = algorithms.RandomSearchMutPolyBounded(grid, budget=60000, batch_size=500,
        dimension=3, optimisation_task="maximisation")

# Create a logger to pretty-print everything and generate output data files
logger = algorithms.AlgorithmLogger(algo)

# Define evaluation function
eval_fn = algorithms.partial(benchmarks.illumination_rastrigin_normalised,
        nb_features = len(grid.shape))

# Run illumination process !
best = algo.optimise(eval_fn)

# Print results info
print(algo.summary())

# Plot the results
plots.default_plots_grid(logger)

print("All results are available in the '%s' pickle file." % logger.final_filename)

Usage, Documentation

Please to go the GitLab repository main page (https://gitlab.com/leo.cazenille/qdpy) and the documentation main page (https://leo.cazenille.gitlab.io/qdpy/).

Author:

Leo Cazenille, 2018-*

License:

LGPLv3, see LICENSE file.

Metadata

Release files for qdpy 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qdpy 0.1.2
File Size Uploaded
qdpy-0.1.2.tar.gz 777.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qdpy 0.1.2
File Interpreter ABI Platform
qdpy-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / qdpy-0.1.2.tar.gz

Download URL qdpy-0.1.2.tar.gz
Size 777.2 kB
Tags Source
SHA-256 checksum
How to use checksums
86b9b5669b7fbcbd9c0cfe98c4dac83df940754495dda2062c84d09e27ae70f9
BLAKE2b-256 checksum
How to use checksums
522d5bf6bd54bf0ed9722f9a60182737029815d376a6b407fe0a5b716a9fb4db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

Release files / qdpy-0.1.2-py3-none-any.whl

Download URL qdpy-0.1.2-py3-none-any.whl
Size 825.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d16039a2b7c74f217c8d35e38511898af1954bef1b82ed43f93a6b3219bfd744
BLAKE2b-256 checksum
How to use checksums
85313a3a6b6552c4535bace530a931bdb91dedaceb0e2157418fb79a94adddaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.3.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.3

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page