Class PISAHypervolume

java.lang.Object
org.moeaframework.core.indicator.NormalizedIndicator
org.moeaframework.core.indicator.PISAHypervolume
All Implemented Interfaces:
Indicator

public class PISAHypervolume extends NormalizedIndicator
Hypervolume indicator as implemented by the PISA library. This version is computationally expensive and is being replaced by WFGNormalizedHypervolume.
  • Constructor Details

    • PISAHypervolume

      public PISAHypervolume(Problem problem, NondominatedPopulation referenceSet)
      Constructs a hypervolume evaluator for the specified problem and reference set. See Hypervolume.getNormalizer(Problem, NondominatedPopulation) for details on configuring normalization.
      Parameters:
      problem - the problem
      referenceSet - the reference set
    • PISAHypervolume

      public PISAHypervolume(Problem problem, NondominatedPopulation referenceSet, double[] referencePoint)
      Constructs a hypervolume evaluator for the specified problem using the given reference set and reference point.
      Parameters:
      problem - the problem
      referenceSet - the reference set
      referencePoint - the reference point
    • PISAHypervolume

      public PISAHypervolume(Problem problem, double[] minimum, double[] maximum)
      Constructs a hypervolume evaluator for the specified problem using the given minimum and maximum bounds.
      Parameters:
      problem - the problem
      minimum - the minimum bounds of the set
      maximum - the maximum bounds of the set
  • Method Details

    • invert

      protected static void invert(Problem problem, Solution solution)
      Inverts the objective values since this hypervolume algorithm operates on maximization problems.
      Parameters:
      problem - the problem
      solution - the solution to be inverted
    • calculateHypervolume

      public static double calculateHypervolume(List<Solution> population, int numberOfSolutions, int numberOfObjectives)
      The internal, un-normalized hypervolume calculation. While this method is public, we do not encourage its use since incorrect arguments can cause unexpected behavior. Instead, use the PISAHypervolume(org.moeaframework.core.Problem,org.moeaframework.core.NondominatedPopulation) constructor to create a normalizing version of the hypervolume calculation.
      Parameters:
      population - the population
      numberOfSolutions - the number of solutions
      numberOfObjectives - the number of objectives
      Returns:
      the hypervolume metric
    • evaluate

      public double evaluate(NondominatedPopulation approximationSet)
      Description copied from interface: Indicator
      Returns the value of this unary quality indicator given the specified non-dominated population.
      Parameters:
      approximationSet - the non-dominated population to be evaluated
      Returns:
      the value of this quality indicator given the specified non-dominated population