Decomposition Based Algorithm

class DBA(search_space, f_calls, tree_search, exploration=None, exploitation=None, verbose=True, **kwargs)[source]

Bases: zellij.core.metaheuristic.Metaheuristic

Decomposition-Based-Algorithm (DBA) is made of 5 part:

  • Geometry : DBA uses hyper-spheres or hyper-cubes to decompose the search-space into smaller sub-spaces in a fractal way.

  • Tree search: Fractals are stored in a k-ary rooted tree. The tree search determines how to move inside this tree.

  • Exploration : To explore a fractal, DBA requires an exploration algorithm.

  • Exploitation : At the final fractal level (e.g. a leaf of the rooted tree) DBA performs an exploitation.

  • Scoring method: To score a fractal, DBA can use the best score found, the median, …

search_space

Search space defined as a Geometry. Contains decision variables of the search space, converted to continuous and constrained to an Euclidean Geometry.

Type

Fractal

f_calls

Maximum number of Loss Function calls

Type

int

exploration

Algorithm used to sample inside each subspaces.

Type

{Metaheuristic, list[Metaheuristic]}, default=None

exploitation

Intensification algorithm applied on a subspace at the last level of the partition tree.

Type

Metaheuristic, default=None

tree_search

Tree search algorithm applied on the partition tree.

Type

Tree_search

verbose

Algorithm verbosity

Type

boolean, default=True

evaluate(hypervolumes)[source]

Evaluate a list of fractals using exploration and/or exploitation

run(n_process=1)[source]

Runs DBA

See also

Metaheuristic

Parent class defining what a Metaheuristic is

LossFunc

Describes what a loss function is in Zellij

Searchspace

Describes what a search space is in Zellij

Tree_search

Tree search algorithm to explore and exploit the fractal tree.

Fractal

Base class which defines what a fractal is.

evaluate(hypervolumes, n_process)[source]

Evaluate a list of fractals using exploration and/or exploitation.

Parameters

hypervolumes (list[Fractal]) – list of hypervolumes to evaluate with exploration and/or exploitation

run(n_process=1)[source]

Runs DBA.

Parameters

n_process (int, default=1) – Determine the number of best solution found to return.

Returns

  • best_sol (list[float]) – Returns a list of the n_process best found points to the continuous format

  • best_scores (list[float]) – Returns a list of the n_process best found scores associated to best_sol