Skip to content

Olympus: a benchmarking framework for noisy optimization and experiment planning

License

Notifications You must be signed in to change notification settings

gomesgroup/olympus

This branch is 14 commits ahead of aspuru-guzik-group/olympus:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
rmacknight99
Feb 20, 2025
a22823f · Feb 20, 2025
Apr 23, 2023
Jul 10, 2023
Jul 9, 2023
Nov 18, 2021
Feb 11, 2025
Apr 23, 2023
Nov 2, 2022
May 27, 2022
Jan 20, 2021
Aug 24, 2022
May 27, 2022
Oct 9, 2020
Oct 9, 2020
Oct 9, 2020
Jul 25, 2023
May 24, 2022
Jan 26, 2021
May 27, 2022
Dec 11, 2024
Oct 9, 2020
Feb 20, 2025
Nov 11, 2024

Repository files navigation

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.

About

Olympus: a benchmarking framework for noisy optimization and experiment planning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 97.3%
  • Python 2.4%
  • Shell 0.3%