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 <https://CRAN.R-project.org/package=xega>): xegaRun(), xegaReRun()

  2. Population-level operations - independent of representation (Package xegaPopulation <https://CRAN.R-project.org/package=xegaPopulation>): The population layer consists of functions for initializing, logging, observing, evaluating a population of genes, as well as computing the next population.

  3. Gene-level operations - representation-dependent.

    1. Binary representation (Package xegaGaGene <https://CRAN.R-project.org/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 <https://CRAN.R-project.org/package=xegaDfGene>).

    3. Permutation genes (Package xegaPermGene <https://CRAN.R-project.org/package=xegaPermGene>).

    4. Derivation-tree genes (Package xegaGpGene <https://CRAN.project.org/package=xegaGpGene>).

    5. Binary genes with a grammar-driven decoder (Package xegaGeGene <https://CRAN.project.org/package=xegaGeGene>).

  4. Gene-level operations - independent of representation (Package xegaSelectGene <https://CRAN.project.org/package=xegaSelectGene>). Functions for static and adaptive fitness scaling, gene selection, gene evaluation, as well as measuring performance and 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

Several implementations of a parallel lapply() function are provided. They support the parallel and distributed execution of fitness functions on several combinations of hard- and software architectures. A parallel lapply()-function must have the following 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 an 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

See Also

Useful links:


[Package xega version 0.9.0.8 Index]