public class ESamplingSurvivorGenerationBasic extends java.lang.Object implements ESamplingSurvivorGeneration
ESamplingSurvivorGenerationBasic
implements the basic survivor
selection used by the Adaptive ε-sampling and ε-hood for evolutionary
many-objective optimization.Modifier and Type | Field and Description |
---|---|
protected AdaptiveEpsilon |
adaptiveEpsilonSampling |
protected EpsilonAdaptation |
epsilonAdaption |
protected EpsilonMapping |
epsilonMapping |
protected java.util.Random |
random |
Constructor and Description |
---|
ESamplingSurvivorGenerationBasic(java.util.Random random,
EpsilonMapping epsilonMapping,
EpsilonAdaptation epsilonAdaption,
double epsilonSample,
double epsilonSampleDelta,
double epsilonSampleDeltaMax,
double epsilonSampleDeltaMin)
Basic constructor.
|
Modifier and Type | Method and Description |
---|---|
protected java.util.Set<org.opt4j.core.Individual> |
addDominatedSurvivors(int survivorNumber,
NonDominatedFronts fronts)
In the case where the first non-dominated front does not suffice to
create enough survivors, dominated solutions are added to the survivor
pool.
|
protected java.util.Set<org.opt4j.core.Individual> |
addNonDominatedSurvivors(java.util.Collection<org.opt4j.core.Individual> extremeIndividuals,
java.util.Collection<org.opt4j.core.Individual> firstFront,
int survivorNumber)
Creates the survivor pool by adding the ε-sampled individuals to the
extreme individuals.
|
protected void |
applyEpsilonSampling(java.util.List<org.opt4j.core.Individual> firstFront,
java.util.Set<org.opt4j.core.Individual> epsilonDominantIndividuals,
java.util.Set<org.opt4j.core.Individual> epsilonDominatedIndividuals,
double samplingEpsilon)
Applies ε-sampling by dividing the given individuals into the two sets of
ε-dominant and ε-dominated individuals.
|
protected java.util.Set<org.opt4j.core.Individual> |
getExtremeIndividuals(java.util.Collection<org.opt4j.core.Individual> firstFront)
Returns the
Individual s with the best values for the individual
Objective . |
java.util.Set<org.opt4j.core.Individual> |
getSurvivors(java.util.Collection<org.opt4j.core.Individual> population,
int survivorNumber)
Generates the survivors out of the input collection of
Individual s. |
protected final java.util.Random random
protected final EpsilonMapping epsilonMapping
protected final EpsilonAdaptation epsilonAdaption
protected final AdaptiveEpsilon adaptiveEpsilonSampling
@Inject public ESamplingSurvivorGenerationBasic(java.util.Random random, EpsilonMapping epsilonMapping, EpsilonAdaptation epsilonAdaption, double epsilonSample, double epsilonSampleDelta, double epsilonSampleDeltaMax, double epsilonSampleDeltaMin)
epsilonMapping
- an EpsilonMapping
that is used to enhance the
Objectives
during the choice of the survivorsepsilonAdaption
- an EpsilonAdaptation
that adjusts the ε valued used
for the choice of the survivorsrandom
- the Random
used for the samplingpublic java.util.Set<org.opt4j.core.Individual> getSurvivors(java.util.Collection<org.opt4j.core.Individual> population, int survivorNumber)
ESamplingSurvivorGeneration
Individual
s.getSurvivors
in interface ESamplingSurvivorGeneration
population
- the current population (union of the parent- and the
offspring-sets from the current iteration)survivorNumber
- the number of survivors to createprotected java.util.Set<org.opt4j.core.Individual> addNonDominatedSurvivors(java.util.Collection<org.opt4j.core.Individual> extremeIndividuals, java.util.Collection<org.opt4j.core.Individual> firstFront, int survivorNumber)
extremeIndividuals
- the Individual
s with (positively) extreme values for
their Objective
sfirstFront
- the Individual
that are not dominated at allsurvivorNumber
- the desired number of survivorsprotected void applyEpsilonSampling(java.util.List<org.opt4j.core.Individual> firstFront, java.util.Set<org.opt4j.core.Individual> epsilonDominantIndividuals, java.util.Set<org.opt4j.core.Individual> epsilonDominatedIndividuals, double samplingEpsilon)
firstFront
- the input individuals which constitute the first non-dominated
front of the current populationepsilonDominantIndividuals
- the set that will be filled with the epsilon-dominant
individualsepsilonDominatedIndividuals
- the set that will be filled with epsilon-dominated individualssamplingEpsilon
- the value used for the epsilon samplingprotected java.util.Set<org.opt4j.core.Individual> addDominatedSurvivors(int survivorNumber, NonDominatedFronts fronts)
survivorNumber
- the desired number of survivorsfronts
- the non-dominated frontsprotected java.util.Set<org.opt4j.core.Individual> getExtremeIndividuals(java.util.Collection<org.opt4j.core.Individual> firstFront)
Individual
s with the best values for the individual
Objective
.firstFront
- the list of Individual
s constituting the first
non-dominated front