Skip to main content

A collection of global optimization algorithms implemented in C++ and linked with Python.

Project description

Global Optimization Benchmark (GOB)

CI CI PyPI version Code style: black

GOB Logo

GOB is a collection of global optimization algorithms implemented in C++ and linked with Python. It also includes a set of analytical benchmark functions and a random function generator (PyGKLS) to test the performance of these algorithms.

Algorithms

Documentation

The documentation is available at gaetanserre.fr/GOB.

Installation (Python ≥ 3.10)

Install the package via pip from PyPI:

pip install gob

Alternatively, download the corresponding wheel file from the releases and install it with pip:

pip install gob-<version>-<architecture>.whl

Build from source

Make sure you have CMake (≥ 3.28), a c++ compiler, and the eigen3 library installed. Then clone the repository and run:

pip install . -v

It should build the C++ extensions and install the package. You can also build the documentation with:

cd docs
pip install -r requirements.txt
make html

Usage

This package can be used to design a complete benchmarking framework for global optimization algorithms, testing multiple algorithms on a set of benchmark functions. See test_gob.py for an example of how to use it.

The global optimization algorithms can also be used independently. For example, to run the AdaLIPO+ algorithm on a benchmark function:

from gob.optimizers import AdaLIPO_P
from gob import create_bounds

f = lambda x: return x.T @ x

opt = AdaLIPO_P(create_bounds(2, -5, 5), 300)
res = opt.minimize(f)
print(f"Optimal point: {res[0]}, Optimal value: {res[1]}")

See test_optimizers.py for more examples of how to use the algorithms.

Contributing

Contributions are welcome! Please see the CONTRIBUTING file for guidelines.

References

License

This project is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0). See the LICENSE file for details.

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

gob-0.0.5.tar.gz (63.6 kB view details)

Uploaded Source

Built Distributions

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

gob-0.0.5-cp313-cp313-win_amd64.whl (5.2 MB view details)

Uploaded CPython 3.13Windows x86-64

gob-0.0.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

gob-0.0.5-cp313-cp313-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gob-0.0.5-cp312-cp312-win_amd64.whl (5.2 MB view details)

Uploaded CPython 3.12Windows x86-64

gob-0.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

gob-0.0.5-cp312-cp312-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gob-0.0.5-cp311-cp311-win_amd64.whl (5.2 MB view details)

Uploaded CPython 3.11Windows x86-64

gob-0.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

gob-0.0.5-cp311-cp311-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gob-0.0.5-cp310-cp310-win_amd64.whl (5.2 MB view details)

Uploaded CPython 3.10Windows x86-64

gob-0.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

gob-0.0.5-cp310-cp310-macosx_11_0_arm64.whl (6.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file gob-0.0.5.tar.gz.

File metadata

  • Download URL: gob-0.0.5.tar.gz
  • Upload date:
  • Size: 63.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for gob-0.0.5.tar.gz
Algorithm Hash digest
SHA256 1aceeb5a3655474cb999858ff66cd81644046c2cda4fb234631ae96b326af666
MD5 6509135cc09cca67e13959eb491d759a
BLAKE2b-256 03b327297484a36fdfbde44f525861151a3feae574002f1b66a33cb7224ab59b

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: gob-0.0.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for gob-0.0.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a2e48b2468d43bda9577120103203751da9e27b72c1605d29029a81551807bbf
MD5 e8f2614814a659146745c95a8cbba3a6
BLAKE2b-256 e950b899f3f3a5ae209f8a98281f30305a40f4fb99b7d7b7068d68f46aa663c9

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for gob-0.0.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 f5f4acdd0a8af32a9cbbf609570ae0f37593959aea08bb080e4e78edcf916c94
MD5 87e5e520c92e5ec06eb1910a7fcea304
BLAKE2b-256 fd1d425cf98ce60864eb9e24cf21657ce424bc2c2aeb3d034a0d63b544091b08

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gob-0.0.5-cp313-cp313-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 6.3 MB
  • Tags: CPython 3.13, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for gob-0.0.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b0855542b607a64baeea66e93fab4482c8c63828aa65b70e88d784cb4a61be8
MD5 96cbe16df777b7ed572a49d858c6d647
BLAKE2b-256 ee04962aa54221da50e61d59cc27b83fc77ddc055da6ebebf6d87c73d3fc6287

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: gob-0.0.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for gob-0.0.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8585f3c7ccc974f65d3207e89f1bfbc51b8d55c73668a5cc7f9f154c92e31a3d
MD5 81c8cee9f50e0055fa29527829c469a7
BLAKE2b-256 18cf26ad948bd55831d24b5447f6d8ef614a8d3eae1465c825c9917d3bee31e2

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for gob-0.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e3d5f501a803c49c25ebac8d5c13be89082a6dada9505457f6d77ab7e936879d
MD5 dd2786cbcb592721b6243dac51454217
BLAKE2b-256 4a0c6340547e4d561a834c93363c77d8c65d18193bf058455d7b85af11d3e44a

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gob-0.0.5-cp312-cp312-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 6.3 MB
  • Tags: CPython 3.12, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for gob-0.0.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9f18720cfee5ba5013e3f9545821867e46125085df3a0649cee1c7f53bda6c94
MD5 2ce2fa25efdab95c20783cdf3d0d0567
BLAKE2b-256 5ce16c129a646ca04d0b0e3f873ec5b7db76a1be980abc0e0ef3a7a3273ab4b4

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: gob-0.0.5-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for gob-0.0.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4287e401f70fdf31388889f672ca24a09b46622a40263bb8cea2a0a4ebe6c100
MD5 18d0b4c04c690d10d7f821dc2bd32eba
BLAKE2b-256 de243d171dde33c22e9b7b73090a6e5f7fb82b98aacbd2700bde239b7d66a077

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for gob-0.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 bad4dc96e6c31e6221e2136cf50dbeb5257a67160fccb61c963fe7549d6035df
MD5 71e877cd1fb344922912afc7f2ebd284
BLAKE2b-256 2ba91dc40e296c12a6363ddd1562b807201a58d690ce9ec506701fe4fcfbf46c

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gob-0.0.5-cp311-cp311-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 6.3 MB
  • Tags: CPython 3.11, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for gob-0.0.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3fa665a480cb5770dd8d66e88ef4564c53c74d6ff7b5ff5b4cb5f857c882c05d
MD5 d542b37ff456b4c481a8c2bf8b1a5968
BLAKE2b-256 28f2e8cad3c3b9ce8e06f8320fbaa55d043bec241488754113e458f60af035c2

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: gob-0.0.5-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 5.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for gob-0.0.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1b14f89af6a19acc133346d2b8c09c25b8be5d9c40eb8535dcd89422161ec029
MD5 da592f189550246874bb5f36f6c0b1aa
BLAKE2b-256 41d63223930ed79b4ce372af10d4bc20e7b6de826a8ff909578a4c2be161c338

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for gob-0.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 a38b5768ad9ef784ace9eb03ed947cb2ca2d5e18ad672550f0c7494d58a70512
MD5 96425af66844b77067e5535662c0dd84
BLAKE2b-256 61b9f361abc0f871fde6fabc5a1f968b56f767226b7e26157f8c9869bd57c1fa

See more details on using hashes here.

File details

Details for the file gob-0.0.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gob-0.0.5-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 6.3 MB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for gob-0.0.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c56195cec86d02d6536c605bd54488c430b5221308fce9babca0b11fdb5f7167
MD5 e3dd9fb8b1d653c178e99dfb2b3dd1a1
BLAKE2b-256 6105ef235e3196c1135bf091ddf3ef4b1879535b0f5bcf63678c72af4a3feea9

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