MOBO Algorithms

Base Class

class algorithm.mobo.mobo.MOBO(problem, algo_cfg)[source]

Bases: object

Base class of MOBO algorithm framework, inherit this class with different specifications to create new algorithm classes.

spec

Algorithm specifications, including ‘surrogate’, ‘acquisition’, ‘solver’ and ‘selection’.

Type

dict

__init__(problem, algo_cfg)[source]

Initialize a MOBO algorithm.

Parameters
  • problem (problem.Problem) – The original / real optimization problem.

  • algo_cfg (dict) – Algorithm configurations.

predict(X_init, Y_init, X_next)[source]

Predict the performance of X_next based on initial data.

Parameters
  • X_init (np.array) – Initial design variables.

  • Y_init (np.array) – Initial performance values.

Returns

  • Y_expected (np.array) – Mean of predicted performance.

  • Y_uncertainty (np.array) – Standard deviation of predicted performance.

solve(X_init, Y_init)[source]

Solve the real multi-objective problem from initial data.

Parameters
  • X_init (np.array) – Initial design variables.

  • Y_init (np.array) – Initial performance values.

Returns

  • X_next (np.array) – Proposed design samples to evaluate next.

  • Y_prediction (tuple) – Containing (Y_expected, Y_uncertainty).

    • Y_expected (np.array): Mean of predicted performance.

    • Y_uncertainty (np.array): Standard deviation of predicted performance.

DGEMO

class algorithm.mobo.algorithms.DGEMO(problem, algo_cfg)[source]

Bases: algorithm.mobo.mobo.MOBO

DGEMO [Luković et al. 2020].

TSEMO

class algorithm.mobo.algorithms.TSEMO(problem, algo_cfg)[source]

Bases: algorithm.mobo.mobo.MOBO

TSEMO [Bradford et al. 2018].

USeMO-EI

class algorithm.mobo.algorithms.USEMO_EI(problem, algo_cfg)[source]

Bases: algorithm.mobo.mobo.MOBO

USeMO [Belakaria and Deshwal 2020], using EI as acquisition.

MOEA/D-EGO

class algorithm.mobo.algorithms.MOEAD_EGO(problem, algo_cfg)[source]

Bases: algorithm.mobo.mobo.MOBO

MOEA/D-EGO [Zhang et al. 2009].

ParEGO

class algorithm.mobo.algorithms.ParEGO(problem, algo_cfg)[source]

Bases: algorithm.mobo.mobo.MOBO

ParEGO [Knowles et al. 2006].

Custom Algorithm Class

class algorithm.mobo.algorithms.Custom(problem, algo_cfg)[source]

Bases: algorithm.mobo.mobo.MOBO

Fully customized algorithms which totally rely on user arguments to specify each component.