Selection Criteria

Base Class

class autooed.mobo.selection.base.Selection(surrogate_model, **kwargs)[source]

Bases: abc.ABC

Base class of selection method.

__init__(surrogate_model, **kwargs)[source]

Initialize a selection method.

abstract _select(X_candidate, Y_candidate, X, Y, batch_size)[source]

Select new samples from the solution obtained by solver.

Parameters:
  • X_candidate (np.array) – Candidate design samples (continuous).
  • Y_candidate (np.array) – Objective values of candidate design samples.
  • X (np.array) – Current design samples (continuous).
  • Y (np.array) – Objective values of current design samples.
  • batch_size (int) – Batch size.
Returns:

X_next – Next batch of samples selected (continuous).

Return type:

np.array

select(X_candidate, Y_candidate, X, Y, batch_size)[source]

Select the next batch of design samples to evaluate from proposed candidates.

Parameters:
  • X_candidate (np.array) – Candidate design samples (raw).
  • Y_candidate (np.array) – Objective values of candidate design samples.
  • X (np.array) – Current design samples (raw).
  • Y (np.array) – Objective values of current design samples.
  • batch_size (int) – Batch size.
Returns:

X_next – Next batch of samples selected (raw).

Return type:

np.array

Direct Selection

class autooed.mobo.selection.direct.Direct(surrogate_model, **kwargs)[source]

Bases: autooed.mobo.selection.base.Selection

Directly use candidate designs as selected designs.

_select(X_candidate, Y_candidate, X, Y, batch_size)[source]

Select new samples from the solution obtained by solver.

Parameters:
  • X_candidate (np.array) – Candidate design samples (continuous).
  • Y_candidate (np.array) – Objective values of candidate design samples.
  • X (np.array) – Current design samples (continuous).
  • Y (np.array) – Objective values of current design samples.
  • batch_size (int) – Batch size.
Returns:

X_next – Next batch of samples selected (continuous).

Return type:

np.array

Hypervolume Improvement

class autooed.mobo.selection.hvi.HypervolumeImprovement(surrogate_model, **kwargs)[source]

Bases: autooed.mobo.selection.base.Selection

Selection based on Hypervolume improvement.

_select(X_candidate, Y_candidate, X, Y, batch_size)[source]

Select new samples from the solution obtained by solver.

Parameters:
  • X_candidate (np.array) – Candidate design samples (continuous).
  • Y_candidate (np.array) – Objective values of candidate design samples.
  • X (np.array) – Current design samples (continuous).
  • Y (np.array) – Objective values of current design samples.
  • batch_size (int) – Batch size.
Returns:

X_next – Next batch of samples selected (continuous).

Return type:

np.array

Random Selection

class autooed.mobo.selection.random.Random(surrogate_model, **kwargs)[source]

Bases: autooed.mobo.selection.base.Selection

Selection by random sampling.

_select(X_candidate, Y_candidate, X, Y, batch_size)[source]

Select new samples from the solution obtained by solver.

Parameters:
  • X_candidate (np.array) – Candidate design samples (continuous).
  • Y_candidate (np.array) – Objective values of candidate design samples.
  • X (np.array) – Current design samples (continuous).
  • Y (np.array) – Objective values of current design samples.
  • batch_size (int) – Batch size.
Returns:

X_next – Next batch of samples selected (continuous).

Return type:

np.array

Uncertainty

class autooed.mobo.selection.uncertainty.Uncertainty(surrogate_model, **kwargs)[source]

Bases: autooed.mobo.selection.base.Selection

Selection based on uncertainty.

_select(X_candidate, Y_candidate, X, Y, batch_size)[source]

Select new samples from the solution obtained by solver.

Parameters:
  • X_candidate (np.array) – Candidate design samples (continuous).
  • Y_candidate (np.array) – Objective values of candidate design samples.
  • X (np.array) – Current design samples (continuous).
  • Y (np.array) – Objective values of current design samples.
  • batch_size (int) – Batch size.
Returns:

X_next – Next batch of samples selected (continuous).

Return type:

np.array