Class Normalizer

java.lang.Object
org.moeaframework.core.indicator.Normalizer

public class Normalizer extends Object
Normalizes populations so that all objectives reside in the range [0, 1]. This normalization ignores infeasible solutions, so the resulting normalized population contains only feasible solutions. A reference set should be used to ensure the normalization is uniformly applied.
  • Constructor Details

    • Normalizer

      public Normalizer(Population population)
      Constructs a normalizer for normalizing populations so that all objectives reside in the range [0, 1]. This constructor derives the minimum and maximum bounds from the given population.
      Parameters:
      population - the population defining the minimum and maximum bounds
      Throws:
      IllegalArgumentException - if the population set contains fewer than two solutions, or if there exists an objective with an empty range
    • Normalizer

      @Deprecated public Normalizer(Problem problem, Population population)
      Deprecated.
      Constructs a normalizer for normalizing populations so that all objectives reside in the range [0, 1]. This constructor derives the minimum and maximum bounds from the given population.
      Parameters:
      problem - the problem
      population - the population defining the minimum and maximum bounds
      Throws:
      IllegalArgumentException - if the population set contains fewer than two solutions, or if there exists an objective with an empty range
    • Normalizer

      public Normalizer(Population population, double delta)
      Constructs a normalizer for normalizing populations so that all objectives reside in the range [0, 1]. This constructor derives the minimum and maximum bounds from the given population and a given delta. This delta offsets the maximum bounds, typically for hypervolume calculations, to ensure there is a non-zero distance between the extremal points and the reference point.
      Parameters:
      population - the population defining the minimum and maximum bounds
      delta - a delta added to the maximum value
      Throws:
      IllegalArgumentException - if the population set contains fewer than two solutions, or if there exists an objective with an empty range
    • Normalizer

      @Deprecated public Normalizer(Problem problem, Population population, double delta)
      Deprecated.
      Constructs a normalizer for normalizing populations so that all objectives reside in the range [0, 1]. This constructor derives the minimum and maximum bounds from the given population and a given delta. This delta offsets the maximum bounds, typically for hypervolume calculations, to ensure there is a non-zero distance between the extremal points and the reference point.
      Parameters:
      problem - the problem
      population - the population defining the minimum and maximum bounds
      delta - a delta added to the maximum value
      Throws:
      IllegalArgumentException - if the population set contains fewer than two solutions, or if there exists an objective with an empty range
    • Normalizer

      public Normalizer(Population population, double[] referencePoint)
      Constructs a normalizer for normalizing populations so that all objectives reside in the range [0, 1]. This constructor derives the minimum and maximum bounds from the given population and a given reference point. This is typically used by hypervolume calculations, which measures the volume of spacing between each solution and the reference point.
      Parameters:
      population - the population defining the minimum and maximum bounds
      referencePoint - the reference point; if null, the bounds are based on the population
      Throws:
      IllegalArgumentException - if the population set contains fewer than two solutions, or if there exists an objective with an empty range
    • Normalizer

      @Deprecated public Normalizer(Problem problem, Population population, double[] referencePoint)
      Deprecated.
      Constructs a normalizer for normalizing populations so that all objectives reside in the range [0, 1]. This constructor derives the minimum and maximum bounds from the given population and a given reference point. This is typically used by hypervolume calculations, which measures the volume of spacing between each solution and the reference point.
      Parameters:
      problem - the problem
      population - the population defining the minimum and maximum bounds
      referencePoint - the reference point; if null, the bounds are based on the population
      Throws:
      IllegalArgumentException - if the population set contains fewer than two solutions, or if there exists an objective with an empty range
    • Normalizer

      public Normalizer(double[] minimum, double[] maximum)
      Constructs a normalizer for normalizing population so that all objectives reside in the range [0, 1]. This constructor allows defining the minimum and maximum bounds explicitly.
      Parameters:
      minimum - the minimum bounds of each objective
      maximum - the maximum bounds of each objective
    • Normalizer

      @Deprecated public Normalizer(Problem problem, double[] minimum, double[] maximum)
      Deprecated.
      Constructs a normalizer for normalizing population so that all objectives reside in the range [0, 1]. This constructor allows defining the minimum and maximum bounds explicitly.
      Parameters:
      problem - the problem
      minimum - the minimum bounds of each objective
      maximum - the maximum bounds of each objective
  • Method Details

    • normalize

      public NondominatedPopulation normalize(NondominatedPopulation population)
      Returns a new non-dominated population containing the normalized solutions from the specified population.
      Parameters:
      population - the population
      Returns:
      a new non-dominated population containing the normalized solutions from the specified population
    • normalize

      public Population normalize(Population population)
      Returns a new population containing the normalized solutions from the specified population.
      Parameters:
      population - the population
      Returns:
      a new population containing the normalized solutions from the specified population
    • of

      public static Normalizer of(double[] minimum, double[] maximum)
      Constructs a normalizer with explicit lower and upper bounds. Note that if the length of the given arrays does not match the required number of objectives, the last value is repeated for all remaining objectives.
      Parameters:
      minimum - the minimum bounds of each objective
      maximum - the maximum bounds of each objective
      Returns:
      the constructed normalizer
    • none

      public static Normalizer none()
      Constructs a normalizer that does not perform any normalization, instead using the objective values as-is.
      Returns:
      the constructed normalizer