Usage
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.
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
.