public class NonDominatedAndCrowdingDistanceSelector extends java.lang.Object implements ISelectNextPopulation
Constructor and Description |
---|
NonDominatedAndCrowdingDistanceSelector() |
Modifier and Type | Method and Description |
---|---|
static void |
crowdingDistanceAssignment(java.util.List<InstanceData> front,
java.util.List<IObjective> objectives)
Executes the crowding distance assignment for the specified InstanceDatas (for a Front).
|
static int |
dominates(InstanceData i1,
InstanceData i2,
ObjectiveComparatorHelper helper)
Compares the two instances by the number of constraint violations and the objectives.
|
boolean |
filtersDuplicates() |
static java.util.LinkedList<java.util.LinkedList<InstanceData>> |
nonDominatedSort(java.util.Collection<InstanceData> population,
java.util.List<IObjective> objectives,
ObjectiveComparatorHelper helper,
boolean calcCrowdingDistanceForEachFront)
Makes a fast non-domination sort of the specified InstanceDatas.
|
java.util.List<InstanceData> |
selectNextPopulation(java.util.Collection<InstanceData> currentPopulation,
java.util.List<IObjective> objectives,
int numberOfSelectedInstances,
boolean finalSelection,
ObjectiveComparatorHelper helper,
boolean calcCrowdingDistanceForEachFront) |
static InstanceData[] |
sortByCrowdingDistance(java.util.List<InstanceData> InstanceDatas)
Returns the specified InstanceDatas sorted in ascending order by the crowding distance value.
|
public NonDominatedAndCrowdingDistanceSelector()
public java.util.List<InstanceData> selectNextPopulation(java.util.Collection<InstanceData> currentPopulation, java.util.List<IObjective> objectives, int numberOfSelectedInstances, boolean finalSelection, ObjectiveComparatorHelper helper, boolean calcCrowdingDistanceForEachFront)
selectNextPopulation
in interface ISelectNextPopulation
public boolean filtersDuplicates()
filtersDuplicates
in interface ISelectNextPopulation
public static java.util.LinkedList<java.util.LinkedList<InstanceData>> nonDominatedSort(java.util.Collection<InstanceData> population, java.util.List<IObjective> objectives, ObjectiveComparatorHelper helper, boolean calcCrowdingDistanceForEachFront)
population
- InstanceDatas to sortpublic static int dominates(InstanceData i1, InstanceData i2, ObjectiveComparatorHelper helper)
i1
- i2
- objectives
- The objective comparator helper.public static void crowdingDistanceAssignment(java.util.List<InstanceData> front, java.util.List<IObjective> objectives)
front
- InstanceDatas //all the specified InstanceDatas must belong to the same frontpublic static InstanceData[] sortByCrowdingDistance(java.util.List<InstanceData> InstanceDatas)
InstanceDatas
- InstanceDatas to sort