MOBO Algorithms

Base Class

class autooed.mobo.mobo.MOBO(problem, module_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, module_cfg)[source]

Initialize a MOBO algorithm.

Parameters:
  • problem (autooed.problem.Problem) – The optimization problem.
  • module_cfg (dict) – Module configurations. (TODO: clean)
_optimize(X, Y, batch_size)[source]

Synchronous optimization.

_optimize_async(X, Y, X_busy, batch_size)[source]

Asynchronous optimization.

optimize(X, Y, X_busy, batch_size)[source]

Optimize for the next batch of samples given the initial data.

Parameters:
  • X (np.array) – Initial design variables.
  • Y (np.array) – Initial objective values.
  • X_busy (np.array) – Design variables currently being evaluated.
  • batch_size (int) – Batch size.
Returns:

X_next – Proposed design samples to evaluate next.

Return type:

np.array

predict(X, Y, X_next, fit=False)[source]

Predict the performance of X_next based on initial data.

Parameters:
  • X (np.array) – Initial design variables.
  • Y (np.array) – Initial performance values.
  • X_next (np.array) – Next batch of designs to be predicted.
Returns:

  • Y_next_mean (np.array) – Mean of predicted objectives.
  • Y_next_std (np.array) – Standard deviation of predicted objectives.

DGEMO

class autooed.mobo.algorithms.DGEMO(problem, module_cfg)[source]

Bases: autooed.mobo.mobo.MOBO

DGEMO [Luković et al. 2020].

TSEMO

class autooed.mobo.algorithms.TSEMO(problem, module_cfg)[source]

Bases: autooed.mobo.mobo.MOBO

TSEMO [Bradford et al. 2018].

USeMO-EI

class autooed.mobo.algorithms.USEMO_EI(problem, module_cfg)[source]

Bases: autooed.mobo.mobo.MOBO

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

MOEA/D-EGO

class autooed.mobo.algorithms.MOEAD_EGO(problem, module_cfg)[source]

Bases: autooed.mobo.mobo.MOBO

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

ParEGO

class autooed.mobo.algorithms.ParEGO(problem, module_cfg)[source]

Bases: autooed.mobo.mobo.MOBO

ParEGO [Knowles et al. 2006].

Custom Algorithm Class

class autooed.mobo.algorithms.Custom(problem, module_cfg)[source]

Bases: autooed.mobo.mobo.MOBO

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