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.7.tar.gz (75.7 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.7-cp314-cp314-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.14Windows x86-64

gob-0.0.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

gob-0.0.7-cp314-cp314-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

gob-0.0.7-cp313-cp313-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.13Windows x86-64

gob-0.0.7-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.7-cp313-cp313-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

gob-0.0.7-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.7-cp312-cp312-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

gob-0.0.7-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.7-cp311-cp311-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

gob-0.0.7-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.7-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.7.tar.gz.

File metadata

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

File hashes

Hashes for gob-0.0.7.tar.gz
Algorithm Hash digest
SHA256 5c7b25db06ffed4ac70afb402195a502150e779cbc06d431888a60c403fe28e6
MD5 f0ade7b2f118582f90c360346e183051
BLAKE2b-256 383b0c2f1b9c9b63b146c8fbf1e942e93ac573c292153ef9deb683e2528e57f5

See more details on using hashes here.

File details

Details for the file gob-0.0.7-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: gob-0.0.7-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for gob-0.0.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c7e8ec5d44f638364b8f97f60f773f5eed9e60f2c8f64a17eaa0be3125ca655f
MD5 8da8d8b361f7799483116d9475ef31f7
BLAKE2b-256 688e207964e0b9d4ff1fc2872e4e27227d538ad8f236c3c1fd087049654663d4

See more details on using hashes here.

File details

Details for the file gob-0.0.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for gob-0.0.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5239e6052f2c926bb12d968cac091bb07b8586e408f90ba9f8a705cd5c583694
MD5 64e2ce8c8db6a7062a99197a6b0e25b3
BLAKE2b-256 8caa5a0d9b4566d626323238d3b0fab9a0a17a2e47050807be93625b7f16368c

See more details on using hashes here.

File details

Details for the file gob-0.0.7-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

  • Download URL: gob-0.0.7-cp314-cp314-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 6.4 MB
  • Tags: CPython 3.14, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for gob-0.0.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9274c8c694e89a7382cca64f0d1ec7810e7ae0040bf68a72f1b579e314064caf
MD5 aa2e5ec88946bab86bf5b3a3538637c4
BLAKE2b-256 e2f81d59cae63e64290f38ff7f8933a5346bd8e88a977427432fc5a65317603c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gob-0.0.7-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.13

File hashes

Hashes for gob-0.0.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cf266e5c63d333065b0a7b1e61d2b6797629cd7b6a9282b6e889bcc03ac0f7d1
MD5 f1d27b442e66e03f256dfe8e1a680ec7
BLAKE2b-256 ca65e09e216baec7d2e643c1e3a219622d8fe71284ab983a90ef9fa2f4e35604

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gob-0.0.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2484f2dd27f89e3df2c795301c0583808848181b3648e9c8e5c4a9194bd28d0c
MD5 a8f9335f25dad51a937d371d35db5403
BLAKE2b-256 ee6fb93c3b026446a7895c50c115be15de0972cff8651050c7cfc73d8b52bb51

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gob-0.0.7-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.13

File hashes

Hashes for gob-0.0.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa50c04b0b6490378dbf78720eea673c5276ded948cd18ac00848aeed4cd23a8
MD5 66aab4f629376b259a3d0833dfd014fb
BLAKE2b-256 79929261b1a854d6de65210ff4b6010af00fdb06be71d391089ba28b46639a62

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gob-0.0.7-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.13

File hashes

Hashes for gob-0.0.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 633785deaa15a64b192c689c7a09dccff8e865a1290594b26cac492cbb1e3e36
MD5 8035787376f12e8527a4b0a2a230ae95
BLAKE2b-256 767a5c8298dc75048e1c13b36673daf0cd7b8cac4d474c01689e9788f3c2bb50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gob-0.0.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b56df6a43bd4a614927e52214adf27a5ca26c2910201b448e225139bc0b4952a
MD5 5a26c54be15f74a32e0dc18baa1250b8
BLAKE2b-256 d25f06a347e0d6364dd428f612a7b5974bf8c144c5e4d46fb47fb8e8c4a2067a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gob-0.0.7-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.13

File hashes

Hashes for gob-0.0.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c6820afd7545586be9e867bb763dc403227e2892b526f16df6de57a1914596ce
MD5 3014aa705fb9fd6439d915c001c94c07
BLAKE2b-256 b3ee71311131375df915312f0af4ab33c612c3e30a8f97fbab05f7a54bbe0f5d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gob-0.0.7-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.13

File hashes

Hashes for gob-0.0.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1e49dd97dccd4dfb0cfc61574799c823652bc292c5dc5218a5e89e92c3419f32
MD5 657c2c632c72accd29a36dc90a550d3c
BLAKE2b-256 c5a6d38852564b5482fa419c256e40a98c5c4eb6a606d32563c4dbe48a38c4da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gob-0.0.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 393ae05e55470db3e2cf73316982f41ac122029cfc66053d228a30f4aef43952
MD5 eac9488b43419c41e0c9e22eb0244022
BLAKE2b-256 b57abc6606f90f981d09e0f345e05c99f968436165681f66a061736f49b235b1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gob-0.0.7-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.13

File hashes

Hashes for gob-0.0.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee78c6e7542547cd06195ec164355a875106601379b3c82d307640e771dee39c
MD5 1eae8da7582a064df901950cfaddbe5d
BLAKE2b-256 f5398126633531884db01db07da83b20898fe372d2dfe37193ec8eee28f6593a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gob-0.0.7-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.13

File hashes

Hashes for gob-0.0.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 63cd9047cb9c28a607f60c9450c0703c46cdb14f1edf2d22e29fb8323b155b1c
MD5 e19e1d3d6905ffcd7c91127c0295f153
BLAKE2b-256 29e6094c74f9168faff944daa66354f69cd62bab9c542d1106b9dfed78226f7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gob-0.0.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 087096a0e20d18bbac43a73c30515fe9400193ee4adf7663601e128e618bfbdf
MD5 d06b73dded4805ac3debffe53ec74fec
BLAKE2b-256 d75ee7ed41e76a91ccfb26493e2c8dd284617da7a094c855926c725dc034fa44

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gob-0.0.7-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.13

File hashes

Hashes for gob-0.0.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ad623652225092d355a85c8d120eb2ab238f91391848fad13e62ab57edc51126
MD5 3068ee33a2787c41941c5d28b02b916a
BLAKE2b-256 dcd4f98a13f051e6d0388ae34f29666e0c2fb969a26d084d5f2db3b391686666

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