org.opt4j.core.common.archive
Class Crowding
java.lang.Object
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.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Crowding
public Crowding()
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