geneticProgramming: Standard typed and untyped genetic programming

Description Usage Arguments Value See Also

View source: R/evolution.r

Description

Perform a standard genetic programming (GP) run. Use geneticProgramming for untyped genetic programming or typedGeneticProgramming for typed genetic programming runs. The required argument fitnessFunction must be supplied with an objective function that assigns a numerical fitness value to an R function. Fitness values are minimized, i.e. smaller values denote higher/better fitness. If a multi-objective selectionFunction is used, fitnessFunction return a numerical vector of fitness values. The result of the GP run is a GP result object containing a GP population of R functions. summary.geneticProgrammingResult can be used to create summary views of a GP result object. During the run, restarts are triggered by the restartCondition. When a restart is triggered, the restartStrategy is executed, which returns a new population to replace the current one as well as a list of elite individuals. These are added to the runs elite list, where fitter individuals replace individuals with lesser fittness. The runs elite list is always sorted by fitness in ascending order. Only the first component of a multi-criterial fitness counts in this sorting. After a GP run, the population is inserted into the elite list. The elite list is returned as part of the GP result object.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
geneticProgramming(fitnessFunction, stopCondition = makeTimeStopCondition(5),
  population = NULL, populationSize = 100, eliteSize = ceiling(0.1 *
  populationSize), elite = list(), functionSet = mathFunctionSet,
  inputVariables = inputVariableSet("x"), constantSet = numericConstantSet,
  crossoverFunction = crossover, mutationFunction = NULL,
  restartCondition = makeEmptyRestartCondition(),
  restartStrategy = makeLocalRestartStrategy(),
  searchHeuristic = makeAgeFitnessComplexityParetoGpSearchHeuristic(lambda =
  ceiling(0.5 * populationSize)), breedingFitness = function(individual) TRUE,
  breedingTries = 50, extinctionPrevention = FALSE, archive = FALSE,
  progressMonitor = NULL, verbose = TRUE)

typedGeneticProgramming(fitnessFunction, type,
  stopCondition = makeTimeStopCondition(5), population = NULL,
  populationSize = 100, eliteSize = ceiling(0.1 * populationSize),
  elite = list(), functionSet, inputVariables, constantSet,
  crossoverFunction = crossoverTyped, mutationFunction = NULL,
  restartCondition = makeEmptyRestartCondition(),
  restartStrategy = makeLocalRestartStrategy(populationType = type),
  searchHeuristic = makeAgeFitnessComplexityParetoGpSearchHeuristic(),
  breedingFitness = function(individual) TRUE, breedingTries = 50,
  extinctionPrevention = FALSE, archive = FALSE, progressMonitor = NULL,
  verbose = TRUE)

Arguments

fitnessFunction

In case of a single-objective selection function, fitnessFunction must be a single function that assigns a numerical fitness value to a GP individual represented as a R function. Smaller fitness values mean higher/better fitness. If a multi-objective selection function is used, fitnessFunction must return a numerical vector of fitness values.

type

The range type of the individual functions. This parameter only applies to typedGeneticProgramming.

stopCondition

The stop condition for the evolution main loop. See code makeStepsStopCondition for details.

population

The GP population to start the run with. If this parameter is missing, a new GP population of size populationSize is created through random growth.

populationSize

The number of individuals if a population is to be created.

eliteSize

The number of elite individuals to keep. Defaults to ceiling(0.1 * populationSize).

elite

The elite list, must be alist of individuals sorted in ascending order by their first fitness component.

functionSet

The function set.

inputVariables

The input variable set.

constantSet

The set of constant factory functions.

crossoverFunction

The crossover function.

mutationFunction

The mutation function.

restartCondition

The restart condition for the evolution main loop. See makeEmptyRestartCondition for details.

restartStrategy

The strategy for doing restarts. See makeLocalRestartStrategy for details.

searchHeuristic

The search-heuristic (i.e. optimization algorithm) to use in the search of solutions. See the documentation for searchHeuristics for available algorithms.

breedingFitness

A "breeding" function. This function is applied after every stochastic operation Op that creates or modifies an individal (typically, Op is a initialization, mutation, or crossover operation). If the breeding function returns TRUE on the given individual, Op is considered a success. If the breeding function returns FALSE, Op is retried a maximum of breedingTries times. If this maximum number of retries is exceeded, the result of the last try is considered as the result of Op. In the case the breeding function returns a numeric value, the breeding is repeated breedingTries times and the individual with the lowest breeding fitness is considered the result of Op.

breedingTries

In case of a boolean breedingFitness function, the maximum number of retries. In case of a numerical breedingFitness function, the number of breeding steps. Also see the documentation for the breedingFitness parameter. Defaults to 50.

extinctionPrevention

When set to TRUE, the initialization and selection steps will try to prevent duplicate individuals from occurring in the population. Defaults to FALSE, as this operation might be expensive with larger population sizes.

archive

If set to TRUE, all GP individuals evaluated are stored in an archive list archiveList that is returned as part of the result of this function.

progressMonitor

A function of signature function(population, objectiveVectors, fitnessFunction, stepNumber, evaluationNumber, bestFitness, timeElapsed, ...) to be called with each evolution step. Seach heuristics may pass additional information via the ... parameter.

verbose

Whether to print progress messages.

Value

A genetic programming result object that contains a GP population in the field population, as well as metadata describing the run parameters.

See Also

summary.geneticProgrammingResult, symbolicRegression


rgp documentation built on May 30, 2017, 12:45 a.m.