| xegaDfGene {xegaDfGene} | R Documentation |
Package xegaDfGene.
Description
Genetic operations for real-coded genetic and evolutionary algorithms.
Details
For real-coded genes, the xegaDfGene package provides
Gene initialization.
Decoding of parameters.
Scaling functions as a function factory for configuration.
Mutation functions as well as a function factory for configuration.
Crossover functions as well as a function factory for configuration.
Replication functions as well as a function factory for configuration.
Current support: Functions for differential evolution (de). See Price et al. (2005).
Real-Coded Gene Representation
A real-coded gene is a named list:
$gene1 the gene must be a vector of reals.
$fit the fitness value of the gene (for EvalGeneDet and EvalGeneU) or the mean fitness (for stochastic functions evaluated with EvalGeneStoch).
$evaluated has the gene been evaluated?
$evalFail has the evaluation of the gene failed?
$var the cumulative variance of the fitness of all evaluations of a gene. (For stochastic functions)
$sigma the standard deviation of the fitness of all evaluations of a gene. (For stochastic functions)
$obs the number evaluations of a gene. (For stochastic functions)
Abstract Interface of Problem Environment
We reuse the abstract interface of a problem environment
for binary-coded genes. The number of parameters
is given by length(penv$bitlength()).
A problem environment penv must provide:
-
$f(parameters, gene, lF): Function with a real parameter vector as first argument which returns a gene with evaluated fitness. $genelength(): The number of bits of the binary coded real parameter vector. Used in
InitGene.$bitlength(): A vector specifying the number of bits used for coding each real parameter. If
penv$bitlength()[1]is20, thenparameters[1]is coded by 20 bits. Used inGeneMap.$lb(): The lower bound vector of each parameter. Used in
GeneMap.$ub(): The upper bound vector of each paremeter. Used in
GeneMap.
The Architecture of the xegaX-Packages
The xegaX-packages are a family of R-packages which implement eXtended Evolutionary and Genetic Algorithms (xega). The architecture has 3 layers, namely the user interface layer, the population layer, and the gene layer:
-
The user interface layer (package
xega) provides a function call interface and configuration support for several algorithms: genetic algorithms (sga), permutation-based genetic algorithms (sgPerm), derivation-free algorithms as e.g. differential evolution (sgde), grammar-based genetic programming (sgp) and grammatical evolution (sge). -
The population layer (package
xegaPopulation) contains population-related functionality as well as support for population statistics dependent adaptive mechanisms and parallelization. -
The gene layer is split in a representation-independent and a representation-dependent part:
-
The representation-independent part (package
xegaSelectGene) is responsible for variants of selection operators, evaluation strategies for genes, as well as profiling and timing capabilities. -
The representation-dependent part consists of the following packages:
-
xegaGaGenefor binary coded genetic algorithms. -
xegaPermGenefor permutation-based genetic algorithms. -
xegaDfGenefor derivation-free algorithms as e.g. differential evolution. -
xegaGpGenefor grammar-based genetic algorithms. -
xegaGeGenefor grammatical evolution algorithms.
The packages
xegaDerivationTreesandxegaBNFsupport the last two packages:xegaBNFessentially provides a grammar compiler, andxegaDerivationTreesis an abstract data type for derivation trees. -
-
Copyright
(c) 2023 Andreas Geyer-Schulz
License
MIT
<URL
https://github.com/ageyerschulz/xegaDfGene>
Installation
From CRAN by install.packages('xegaDfGene')
Author(s)
Andreas Geyer-Schulz
References
Price, Kenneth V., Storn, Rainer M. and Lampinen, Jouni A. (2005) The Differential Evolution Algorithm (Chapter 2), pp. 37-134. In: Differential Evolution. A Practical Approach to Global Optimization. Springer, Berlin. <doi:10.1007/3-540-31306-0>