public class Nsga2 extends java.lang.Object implements Selector
Nsga2
Selector
, see "A Fast Elitist Non-Dominated Sorting
Genetic Algorithm for Multi-Objective Optimization: NSGA-II, K. Deb, Samir
Agrawal, Amrit Pratap, and T. Meyarivan, Parallel MockProblem Solving from
Nature, 2000".Nsga2Module
Modifier and Type | Field and Description |
---|---|
protected org.opt4j.core.common.archive.FrontDensityIndicator |
indicator |
protected java.util.Random |
random |
protected int |
tournament |
Constructor and Description |
---|
Nsga2(org.opt4j.core.common.random.Rand random,
int tournament,
org.opt4j.core.common.archive.FrontDensityIndicator indicator)
|
Modifier and Type | Method and Description |
---|---|
java.util.List<java.util.List<org.opt4j.core.Individual>> |
fronts(java.util.Collection<org.opt4j.core.Individual> individuals)
Evaluate the fronts and set the correspondent rank values.
|
java.util.Collection<org.opt4j.core.Individual> |
getLames(int size,
java.util.Collection<org.opt4j.core.Individual> population)
Selects a subset of
lambda Individual s and returns it as
a new Collection . |
java.util.Collection<org.opt4j.core.Individual> |
getParents(int mu,
java.util.Collection<org.opt4j.core.Individual> population)
Selects a subset of
Individual s and returns it as a new
Collection . |
protected java.util.Map<org.opt4j.core.Individual,java.lang.Integer> |
getRank(java.util.List<java.util.List<org.opt4j.core.Individual>> fronts)
Determine the ranks of fronts.
|
void |
init(int maxsize)
Sets the maximal number of
Individual s. |
protected final java.util.Random random
protected final int tournament
protected final org.opt4j.core.common.archive.FrontDensityIndicator indicator
@Inject public Nsga2(org.opt4j.core.common.random.Rand random, int tournament, org.opt4j.core.common.archive.FrontDensityIndicator indicator)
random
- the random number generatortournament
- the tournament valuepublic void init(int maxsize)
Selector
Individual
s.public java.util.Collection<org.opt4j.core.Individual> getParents(int mu, java.util.Collection<org.opt4j.core.Individual> population)
Selector
Individual
s and returns it as a new
Collection
. These so called parents can be used to form the next
generation.getParents
in interface Selector
mu
- the number of parents to selectpopulation
- the list of individualspublic java.util.Collection<org.opt4j.core.Individual> getLames(int size, java.util.Collection<org.opt4j.core.Individual> population)
Selector
lambda
Individual
s and returns it as
a new Collection
. These individuals can be erased in the next
generation.protected java.util.Map<org.opt4j.core.Individual,java.lang.Integer> getRank(java.util.List<java.util.List<org.opt4j.core.Individual>> fronts)
fronts
- the frontspublic java.util.List<java.util.List<org.opt4j.core.Individual>> fronts(java.util.Collection<org.opt4j.core.Individual> individuals)
individuals
- the individuals