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 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.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.6.tar.gz (77.0 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.6-cp313-cp313-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.13Windows x86-64

gob-0.0.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

gob-0.0.6-cp313-cp313-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

gob-0.0.6-cp312-cp312-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.12Windows x86-64

gob-0.0.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

gob-0.0.6-cp312-cp312-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

gob-0.0.6-cp311-cp311-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.11Windows x86-64

gob-0.0.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

gob-0.0.6-cp311-cp311-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

gob-0.0.6-cp310-cp310-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.10Windows x86-64

gob-0.0.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

gob-0.0.6-cp310-cp310-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for gob-0.0.6.tar.gz
Algorithm Hash digest
SHA256 e4f31e9926d5dfc19008f0c64f5c789daa7698117ee86b538b671b8ce25959d1
MD5 436fbdd8462e2a99db9790daff3e7e6d
BLAKE2b-256 1d655cf732a4ea1551a689859a2514fd953029e10cbce83c3c3fb6477d64c069

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gob-0.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 204566bfc055c9d12ff94625829cd83e0c19b50898d4d547d92462faff4c4ce2
MD5 41389a6e09547de4f19c3ccd6265cecd
BLAKE2b-256 bb8dbda5760203dbc44f299859bb446c2d1eb2b493c53e441a47ae9305445613

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gob-0.0.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 68bc88a27b0ae735a4ce19d5683c64c1a54f9c5777c0cc33c1315f4ccb9c044e
MD5 d4880f27db8bd525824eb8958eab0272
BLAKE2b-256 492075617341aeefd2171c1d8d4e80501a880c4bfc91c5765990390190e8987f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gob-0.0.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 11ca4b3fe68b016ed6d11fef74082569ab355e48f80477141e15aa6746b15cb1
MD5 1100b9ae3ba81af832e41acb50c21920
BLAKE2b-256 c34d0ed6565438430dee5167a51bb44f2583d4239728a81930da1de3857d9bdf

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gob-0.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f082b90e7cb44adc1c31d87ac68659d5dacd502ee173936ad4f07f0ec70b741a
MD5 1cc6a6447d33c695e248e5475528ce03
BLAKE2b-256 893ae6ab5810324996f36ab7cfd74dac5269d5741b33b112e001de9e95af6c50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gob-0.0.6-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 22c9ed4e670994d2a8f966f74ca9bb3528f637014530ff4b60e611aa59e1f590
MD5 58511cebb37dec047a48f15cf1eff5e9
BLAKE2b-256 91d173acb28bf5c81b0cad7e33b30f52123a738ba227a4776895d2ad5b591306

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gob-0.0.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8dee51f7428ee699a4867e2af4cd01fea44bfa9383311abfcbf28718f827cc45
MD5 7eb6ed6d2d7b6cb3f6d8fa59cf20273a
BLAKE2b-256 569c27c4842d5cae7182cea44a27dcd5d9ebd8960de0491233926fa9654aa5d8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gob-0.0.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d0e6ff6e52a48377caec823a4a816b89feefc8637fcdf38db15124b6beac6f0c
MD5 0f5f4e76d5880a503975745a690b3b21
BLAKE2b-256 63fe0c49aabb13aeca4712affe6e2e0a82b14c4cefae68af86d0a4097b89f725

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gob-0.0.6-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 21b4c45ab4b81a20e2c57255ed91e7fa2c4dd4761af0e4fcb0bc3fe81ea586d8
MD5 ef75b875b01996ea4afd5bdf6b3e13cc
BLAKE2b-256 9c29b8a3499995961c0eae8fe277a31223bab3566fce17da3715e4837354acda

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gob-0.0.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a0fe242ec0540daef8760a012eff9a6e056a4235ce92452428a58cd3c2d79d2
MD5 342ac89444cf3896ca06cd9b7b9ad6f7
BLAKE2b-256 c7ff30692e61857578abd4a76bd78c5dbbeb5d0f6ea3b36b015f548084c7bcd2

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gob-0.0.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1a4b8187f9e6f05a73d9e14fd3b1b794d2d7d092bab8c7e377fe7d91821c44d2
MD5 9100789feed46dba17c778b372598d28
BLAKE2b-256 93137fe96b041f4632d95513d6f0ea7cfc45af698bf613ca74f07d375ed495d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gob-0.0.6-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 820eb71e00da238dc7aedc529e5a0c2c18455cbec48b5e25d1b5497d933e9e09
MD5 6d710159a0a1384922b606845285a807
BLAKE2b-256 a41ceb67d9c6bc640d2cf4e9c3c10edf4420cb8241700f9c2d90dd069d90813b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for gob-0.0.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9befa3208c3aa76499c056d7ef46ab30523d71d27eaad8968f1af702dbf510fb
MD5 d89aa35f4244bdb68a73f5f334bdf86f
BLAKE2b-256 f836d572a5fa682e3ab2cc4994619a40cb7387b92918b1622a7566ba4b6af2ce

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