org.opt4j.core.common.archive
Class Crowding

java.lang.Object
  extended by org.opt4j.core.common.archive.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
Crowding()
           
 
Method Summary
 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