selected
and discarded
, with columns index
and fitness
each. The
returned list also contains a single integer numberOfFitnessEvaluations
that contains the number of fitness evaluations used to make the selection (Note
that in the multi-objective case, evaluating all fitness functions once counts
as a single evaluation). The first table contains the population indices of the
individuals selected as survivors, the second table contains the population indices
of the individuals that should be discarded and replaced. This definition simplifies
the implementation of steady-state evolutionary strategies where most of the
individuals in a population are unchanged in each selection step. In a GP context,
steady-state strategies are often more efficient than generational strategies.
makeTournamentSelection(tournamentSize = 10, selectionSize = ceiling(tournamentSize/2), tournamentDeterminism = 1, vectorizedFitness = FALSE)
makeMultiObjectiveTournamentSelection(tournamentSize = 30, selectionSize = ceiling(tournamentSize/2), tournamentDeterminism = 1, vectorizedFitness = FALSE, rankingStrategy = orderByParetoCrowdingDistance)
makeComplexityTournamentSelection(tournamentSize = 30, selectionSize = ceiling(tournamentSize/2), tournamentDeterminism = 1, vectorizedFitness = FALSE, rankingStrategy = orderByParetoCrowdingDistance, complexityMeasure = fastFuncVisitationLength)
tournamentDeterminism
to 1.0
(the default) yields determistic behavior.TRUE
, the fitness function is expected to take
a list of individuals as input and return a list of (possible vector-valued) fitnesses
as output.order
). Defaults to
orderByParetoCrowdingDistance
.makeTournamentSelection
returns a classic single-objective tournament selection
function.
makeMultiObjectiveTournamentSelection
returns a multi-objective tournament selection
function that selects individuals based on multiple objectives.
makeComplexityTournamentSelection
returns a multi-objective selection function that
implements the common case of dual-objective tournament selection with high solution
quality as the first objective and low solution complexity as the second objective.