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.

Modules

activations

Lists constant functions matching the Activation enum variants.

Structs

Genome

This is the core data structure this crate revoles around.

GenomeContext

This struct simplifies operations on the Genome.

GenomeRng

This struct serves as the randomness source for all operations.

Id

Identity of ANN structure elements.

IdGenerator

Acts as a generator and cache for ANN node identities.

Parameters

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

Structure

This struct describes the invariants of the ANN structure.

Enums

Mutations

Lists all possible mutations with their corresponding parameters.