21 releases

0.6.7 Aug 11, 2023
0.6.5 May 13, 2023
0.5.5 Apr 1, 2022
0.5.3 Mar 31, 2022
0.3.0 Jul 23, 2021

#473 in Data structures

Download history 24/week @ 2024-01-15 9/week @ 2024-02-12 18/week @ 2024-02-19 37/week @ 2024-02-26 15/week @ 2024-03-04 128/week @ 2024-03-11

198 downloads per month

MIT license

105KB
2K SLoC

set_genome

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

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.

Usage

[dependencies]
set_genome = "0.1"

See the documentation more information.

Dependencies

~6.5MB
~127K SLoC