Learn R Programming

rgp (version 0.4-1)

makeTournamentSelection: GP selection functions

Description

A GP selection function determines which individuals in a population should survive, i.e. are selected for variation or cloning, and which individuals of a population should be replaced. Single-objective selection functions base their selection decision on scalar fitness function, whereas multi-objective selection functions support vector-valued fitness functions. Every selection function takes a population and a (possibly vector-valued) fitness function as required arguments. It returns a list of two tables 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.

Usage

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)

Arguments

complexityMeasure
The function used to measure the complexity of an individual.
tournamentSize
The number of individuals to randomly select to form a tournament, defaults to 10 in the single-objective case, 30 in the multi-objective case.
selectionSize
The number of individuals to return as selected.
tournamentDeterminism
The propability p for selecting the best individual in a tournament, must be in the interval (0.0, 1.0]. The best individual is selected with propability p, the second best individual is selected with propability p * (1 - p), the third best individual ist selected with propability p * (1 - p)^2, and so on. Note that setting tournamentDeterminism to 1.0 (the default) yields determistic behavior.
vectorizedFitness
If 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.
rankingStrategy
The strategy used to rank individuals based on multiple objectives. This function must turn a fitness vector (one point per column) into an ordering permutation (similar to the one returned by order). Defaults to orderByParetoCrowdingDistance.

Value

A selection function.

Details

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.