A collection of global optimization algorithms implemented in C++ and linked with Python.
Project description
Global Optimization Benchmark (GOB)
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
- AdaLIPO+
- AdaRankOpt
- Bayesian Optimization
- CMA-ES
- Controlled Random Search
- DIRECT
- Every Call is Precious
- Multi-Level Single-Linkage
- Stein Boltzmann Sampling
- Consensus Based Optimization
- Social Only Particle Swarm Optimization
- Gradient Descent
- Pure Random Search
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1aceeb5a3655474cb999858ff66cd81644046c2cda4fb234631ae96b326af666
|
|
| MD5 |
6509135cc09cca67e13959eb491d759a
|
|
| BLAKE2b-256 |
03b327297484a36fdfbde44f525861151a3feae574002f1b66a33cb7224ab59b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2e48b2468d43bda9577120103203751da9e27b72c1605d29029a81551807bbf
|
|
| MD5 |
e8f2614814a659146745c95a8cbba3a6
|
|
| BLAKE2b-256 |
e950b899f3f3a5ae209f8a98281f30305a40f4fb99b7d7b7068d68f46aa663c9
|
File details
Details for the file gob-0.0.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: gob-0.0.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5f4acdd0a8af32a9cbbf609570ae0f37593959aea08bb080e4e78edcf916c94
|
|
| MD5 |
87e5e520c92e5ec06eb1910a7fcea304
|
|
| BLAKE2b-256 |
fd1d425cf98ce60864eb9e24cf21657ce424bc2c2aeb3d034a0d63b544091b08
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b0855542b607a64baeea66e93fab4482c8c63828aa65b70e88d784cb4a61be8
|
|
| MD5 |
96cbe16df777b7ed572a49d858c6d647
|
|
| BLAKE2b-256 |
ee04962aa54221da50e61d59cc27b83fc77ddc055da6ebebf6d87c73d3fc6287
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8585f3c7ccc974f65d3207e89f1bfbc51b8d55c73668a5cc7f9f154c92e31a3d
|
|
| MD5 |
81c8cee9f50e0055fa29527829c469a7
|
|
| BLAKE2b-256 |
18cf26ad948bd55831d24b5447f6d8ef614a8d3eae1465c825c9917d3bee31e2
|
File details
Details for the file gob-0.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: gob-0.0.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3d5f501a803c49c25ebac8d5c13be89082a6dada9505457f6d77ab7e936879d
|
|
| MD5 |
dd2786cbcb592721b6243dac51454217
|
|
| BLAKE2b-256 |
4a0c6340547e4d561a834c93363c77d8c65d18193bf058455d7b85af11d3e44a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f18720cfee5ba5013e3f9545821867e46125085df3a0649cee1c7f53bda6c94
|
|
| MD5 |
2ce2fa25efdab95c20783cdf3d0d0567
|
|
| BLAKE2b-256 |
5ce16c129a646ca04d0b0e3f873ec5b7db76a1be980abc0e0ef3a7a3273ab4b4
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4287e401f70fdf31388889f672ca24a09b46622a40263bb8cea2a0a4ebe6c100
|
|
| MD5 |
18d0b4c04c690d10d7f821dc2bd32eba
|
|
| BLAKE2b-256 |
de243d171dde33c22e9b7b73090a6e5f7fb82b98aacbd2700bde239b7d66a077
|
File details
Details for the file gob-0.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: gob-0.0.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bad4dc96e6c31e6221e2136cf50dbeb5257a67160fccb61c963fe7549d6035df
|
|
| MD5 |
71e877cd1fb344922912afc7f2ebd284
|
|
| BLAKE2b-256 |
2ba91dc40e296c12a6363ddd1562b807201a58d690ce9ec506701fe4fcfbf46c
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fa665a480cb5770dd8d66e88ef4564c53c74d6ff7b5ff5b4cb5f857c882c05d
|
|
| MD5 |
d542b37ff456b4c481a8c2bf8b1a5968
|
|
| BLAKE2b-256 |
28f2e8cad3c3b9ce8e06f8320fbaa55d043bec241488754113e458f60af035c2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b14f89af6a19acc133346d2b8c09c25b8be5d9c40eb8535dcd89422161ec029
|
|
| MD5 |
da592f189550246874bb5f36f6c0b1aa
|
|
| BLAKE2b-256 |
41d63223930ed79b4ce372af10d4bc20e7b6de826a8ff909578a4c2be161c338
|
File details
Details for the file gob-0.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: gob-0.0.5-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 6.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a38b5768ad9ef784ace9eb03ed947cb2ca2d5e18ad672550f0c7494d58a70512
|
|
| MD5 |
96425af66844b77067e5535662c0dd84
|
|
| BLAKE2b-256 |
61b9f361abc0f871fde6fabc5a1f968b56f767226b7e26157f8c9869bd57c1fa
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c56195cec86d02d6536c605bd54488c430b5221308fce9babca0b11fdb5f7167
|
|
| MD5 |
e3dd9fb8b1d653c178e99dfb2b3dd1a1
|
|
| BLAKE2b-256 |
6105ef235e3196c1135bf091ddf3ef4b1879535b0f5bcf63678c72af4a3feea9
|