public class ProportionalTournamentSelection extends TournamentSelection
Typical Number of Individuals Produced Per produce(...) call
Always 1.
Parameters
base.size int >= 1 |
(the tournament size) |
base.pick-worst bool = true or false (default) |
(should we pick the worst individual in the tournament instead of the best?) |
base.fitness-prob double >= 0 and <= 1 |
(the probability of comparing individuals based on fitness, rather than size) |
Default Base
select.proportional-tournament
Modifier and Type | Field and Description |
---|---|
double |
fitnessPressureProb
The probability of having the tournament based on fitness
|
static java.lang.String |
P_PROBABILITY
The parameter for the probability of having the tournament based on fitness
|
static java.lang.String |
P_PROPORTIONAL_TOURNAMENT
default base
|
P_PICKWORST, P_SIZE, P_TOURNAMENT, pickWorst, probabilityOfPickingSizePlusOne
INDS_PRODUCED
NO_PROBABILITY, P_PROB, probability
Constructor and Description |
---|
ProportionalTournamentSelection() |
Modifier and Type | Method and Description |
---|---|
boolean |
betterThan(Individual first,
Individual second,
int subpopulation,
EvolutionState state,
int thread)
Returns true if *first* is a better (fitter, whatever) individual than *second*.
|
Parameter |
defaultBase()
Returns the default base for this prototype.
|
void |
setup(EvolutionState state,
Parameter base)
Sets up the BreedingPipeline.
|
getRandomIndividual, getTournamentSizeToUse, individualReplaced, produce, sourcesAreProperForm
finishProducing, prepareToProduce, produce, produces, typicalIndsProduced
clone, getProbability, pickRandom, preparePipeline, setProbability, setupProbabilities
public static final java.lang.String P_PROPORTIONAL_TOURNAMENT
public static final java.lang.String P_PROBABILITY
public double fitnessPressureProb
public Parameter defaultBase()
Prototype
defaultBase
in interface Prototype
defaultBase
in class TournamentSelection
public void setup(EvolutionState state, Parameter base)
BreedingSource
The most common modification is to normalize it with some other set of probabilities, then set all of them up in increasing summation; this allows the use of the fast static BreedingSource-picking utility method, BreedingSource.pickRandom(...). In order to use this method, for example, if four breeding source probabilities are {0.3, 0.2, 0.1, 0.4}, then they should get normalized and summed by the outside owners as: {0.3, 0.5, 0.6, 1.0}.
setup
in interface Prototype
setup
in interface Setup
setup
in class TournamentSelection
Prototype.setup(EvolutionState,Parameter)
public boolean betterThan(Individual first, Individual second, int subpopulation, EvolutionState state, int thread)
TournamentSelection
betterThan
in class TournamentSelection