Class Crowding

  • All Implemented Interfaces:
    FrontDensityIndicator

    public class Crowding
    extends java.lang.Object
    implements FrontDensityIndicator
    The Crowding, see "A fast and elitist multiobjective genetic algorithm : NSGA-II, K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan Evolutionary Computation, IEEETransactions on, vol. 6, no. 2, pp. 182-197, August 2002.", calculates the crowding distance of Individuals as used for instance in the the Nsga2 algorithm. A bounding box around each individual is defined and restricted by the neighboring individuals in each dimension. The crowding distance is the sum of the side-lengths of the bounding box. If an individual does not have neighbors on all sides, the crowding distance is maximal. A normalization in each dimension is applied.
    • Constructor Summary

      Constructors 
      Constructor Description
      Crowding()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Map<Individual,​java.lang.Double> getDensityValues​(java.util.Collection<Individual> individuals)
      Returns the density values for a collection on Individuals.
      java.util.List<Individual> order​(java.util.Map<Individual,​java.lang.Double> values)
      Returns an ordered list of the Individuals corresponding to their crowding distance.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Crowding

        public Crowding()
    • Method Detail

      • order

        public java.util.List<Individual> order​(java.util.Map<Individual,​java.lang.Double> values)
        Returns an ordered list of the Individuals corresponding to their crowding distance. Individuals with a high crowding distance are sorted to the front.
        Parameters:
        values - the map of individuals to their crowding distance values
        Returns:
        the sorted list of individuals based on their crowding distance
      • getDensityValues

        public java.util.Map<Individual,​java.lang.Double> getDensityValues​(java.util.Collection<Individual> individuals)
        Description copied from interface: FrontDensityIndicator
        Returns the density values for a collection on Individuals.
        Specified by:
        getDensityValues in interface FrontDensityIndicator
        Parameters:
        individuals - the individuals
        Returns:
        a map of each individual to its density value