Description Usage Arguments Value See Also
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.
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)
|
fitnessFunction |
In case of a single-objective selection function,
|
stopCondition |
The stop condition for the evolution main loop. See
|
passStopCondition |
The stop condition for each parallel pass. See
|
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 |
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 |
The number of individuals if a population is to be created. |
eliteSize |
The number of "elite" individuals to keep. Defaults to
|
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 |
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
|
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 |
A genetic programming result object that contains a GP population in the
field population
, as well as metadata describing the run parameters.
geneticProgramming
, summary.geneticProgrammingResult
, symbolicRegression
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.