Skip to main content

BBOB Benchmark function implemented in JAX

Project description

Benchmark Functions for JAX

| GitHub | PyPI | Documentation | Zenodo

JAX implementations of the BBOB benchmark functions (Finck et al., 2009) [^1] and the CEC 2005 benchmark functions (Suganthan et al., 2005) [^4] for black-box optimization.

First publication: October 17, 2025


Statement of need

The BBOB and CEC 2005 benchmark suites are cornerstones of black-box optimization research. This repository provides JAX reimplementations of both: the 24 BBOB noise-free functions originally written in C, and the 25 CEC 2005 real-parameter functions. Translating these suites to JAX enables automatic differentiation, just-in-time (JIT) compilation, and XLA-accelerated performance — making them ideal for research in optimization, machine learning, and evolutionary algorithms.

BBOB functions 3D overview
3D surface plots of the 24 BBOB benchmark functions.

BBOB functions 2D overview
2D contour plots of the 24 BBOB benchmark functions.

CEC 2005 functions 3D overview
3D surface plots of the 25 CEC 2005 benchmark functions.

CEC 2005 functions 2D overview
2D contour plots of the 25 CEC 2005 benchmark functions.

Authorship & Citation

Authors:

Authors affiliation:

  • Delft University of Technology (Bessa Research Group)

Maintainer:

Maintainer affiliation:

  • Delft University of Technology (Bessa Research Group)

If you use bbob-jax in your research or in a scientific publication, it is appreciated that you cite the paper below:

Zenodo (link):

@software{vanderSchelling2025,
  title        = {Black-box optimization benchmarking (bbob) problem
                   set for JAX},
  author       = {van der Schelling, M. P. and Bessa, M A.},
  month        = {nov},
  year         = {2025},
  publisher    = {Zenodo},
  version      = {v1.0.0},
  doi          = {10.5281/zenodo.17426894},
  url          = {https://doi.org/10.5281/zenodo.17426894},
}

Getting started

To install the package, use pip:

pip install bbob-jax

Related Work

This project builds on and complements established benchmarking efforts and tooling in black-box optimization. The resources below are closely related and provide broader context and utilities.

Community Support

If you find any issues, bugs or problems with this package, please use the GitHub issue tracker to report them.

License

Copyright (c) 2025, Martin van der Schelling

All rights reserved.

This project is licensed under the BSD 3-Clause License. See LICENSE for the full license text.

[^1]: Finck, S., Hansen, N., Ros, R., and Auger, A. (2009), Real-parameter black-box optimization benchmarking 2009: Noiseless functions definitions, INRIA.

[^2]: Hansen, N., Auger, A., Ros, R., Mersmann, O., Tušar, T., and Brockhoff, D. (2021), COCO: A Platform for Comparing Continuous Optimizers in a Black-Box Setting. Optimization Methods and Software, 36(1), 114–144. https://doi.org/10.1080/10556788.2020.1808977

[^3]: Lange, R. T. (2022), evosax: JAX-based Evolution Strategies. arXiv preprint arXiv:2212.04180.

[^4]: Suganthan, P. N., Hansen, N., Liang, J. J., and Deb, K. (2005), Problem Definitions and Evaluation Criteria for the CEC 2005 Special Session on Real-Parameter Optimization.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bbob_jax-1.5.0.tar.gz (29.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bbob_jax-1.5.0-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file bbob_jax-1.5.0.tar.gz.

File metadata

  • Download URL: bbob_jax-1.5.0.tar.gz
  • Upload date:
  • Size: 29.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for bbob_jax-1.5.0.tar.gz
Algorithm Hash digest
SHA256 fc6d4e326c419d71c39c62b08c3759be98f3eb0ea07596e7bdfc224600b877bf
MD5 b087f210cbe78c817dc030fbd8b6b34a
BLAKE2b-256 684360e6dedb54fd86f4cce06e12edcaf2b918672d8f41e99bd7be53a8c6381b

See more details on using hashes here.

File details

Details for the file bbob_jax-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: bbob_jax-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for bbob_jax-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1659e826a0a07664379e2bf0efd15e51fc795484739be0746208de5aa3b6873c
MD5 7fd6e085f1e9924690427a2df6b75daa
BLAKE2b-256 c8ee51be24315a22d0a09c3e7bdf0e6576fde40712fde09ede59117acb23bdbc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page