Skip to main content

Module gep

Module gep 

Source
Expand description

Gene Expression Programming (GEP).

GEP (Ferreira, 2001) evolves programs encoded as fixed-length linear chromosomes that decode into expression trees. Each chromosome is a head (whose loci may hold any symbol) followed by a tail (terminals only), sized so that every chromosome respecting that split decodes to a complete tree — no repair pass is ever needed. This makes the genetic operators simple, position-aligned array edits, which is GEP’s headline advantage over tree-based GP.

§Module map

Genotype storage is a Tensor<B, 2, Int> of shape (pop_size, head_len + tail_len); decoding and evaluation run host-side, per chromosome, because the decode is an inherently sequential ORF scan that does not vectorise.

§Reference

  • Ferreira (2001), Gene Expression Programming: a New Adaptive Algorithm for Solving Problems, Complex Systems 13(2).

Re-exports§

pub use alphabet::Alphabet;
pub use alphabet::SymbolKind;
pub use config::GepConfig;
pub use decode::GenotypePhenotypeMap;
pub use decode::GepDecoder;
pub use strategy::GepState;
pub use strategy::GepStrategy;
pub use strategy::GepSymRegression;
pub use tree::ExpressionTree;

Modules§

alphabet
The GEP symbol alphabet: functions plus a terminal layer.
config
Runtime configuration for a Gene Expression Programming run.
decode
Genotype → phenotype decoding (the head/tail → expression-tree map).
operators
GEP genetic operators, all valid by construction (no repair pass).
strategy
The GepStrategy evolutionary engine and a symbolic-regression fitness.
tree
The decoded GEP phenotype: a level-order expression tree.