scalarize#

Scalarization methods for reducing multi-output to single-output objectives

Classes

Scalar_Chebyshev(weights[, alpha, augment])

Scalarizes a multi-output response using the augmented Chebyshev function.

Scalar_WeightedNorm(weights[, norm, neg])

Scalarizes a multi-output response using a weighted norm

Scalar_WeightedSum(weights)

Scalarizes a multi-output response using a weighted sum

Scalarization()

Base scalarization objective, which condenses multiple outputs into a single one

class obsidian.objectives.scalarize.Scalar_Chebyshev(weights: list[float], alpha: float = 0.05, augment: bool = True)[source]#

Bases: Scalarization

Scalarizes a multi-output response using the augmented Chebyshev function.

The augmented Chebyshev function maximizes the minimum scaled-response in conjunction with a weighted sum.

Parameters:
  • weights (list[float]) – A list of weights to be applied to the response tensor.

  • alpha (float, optional) – The scaling factor for the weighted sum. Defaults to 0.05.

  • augment (bool, optional) – Flag indicating whether to perform augmentation. Defaults to True.

forward(samples: Tensor, X: Tensor | None = None) Tensor[source]#

Evaluate the objective function on the candidate set samples, X

class obsidian.objectives.scalarize.Scalar_WeightedNorm(weights: list[float], norm: int | None = None, neg: bool = False)[source]#

Bases: Scalarization

Scalarizes a multi-output response using a weighted norm

Parameters:
  • weights (list[float]) – A list of weights to be applied to the response tensor.

  • norm (int or None, optional) – The order of vector norm to be used. If None is provided, the p-norm will be used

  • neg (bool, optional) – Whether or not to return the negative norm, which is required for maximizing norms based on distance to a target (utopian point).

forward(samples: Tensor, X: Tensor | None = None) Tensor[source]#

Evaluate the objective function on the candidate set samples, X

class obsidian.objectives.scalarize.Scalar_WeightedSum(weights: list[float])[source]#

Bases: Scalarization

Scalarizes a multi-output response using a weighted sum

Parameters:

weights (list[float]) – A list of weights to be applied to the response tensor.

forward(samples: Tensor, X: Tensor | None = None) Tensor[source]#

Evaluate the objective function on the candidate set samples, X

class obsidian.objectives.scalarize.Scalarization[source]#

Bases: Objective

Base scalarization objective, which condenses multiple outputs into a single one

Always a single-output objective.