xega {xega}R Documentation

Package xega

Description

The main program of the e(x)tended (e)volutionary and (g)enetic (a)lgorithm (xega) package.

Layers (in top-down direction)

  1. Top-level main programs (Package xega): RunGA(), ReRun()

  2. Population level operations - independent of representation (Package xegaPopulation): The population layer consists of functions for initializing, logging, observing, evaluating a population of genes, as well as of computing the next population.

  3. Gene level operations - representation-dependent.

    1. Binary representation (Package xegaGaGene): Initialization of random binary genes, several gene maps for binary genes, several mutation operators, several crossover operators with 1 and 2 kids, replication pipelines for 1 and 2 kids, and, last but not least, function factories for configuration.

    2. Real-coded genes (Package xegaDfGene).

    3. Permutation genes (Package xegaPermGene).

    4. Derivation-tree genes (Package xegaGpGene).

    5. Binary genes with a grammar-driven decoder (Package xegaGeGene).

  4. Gene level operations - independent of representation (Package selectGene): Functions for static and adaptive fitness scaling, gene selection, and gene evaluation as well as for the measurement of performance and for configuration.

Early Termination

A problem environment may implement a function terminate(solution) which returns TRUE if the solution meets a condition for early termination.

Parallel and Distributed Execution

Parallel and distributed execution is supported for several combinations of hard- and software architectures by overloading the lapply()-function used in the evaluation of a fitness function for a population of genes with a parallel version with the abstract interface:

parallelApply(pop, EvalGene, lF)

where pop is a list of genes, EvalGene the evaluation function for the fitness of a gene, and lF the local function configuration of the algorithm.

The several implementations of a parallelApply() function are provided. The implementations use

In addition, user-defined parallel apply functions can be provided. Example scripts for using the Rmpi::mpi.parLapply() function of the Rmpi package are provided for a HPC environment with Slurm as well as on a notebook.

The Architecture of the xegaX-Packages

The xegaX-packages are a family of R-packages which implement e(x)tended (e)volutionary and (g)enetic (a)lgorithms (xega). The architecture has 3 layers, namely the user interface layer, the population layer, and the gene layer:

Copyright

(c) 2023 Andreas Geyer-Schulz

License

MIT

URL

https://github.com/ageyerschulz/xega

Installation

From CRAN by install.packages('xega')

Author(s)

Andreas Geyer-Schulz


[Package xega version 0.9.0.0 Index]