Package org.moeaframework.core.indicator
Class Normalizer
java.lang.Object
org.moeaframework.core.indicator.Normalizer
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 Summary
ConstructorDescriptionNormalizer
(double[] minimum, double[] maximum) Constructs a normalizer for normalizing population so that all objectives reside in the range[0, 1]
.Normalizer
(Population population) Constructs a normalizer for normalizing populations so that all objectives reside in the range[0, 1]
.Normalizer
(Population population, double delta) Constructs a normalizer for normalizing populations so that all objectives reside in the range[0, 1]
.Normalizer
(Population population, double[] referencePoint) Constructs a normalizer for normalizing populations so that all objectives reside in the range[0, 1]
.Normalizer
(Problem problem, double[] minimum, double[] maximum) Deprecated.Normalizer
(Problem problem, Population population) Deprecated.UseNormalizer(Population)
insteadNormalizer
(Problem problem, Population population, double delta) Deprecated.UseNormalizer(Population, double)
insteadNormalizer
(Problem problem, Population population, double[] referencePoint) Deprecated.UseNormalizer(Population, double[])
instead -
Method Summary
Modifier and TypeMethodDescriptionstatic Normalizer
none()
Constructs a normalizer that does not perform any normalization, instead using the objective values as-is.normalize
(NondominatedPopulation population) Returns a new non-dominated population containing the normalized solutions from the specified population.normalize
(Population population) Returns a new population containing the normalized solutions from the specified population.static Normalizer
of
(double[] minimum, double[] maximum) Constructs a normalizer with explicit lower and upper bounds.
-
Constructor Details
-
Normalizer
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.UseNormalizer(Population)
insteadConstructs 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 problempopulation
- 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
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 boundsdelta
- 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.UseNormalizer(Population, double)
insteadConstructs 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 problempopulation
- the population defining the minimum and maximum boundsdelta
- 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
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 boundsreferencePoint
- the reference point; ifnull
, 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.UseNormalizer(Population, double[])
insteadConstructs 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 problempopulation
- the population defining the minimum and maximum boundsreferencePoint
- the reference point; ifnull
, 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 objectivemaximum
- the maximum bounds of each objective
-
Normalizer
Deprecated.UseNormalizer(double[], double[])
insteadConstructs 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 problemminimum
- the minimum bounds of each objectivemaximum
- the maximum bounds of each objective
-
-
Method Details
-
normalize
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
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
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 objectivemaximum
- the maximum bounds of each objective- Returns:
- the constructed normalizer
-
none
Constructs a normalizer that does not perform any normalization, instead using the objective values as-is.- Returns:
- the constructed normalizer
-
Normalizer(double[], double[])
instead