JavaScript is disabled on your browser.
Skip navigation links
ec.multiobjective

Class 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.
    Author:
    Eric O. Scott
    See Also:
    Serialized Form
    • Field Detail

      • referencePoint

        private double[] referencePoint
    • Constructor Detail

      • HypervolumeStatistics

        public HypervolumeStatistics()
    • Method Detail

      • 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
      • 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.
      • exclusiveHypervolume

        private static double exclusiveHypervolume(ArrayList<Individual> paretoFront,
         int indID,
         double[] referencePoint)
        Compute the exclusive hypervolume of the indIDth element of a collection of points against the elements whose ID is greater than indID. Note that this does not compute the exclusive hypervolume with respect to *every* other element in the collection, but only the elements that follow indID!
      • 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.
      • limitSet

        private static ArrayList<Individual> limitSet(ArrayList<Individual> paretoFront,
         int indID,
         double[] referencePoint)
        Compute a set of points that define the boundary of the *intersection* between an individual's inclusive hypervolume and the area dominated by all the points in the front that follow indID (i.e. that have an index greater than indID).
Skip navigation links

Copyright © 2019. All rights reserved.

AltStyle によって変換されたページ (->オリジナル) /