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

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.