Crate set_genome[][src]

This crate is supposed to act as the representation/reproduction aspect in neuroevolution algorithms and may be combined with arbitrary selection mechanisms.

Getting started

Head over to GenomeContext to understand how to use this crate.

SET genome

SET stands for Set Encoded Topology and this crate implements a genetic data structure, the Genome, using this set encoding to describe artificial neural networks (ANNs). Further this crate defines operations on this genome, namely Mutations and crossover. Mutations alter a genome by adding or removing genes, crossover recombines two genomes. To have an intuitive definition of crossover for network structures the NEAT algorithm defined a procedure and has to be understood as a mental predecessor to this SET encoding, which very much is a formalization and progression of the ideas NEAT introduced regarding the genome. The thesis describing this genome and other ideas can be found here, a paper focusing just on the SET encoding will follow soon.



Lists constant functions matching the Activation enum variants.



This is the core data structure this crate revoles around.


This struct simplifies operations on the Genome.


This struct serves as the randomness source for all operations.


Identity of ANN structure elements.


Acts as a generator and cache for ANN node identities.


This struct captures configuration about the basic ANN structure and available mutations.


This struct describes the invariants of the ANN structure.



Lists all possible mutations with their corresponding parameters.