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.