/olympus

Olympus: a benchmarking framework for noisy optimization and experiment planning

Primary LanguageJupyter NotebookMIT LicenseMIT

Olympus: a benchmarking framework for noisy optimization and experiment planning

Build Status codecov Code style: black

alt text

Olympus provides a consistent and easy-to-use framework for benchmarking optimization algorithms. With olympus you can:

  • Build optimization domains using continuous, discrete and categorical parameter types.
  • Access a suite of 23 experiment planning algortihms via a simple and consistent interface
  • Access 33 experimentally-derived benchmarks and 33 analytical test functions for optimization benchmarks
  • Easily integrate custom optimization algorithms
  • Easily integrate custom datasets, which can be used to train models for custom benchmarks
  • Enjoy extensive plotting and analysis options for visualizing your benchmark experiments

You can find more details in the documentation.

Installation

Olympus can be installed with pip:

pip install olymp

The package can also be installed via conda:

conda install -c conda-forge olymp

Finally, the package can be built from source:

git clone https://github.com/aspuru-guzik-group/olympus.git
cd olympus
python setup.py develop

You can explore Olympus using the following Colab notebook:

Open In Colab

Dependencies

The installation only requires:

  • python >= 3.6
  • numpy
  • pandas

Additional libraries are required to use specific modules and objects. Olympus will alert you about these requirements as you try access the related functionality.

Use cases

The following projects have used Olympus to streamline the benchmarking of optimization algorithms.

Citation

Olympus is an academinc research software. If you make use of it in scientific publications, please cite the following articles:

@article{hase_olympus_2021,
      author = {H{\"a}se, Florian and Aldeghi, Matteo and Hickman, Riley J. and Roch, Lo{\"\i}c M. and Christensen, Melodie and Liles, Elena and Hein, Jason E. and Aspuru-Guzik, Al{\'a}n},
      doi = {10.1088/2632-2153/abedc8},
      issn = {2632-2153},
      journal = {Machine Learning: Science and Technology},
      month = jul,
      number = {3},
      pages = {035021},
      title = {Olympus: a benchmarking framework for noisy optimization and experiment planning},
      volume = {2},
      year = {2021}
}

@misc{hickman_olympus_2023,
	author = {Hickman, Riley and Parakh, Priyansh and Cheng, Austin and Ai, Qianxiang and Schrier, Joshua and Aldeghi, Matteo and Aspuru-Guzik, Al{\'a}n},
	doi = {10.26434/chemrxiv-2023-74w8d},
	language = {en},
	month = may,
	publisher = {ChemRxiv},
	shorttitle = {Olympus, enhanced},
	title = {Olympus, enhanced: benchmarking mixed-parameter and multi-objective optimization in chemistry and materials science},
	urldate = {2023-06-21},
	year = {2023},
}

The preprint is also available at https://arxiv.org/abs/2010.04153.

License

Olympus is distributed under an MIT License.