class_docstr: Implement the Chebyshev Scalarization.
  
  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.
class_docstr_tok: ["Implement","the","Chebyshev","Scalarization",".","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","."]
docstr: Initialize the ChebyshevScalarizer.
  
  Args:
    weights: A `Sequence` of weights.
    reference_point: A `Sequence` of coordinates for the reference point.
  
  Raises:
    ValueError: if `len(weights) != len(reference_point)`.
docstr_tok: ["Initialize","the","ChebyshevScalarizer",".","Args",":","weights",":","A","`","Sequence","`","of","weights",".","reference_point",":","A","`","Sequence","`","of","coordinates","for","the","reference","point",".","Raises",":","ValueError",":","if","`","len","(","weights",")","!","=","len","(","reference_point",")","`","."]
code: def __init__(
      self,
      weights: Sequence[ScalarFloat],
      reference_point: Sequence[ScalarFloat],
  ):
      """Initialize the ChebyshevScalarizer.
  
      Args:
        weights: A `Sequence` of weights.
        reference_point: A `Sequence` of coordinates for the reference point.
  
      Raises:
        ValueError: if `len(weights) != len(reference_point)`.
      """
      if len(weights) != len(reference_point):
          raise ValueError(
              "weights has {} elements but reference_point has {}.".format(
                  len(weights), len(reference_point)
              )
          )
      self._weights = copy.deepcopy(weights)
      self._reference_point = reference_point
      super(ChebyshevScalarizer, self).__init__(len(self._weights))
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import abc
  import copy
  from typing import Callable, Dict, NamedTuple, Optional, Sequence, Union
  import numpy
  import six
  import tensorflow.compat.v2
label_desc: Use image node_id 1 to create a new ChebyshevScalarizer object from inherited base classes: Scalarizer with example: obj = ChebyshevScalarizer(weights, reference_point)