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.
- Pure Random Search
- AdaLIPO+
- AdaRankOpt
- Bayesian Optimization
- CMA-ES
- Controlled Random Search
- DIRECT
- Every Call is Precious
- Gradient Descent
- Multi-Level Single-Linkage
- Stein Boltzmann Sampling
- Consensus Based Sampling
Download the corresponding wheel file from the releases and install it with pip:
pip install gob-<version>-<architecture>.whl
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.
This project is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0). See the LICENSE file for details.