tomoyuki-hiranuma / BB-DOB

The Black-Box Discrete Optimization Benchmark

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BB-DOB

The Black-Box Discrete Optimization Benchmarks

Setup

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 .

Features

The search space is D-dimensional bit-strings c ∈ {0,1}D.

  • One-Max:

  • Two-Min:

    • y is D-dimensional bit-strings which is generated randomly in advance.
  • Four-peaks:

    • 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
  • NK-landscape

  • W-Model

Usage

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
{}

About

The Black-Box Discrete Optimization Benchmark

License:MIT License


Languages

Language:Python 100.0%