Package ec.multiobjective

# Class HypervolumeStatistics

java.lang.Object
ec.Statistics
ec.simple.SimpleStatistics
ec.multiobjective.HypervolumeStatistics

All Implemented Interfaces:
  `Setup`, `Singleton`, `SteadyStateStatisticsForm`, `Serializable`

public class HypervolumeStatistics extends SimpleStatistics
Measures the hypervolume of a population's Pareto front. Our implementation follows the WFG algorithm, described in Lyndon While, Lucas Bradstreet, and Luigi Barone, "A Fast Way of Calculating Exact Hypervolumes," IEEE Transactions on Evolutionary Computation, 16 (1), February, 2012.

See Also:
  - Serialized Form

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `P_REFERENCE_POINT`

  ### Fields inherited from class ec.simple.SimpleStatistics

  `best_of_run, compress, doDescription, doFinal, doGeneration, doMessage, doPerGenerationDescription, P_COMPRESS, P_DO_DESCRIPTION, P_DO_FINAL, P_DO_GENERATION, P_DO_MESSAGE, P_DO_PER_GENERATION_DESCRIPTION, P_STATISTICS_FILE, statisticslog`

  ### Fields inherited from class ec.Statistics

  `children, P_CHILD, P_MUZZLE, P_NUMCHILDREN, P_SILENT, P_SILENT_FILE, P_SILENT_PRINT, silentFile, silentPrint`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `HypervolumeStatistics()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `finalStatistics(EvolutionState state, int result)`
  Logs the best individual of the run.
  `double[]`
  `getReferencePoint()`
  `double`
  `hypervolume(ArrayList<Individual> paretoFront)`
  Compute the hypervolume of the Pareto front induced by a collection of points, relative to the reference point that was provided to this class's setup() method.
  `static double`
  `hypervolume(ArrayList<Individual> paretoFront, double[] referencePoint)`
  Compute the hypervolume of the Pareto front induced by a collection of points, relative to the provided reference point.
  `double`
  `inclusiveHypervolume(Individual ind)`
  Compute the hypervolume covered by a single individual, relative to the reference point that was provided to this class's setup() method.
  `static double`
  `inclusiveHypervolume(Individual ind, double[] referencePoint)`
  Compute the hypervolume covered by a single individual, relative to the provided reference point.
  `void`
  `postEvaluationStatistics(EvolutionState state)`
  GENERATIONAL: Called immediately after evaluation occurs.
  `void`
  `setup(EvolutionState state, Parameter base)`
  Sets up the object by reading it from the parameters stored in state, built off of the parameter base base.

  ### Methods inherited from class ec.simple.SimpleStatistics

  `bypassFinalStatistics, bypassPostEvaluationStatistics, getBestSoFar, postInitializationStatistics`

  ### Methods inherited from class ec.Statistics

  `enteringInitialPopulationStatistics, enteringSteadyStateStatistics, generationBoundaryStatistics, individualsBredStatistics, individualsEvaluatedStatistics, postBreedingStatistics, postCheckpointStatistics, postPostBreedingExchangeStatistics, postPreBreedingExchangeStatistics, preBreedingStatistics, preCheckpointStatistics, preEvaluationStatistics, preInitializationStatistics, prePostBreedingExchangeStatistics, prePreBreedingExchangeStatistics`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface ec.steadystate.SteadyStateStatisticsForm

  `enteringInitialPopulationStatistics, enteringSteadyStateStatistics, generationBoundaryStatistics, individualsBredStatistics, individualsEvaluatedStatistics, postCheckpointStatistics, postPostBreedingExchangeStatistics, postPreBreedingExchangeStatistics, preCheckpointStatistics, prePostBreedingExchangeStatistics, prePreBreedingExchangeStatistics`

- ## Field Details

  - ### P_REFERENCE_POINT

    public static final String P_REFERENCE_POINT
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### HypervolumeStatistics

    public HypervolumeStatistics()

- ## Method Details

  - ### getReferencePoint

    public double[] getReferencePoint()

  - ### setup

    public void setup(EvolutionState state, Parameter base)
    Description copied from interface: `Setup`
    Sets up the object by reading it from the parameters stored in state, built off of the parameter base base. If an ancestor implements this method, be sure to call super.setup(state,base); before you do anything else.
    Specified by:
      `setup` in interface `Setup`
    Overrides:
      `setup` in class `SimpleStatistics`

  - ### postEvaluationStatistics

    public void postEvaluationStatistics(EvolutionState state)
    Description copied from class: `Statistics`
    GENERATIONAL: Called immediately after evaluation occurs.
    Overrides:
      `postEvaluationStatistics` in class `SimpleStatistics`

  - ### hypervolume

    public double hypervolume(ArrayList<Individual> paretoFront)
    Compute the hypervolume of the Pareto front induced by a collection of points, relative to the reference point that was provided to this class's setup() method.

  - ### hypervolume

    public static double hypervolume(ArrayList<Individual> paretoFront, double[] referencePoint)
    Compute the hypervolume of the Pareto front induced by a collection of points, relative to the provided reference point.

  - ### inclusiveHypervolume

    public double inclusiveHypervolume(Individual ind)
    Compute the hypervolume covered by a single individual, relative to the reference point that was provided to this class's setup() method.

  - ### inclusiveHypervolume

    public static double inclusiveHypervolume(Individual ind, double[] referencePoint)
    Compute the hypervolume covered by a single individual, relative to the provided reference point.

  - ### finalStatistics

    public void finalStatistics(EvolutionState state, int result)
    Logs the best individual of the run.
    Specified by:
      `finalStatistics` in interface `SteadyStateStatisticsForm`
    Overrides:
      `finalStatistics` in class `SimpleStatistics`