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, 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.