The Black-Box Discrete Optimization Benchmarks
BB-DOB requires:
- Python >= 3.6
Install BB-DOB
from the sources:
git clone https://github.com/e5120/BB-DOB
cd BB-DOB
pip install -r requirements.txt
pip install -e .
The search space is D-dimensional bit-strings c โ {0,1}D.
-
- y is D-dimensional bit-strings which is generated randomly in advance.
-
- o(c) is the number of contiguous ones starting in Position 1.
- z(c) is the number of contiguous zeros ending in Position D.
- if o(c) > T and z(c) > T, then REWARD is D, else REWARD is 0.
- T is a user parameter.
-
Deceptive-k Trap: There is a user parameter k which determines the number of dependencies of each variable.
- where k = 3 and d is a user parameter
The example is shown below.
In this example, the input x
to the function is randomly generated.
The variable evals
indicates the evaluation value of each vector and the variable info
includes information related to calculating the evaluation value for some problems such as Four-peaks function.
>>> import numpy as np
>>> from bbdob import OneMax
>>> from bbdob.utils import idx2one_hot
>>> dimension = 5
>>> objective = OneMax(dimension, minimize=True)
>>> x = np.random.randint(0, 2, (3, dimension))
>>> x
array([[0, 1, 1, 0, 1],
[1, 0, 0, 0, 1],
[0, 1, 0, 0, 0]])
>>> x = idx2one_hot(x, 2)
>>> x
array([[[1, 0],
[0, 1],
[0, 1],
[1, 0],
[0, 1]],
[[0, 1],
[1, 0],
[1, 0],
[1, 0],
[0, 1]],
[[1, 0],
[0, 1],
[1, 0],
[1, 0],
[1, 0]]])
>>> evals, info = objective(x)
>>> evals
array([-3, -2, -1])
>>> info
{}