multiNicheGeneticProgramming: Cluster-based multi-niche genetic programming

Description Usage Arguments Value See Also

View source: R/niching.r

Description

Perform a multi-niche genetic programming run. 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 mean higher/better fitness. If a multi-objective selectionFunction is used, fitnessFunction return a numerical vector of fitness values. In a multi-niche genetic programming run, the initial population is clustered via a clusterFunction into numberOfNiches niches. In each niche, a genetic programming run is executed with passStopCondition as stop condition. These runs are referred to as a parallel pass. After each parallel pass, the niches are joined again using a joinFunction into a population. From here, the process starts again with a clustering step, until the global stopCondition is met. The result of the multi-niche genetic programming run is a genetic programming result object containing a GP population of R functions. summary.geneticProgrammingResult can be used to create summary views of a GP result object.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
multiNicheGeneticProgramming(fitnessFunction,
  stopCondition = makeTimeStopCondition(25),
  passStopCondition = makeTimeStopCondition(5), numberOfNiches = 2,
  clusterFunction = groupListConsecutive, joinFunction = function(niches)
  Reduce(c, niches), 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(),
  progressMonitor = NULL, verbose = TRUE, clusterApply = sfClusterApplyLB,
  clusterExport = sfExport)

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.

stopCondition

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

passStopCondition

The stop condition for each parallel pass. See makeStepsStopCondition for details.

numberOfNiches

The number of niches to cluster the population into.

clusterFunction

The function used to cluster the population into niches. The first parameter of this function is a GP population, the second paramater an integer representing the number of niches. Defaults to groupListConsecutive.

joinFunction

The function used to join all niches into a population again after a round of parallel passes. Defaults to a function that simply concatenates all niches.

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.

searchHeuristic

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

crossoverFunction

The crossover function.

mutationFunction

The mutation function.

restartCondition

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

restartStrategy

The strategy for doing restarts. See makeLocalRestartStrategy for details.

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.

clusterApply

The cluster apply function that is used to distribute the parallel passes to CPUs in a compute cluster.

clusterExport

A function that is used to export R variables to the nodes of a CPU cluster, defaults to sfExport.

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

geneticProgramming, summary.geneticProgrammingResult, symbolicRegression


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