public class TournamentSelection extends Object implements SelectionStrategy<Object>
Constructor and Description |
---|
TournamentSelection(NumberGenerator<Probability> selectionProbability)
Creates a tournament selection strategy that is controlled by the
variable selection probability provided by the specified
NumberGenerator . |
TournamentSelection(Probability selectionProbability)
Creates a tournament selection strategy with a fixed probability.
|
Modifier and Type | Method and Description |
---|---|
<S> List<S> |
select(List<EvaluatedCandidate<S>> population,
boolean naturalFitnessScores,
int selectionSize,
Random rng)
Select the specified number of candidates from the population.
|
String |
toString() |
public TournamentSelection(NumberGenerator<Probability> selectionProbability)
NumberGenerator
.selectionProbability
- A number generator that produces values in
the range 0.5 < p < 1. These values are used as the probability
of the fittest candidate being selected in any given tournament.public TournamentSelection(Probability selectionProbability)
selectionProbability
- The probability that the fitter of two randomly
chosen candidates will be selected. Since this is a probability it must be
between 0.0 and 1.0. This implementation adds the further restriction that
the probability must be greater than 0.5 since any lower value would favour
weaker candidates over strong ones, negating the "survival of the fittest"
aspect of the evolutionary algorithm.public <S> List<S> select(List<EvaluatedCandidate<S>> population, boolean naturalFitnessScores, int selectionSize, Random rng)
SelectionStrategy
Select the specified number of candidates from the population. Implementations may assume that the population is sorted in descending order according to fitness (so the fittest individual is the first item in the list).
It is an error to call this method with an empty or null population.
select
in interface SelectionStrategy<Object>
S
- The type of evolved entity that we are selecting, a sub-type of T.population
- The population from which to select.naturalFitnessScores
- Whether higher fitness values represent fitter
individuals or not.selectionSize
- The number of individual selections to make (not necessarily
the number of distinct candidates to select, since the same individual may
potentially be selected more than once).rng
- Source of randomness for stochastic selection strategies.