Implement the Chebyshev Scalarization.

Inherits From: Scalarizer

Given a vector of (at least two) objectives M, a weight vector W, and a reference point Z, all having the same dimension, the Chebyshev scalarization is defined as:

min_{i} W_i * (M_i - Z_i).

Note that reference point Z is expected to be dominated by all Pareto-optimal objective vectors.

weights A Sequence of weights.
reference_point A Sequence of coordinates for the reference point.

TypeError if not isinstance(weights, Sequence).
TypeError if not isinstance(reference_point, Sequence).
ValueError if len(weights) != len(reference_point).



View source

Implementation of scalarization logic by subclasses.


View source

Set the scalarization parameters for the ChebyshevScalarizer.

weights A rank-2 tf.Tensor of weights shaped as [batch_size, self._num_of_objectives], where batch_size should match the batch size of the multi_objectives passed to the scalarizer call.
reference_point A tf.Tensor of coordinates for the reference point that must satisfy the same rank and shape requirements as weights.

ValueError if any input scalarization parameter tensor is not rank-2, or has a last dimension size that does not match self._num_of_objectives.


View source

Returns a single reward by scalarizing multiple objectives.

multi_objectives A Tensor of shape [batch_size, number_of_objectives], where each column represents an objective.

Returns: A Tensor of shape [batch_size] representing scalarized rewards.

ValueError if multi_objectives.shape.rank != 2.
ValueError if multi_objectives.shape.dims[1] != self._num_of_objectives.