Selection Criteria

Base Class

class algorithm.mobo.selection.base.Selection(batch_size, ref_point=None, **kwargs)[source]

Bases: abc.ABC

Base class of selection method.

__init__(batch_size, ref_point=None, **kwargs)[source]

Initialize a selection method.

Parameters:
  • batch_size (int) – Batch size.
  • ref_point (np.array, default=None) – Reference point.
fit(X, Y)[source]

Fit the parameters of selection method from data.

Parameters:
  • X (np.array) – Design variables.
  • Y (np.array) – Performance values.
abstract select(solution, surrogate_model, normalization, curr_pset, curr_pfront)[source]

Select new samples from the solution obtained by solver (some parameters may not be necessary for some selection criteria).

Parameters:
  • solution (dict) –

    Solution dictionary obtained by solver.

    • solution[‘x’]: design variables of solution
    • solution[‘y’]: acquisition values of solution
    • solution[‘algo’]: solver algorithm, having some relevant information from optimization
  • surrogate_model (mobo.surrogate_model.base.SurrogateModel) – Fitted surrogate model.
  • normalization (mobo.normalization.Normalization) – Data normalization for surrogate model fitting.
  • curr_pset (np.array) – Current pareto set found.
  • curr_pfront (np.array) – Current pareto front found.
Returns:

  • X_next (np.array) – Next batch of samples selected.
  • info (dict) – Other informations need to be stored or exported, None if not necessary.

set_ref_point(ref_point)[source]

Set reference point.

Parameters:ref_point (np.array) – Reference point.

Hypervolume Improvement

class algorithm.mobo.selection.hvi.HVI(batch_size, ref_point=None, **kwargs)[source]

Bases: algorithm.mobo.selection.base.Selection

Selection based on Hypervolume improvement.

select(solution, surrogate_model, normalization, curr_pset, curr_pfront)[source]

Select new samples from the solution obtained by solver (some parameters may not be necessary for some selection criteria).

Parameters:
  • solution (dict) –

    Solution dictionary obtained by solver.

    • solution[‘x’]: design variables of solution
    • solution[‘y’]: acquisition values of solution
    • solution[‘algo’]: solver algorithm, having some relevant information from optimization
  • surrogate_model (mobo.surrogate_model.base.SurrogateModel) – Fitted surrogate model.
  • normalization (mobo.normalization.Normalization) – Data normalization for surrogate model fitting.
  • curr_pset (np.array) – Current pareto set found.
  • curr_pfront (np.array) – Current pareto front found.
Returns:

  • X_next (np.array) – Next batch of samples selected.
  • info (dict) – Other informations need to be stored or exported, None if not necessary.

Uncertainty

class algorithm.mobo.selection.uncertainty.Uncertainty(batch_size, ref_point=None, **kwargs)[source]

Bases: algorithm.mobo.selection.base.Selection

Selection based on uncertainty.

select(solution, surrogate_model, normalization, curr_pset, curr_pfront)[source]

Select new samples from the solution obtained by solver (some parameters may not be necessary for some selection criteria).

Parameters:
  • solution (dict) –

    Solution dictionary obtained by solver.

    • solution[‘x’]: design variables of solution
    • solution[‘y’]: acquisition values of solution
    • solution[‘algo’]: solver algorithm, having some relevant information from optimization
  • surrogate_model (mobo.surrogate_model.base.SurrogateModel) – Fitted surrogate model.
  • normalization (mobo.normalization.Normalization) – Data normalization for surrogate model fitting.
  • curr_pset (np.array) – Current pareto set found.
  • curr_pfront (np.array) – Current pareto front found.
Returns:

  • X_next (np.array) – Next batch of samples selected.
  • info (dict) – Other informations need to be stored or exported, None if not necessary.

Random Selection

class algorithm.mobo.selection.random.Random(batch_size, ref_point=None, **kwargs)[source]

Bases: algorithm.mobo.selection.base.Selection

Random selection.

select(solution, surrogate_model, normalization, curr_pset, curr_pfront)[source]

Select new samples from the solution obtained by solver (some parameters may not be necessary for some selection criteria).

Parameters:
  • solution (dict) –

    Solution dictionary obtained by solver.

    • solution[‘x’]: design variables of solution
    • solution[‘y’]: acquisition values of solution
    • solution[‘algo’]: solver algorithm, having some relevant information from optimization
  • surrogate_model (mobo.surrogate_model.base.SurrogateModel) – Fitted surrogate model.
  • normalization (mobo.normalization.Normalization) – Data normalization for surrogate model fitting.
  • curr_pset (np.array) – Current pareto set found.
  • curr_pfront (np.array) – Current pareto front found.
Returns:

  • X_next (np.array) – Next batch of samples selected.
  • info (dict) – Other informations need to be stored or exported, None if not necessary.

MOEA/D-EGO Selection

class algorithm.mobo.selection.moead_select.MOEADSelect(batch_size, ref_point=None, **kwargs)[source]

Bases: algorithm.mobo.selection.base.Selection

Selection method for MOEA/D-EGO algorithm.

select(solution, surrogate_model, normalization, curr_pset, curr_pfront)[source]

Select new samples from the solution obtained by solver (some parameters may not be necessary for some selection criteria).

Parameters:
  • solution (dict) –

    Solution dictionary obtained by solver.

    • solution[‘x’]: design variables of solution
    • solution[‘y’]: acquisition values of solution
    • solution[‘algo’]: solver algorithm, having some relevant information from optimization
  • surrogate_model (mobo.surrogate_model.base.SurrogateModel) – Fitted surrogate model.
  • normalization (mobo.normalization.Normalization) – Data normalization for surrogate model fitting.
  • curr_pset (np.array) – Current pareto set found.
  • curr_pfront (np.array) – Current pareto front found.
Returns:

  • X_next (np.array) – Next batch of samples selected.
  • info (dict) – Other informations need to be stored or exported, None if not necessary.

DGEMO Selection

class algorithm.mobo.selection.dgemo_select.DGEMOSelect(batch_size, ref_point=None, **kwargs)[source]

Bases: algorithm.mobo.selection.base.Selection

Selection method for DGEMO algorithm.

has_family

Whether the selection method returns family information.

Type:bool, default=True
select(solution, surrogate_model, normalization, curr_pset, curr_pfront)[source]

Select new samples from the solution obtained by solver (some parameters may not be necessary for some selection criteria).

Parameters:
  • solution (dict) –

    Solution dictionary obtained by solver.

    • solution[‘x’]: design variables of solution
    • solution[‘y’]: acquisition values of solution
    • solution[‘algo’]: solver algorithm, having some relevant information from optimization
  • surrogate_model (mobo.surrogate_model.base.SurrogateModel) – Fitted surrogate model.
  • normalization (mobo.normalization.Normalization) – Data normalization for surrogate model fitting.
  • curr_pset (np.array) – Current pareto set found.
  • curr_pfront (np.array) – Current pareto front found.
Returns:

  • X_next (np.array) – Next batch of samples selected.
  • info (dict) – Other informations need to be stored or exported, None if not necessary.