Package org.opt4j.optimizers.ea.aeseh
Class ESamplingSurvivorGenerationBasic
- java.lang.Object
-
- org.opt4j.optimizers.ea.aeseh.ESamplingSurvivorGenerationBasic
-
- All Implemented Interfaces:
ESamplingSurvivorGeneration
public class ESamplingSurvivorGenerationBasic extends java.lang.Object implements ESamplingSurvivorGeneration
TheESamplingSurvivorGenerationBasic
implements the basic survivor selection used by the Adaptive ε-sampling and ε-hood for evolutionary many-objective optimization.
-
-
Field Summary
Fields Modifier and Type Field Description protected AdaptiveEpsilon
adaptiveEpsilonSampling
protected EpsilonAdaptation
epsilonAdaption
protected EpsilonMapping
epsilonMapping
protected java.util.Random
random
-
Constructor Summary
Constructors Constructor Description ESamplingSurvivorGenerationBasic(java.util.Random random, EpsilonMapping epsilonMapping, EpsilonAdaptation epsilonAdaption, double epsilonSample, double epsilonSampleDelta, double epsilonSampleDeltaMax, double epsilonSampleDeltaMin)
Basic constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 theIndividual
s with the best values for the individualObjective
.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 ofIndividual
s.
-
-
-
Field Detail
-
random
protected final java.util.Random random
-
epsilonMapping
protected final EpsilonMapping epsilonMapping
-
epsilonAdaption
protected final EpsilonAdaptation epsilonAdaption
-
adaptiveEpsilonSampling
protected final AdaptiveEpsilon adaptiveEpsilonSampling
-
-
Constructor Detail
-
ESamplingSurvivorGenerationBasic
@Inject public ESamplingSurvivorGenerationBasic(java.util.Random random, EpsilonMapping epsilonMapping, EpsilonAdaptation epsilonAdaption, double epsilonSample, double epsilonSampleDelta, double epsilonSampleDeltaMax, double epsilonSampleDeltaMin)
Basic constructor.- Parameters:
epsilonMapping
- anEpsilonMapping
that is used to enhance theObjectives
during the choice of the survivorsepsilonAdaption
- anEpsilonAdaptation
that adjusts the ε valued used for the choice of the survivorsrandom
- theRandom
used for the sampling
-
-
Method Detail
-
getSurvivors
public java.util.Set<org.opt4j.core.Individual> getSurvivors(java.util.Collection<org.opt4j.core.Individual> population, int survivorNumber)
Description copied from interface:ESamplingSurvivorGeneration
Generates the survivors out of the input collection ofIndividual
s.- Specified by:
getSurvivors
in interfaceESamplingSurvivorGeneration
- Parameters:
population
- the current population (union of the parent- and the offspring-sets from the current iteration)survivorNumber
- the number of survivors to create- Returns:
- the survivors (used as the pool for the parent candidates for the next generation)
-
addNonDominatedSurvivors
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.- Parameters:
extremeIndividuals
- theIndividual
s with (positively) extreme values for theirObjective
sfirstFront
- theIndividual
that are not dominated at allsurvivorNumber
- the desired number of survivors
-
applyEpsilonSampling
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.- Parameters:
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 sampling
-
addDominatedSurvivors
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.- Parameters:
survivorNumber
- the desired number of survivorsfronts
- the non-dominated fronts
-
getExtremeIndividuals
protected java.util.Set<org.opt4j.core.Individual> getExtremeIndividuals(java.util.Collection<org.opt4j.core.Individual> firstFront)
Returns theIndividual
s with the best values for the individualObjective
.- Parameters:
firstFront
- the list ofIndividual
s constituting the first non-dominated front- Returns:
- the set of the extreme individuals
-
-