public class EpsilonNeighborhoodCoupler extends java.lang.Object implements Coupler
EpsilonNeighborhoodCoupler
implements a parent selection process
based on by the ε-neighborhood.Modifier and Type | Field and Description |
---|---|
protected AdaptiveEpsilon |
adaptiveEpsilonNeighborhood |
protected EpsilonAdaptation |
epsilonAdaption |
protected EpsilonMapping |
epsilonMapping |
protected int |
plannedNeighborhoodNumber |
protected java.util.Random |
random |
Constructor and Description |
---|
EpsilonNeighborhoodCoupler(EpsilonMapping epsilonMapping,
EpsilonAdaptation epsilonAdaption,
java.util.Random random,
int plannedNeighborhoodNumber,
double epsilonNeighborhood,
double epsilonNeighborhoodDelta,
double epsilonNeighborhoodDeltaMax,
double epsilonNeighborhoodDeltaMin)
Basic constructor.
|
Modifier and Type | Method and Description |
---|---|
protected java.util.List<java.util.Set<org.opt4j.core.Individual>> |
createNeighborhoods(java.util.List<org.opt4j.core.Individual> survivorPool)
Applies the epsilon neighborhood creation.
|
java.util.Collection<org.opt4j.operators.crossover.Pair<org.opt4j.core.Individual>> |
getCouples(int size,
java.util.List<org.opt4j.core.Individual> survivors)
Generates parent couples.
|
protected org.opt4j.operators.crossover.Pair<org.opt4j.core.Individual> |
pickCouple(java.util.Set<org.opt4j.core.Individual> neighborhood)
Picks a couple of parents from the given neighborhood.
|
protected final EpsilonAdaptation epsilonAdaption
protected final EpsilonMapping epsilonMapping
protected final java.util.Random random
protected final int plannedNeighborhoodNumber
protected final AdaptiveEpsilon adaptiveEpsilonNeighborhood
@Inject public EpsilonNeighborhoodCoupler(EpsilonMapping epsilonMapping, EpsilonAdaptation epsilonAdaption, java.util.Random random, int plannedNeighborhoodNumber, double epsilonNeighborhood, double epsilonNeighborhoodDelta, double epsilonNeighborhoodDeltaMax, double epsilonNeighborhoodDeltaMin)
epsilonMapping
- an EpsilonMapping
that is used to enhance the
Objectives
during the creation of the neighborhoodsepsilonAdaption
- an EpsilonAdaptation
that adjusts the ε valued used
for the creation of the neighborhoodsrandom
- a Random
plannedNeighborhoodNumber
- A value provided by the user. The ε used for the creation of
the neighborhoods is adjusted in order to create a number of
neighborhoods similar to this value.public java.util.Collection<org.opt4j.operators.crossover.Pair<org.opt4j.core.Individual>> getCouples(int size, java.util.List<org.opt4j.core.Individual> survivors)
Individual
s onto
neighborhoods. Both parents of a couple are picked from the same
neighborhood. Uses a NeighborhoodSchedulerRoundRobin
to arbitrate
the neighborhoods from where the parent couples are picked.getCouples
in interface Coupler
size
- the number of couples that is generatedsurvivors
- the Individual
s that can be used as parentsIndividual
pairs, that will be used to
generate the next generation of individualsprotected org.opt4j.operators.crossover.Pair<org.opt4j.core.Individual> pickCouple(java.util.Set<org.opt4j.core.Individual> neighborhood)
neighborhood
- the set of similar Individual
s from where the parents
are pickedprotected java.util.List<java.util.Set<org.opt4j.core.Individual>> createNeighborhoods(java.util.List<org.opt4j.core.Individual> survivorPool)
survivorPool
- a list of Individual
s that can be used as parents