Expand description
A simple crate that implements the Neuroevolution Augmenting Topologies algorithm using genetic-rs
§Feature Roadmap:
- base (single-core) crate
- rayon
- serde
- crossover
You can get started by looking at genetic-rs docs and checking the examples for this crate.
Re-exports§
Modules§
- builtin
- Built-in nextgen functions and traits to go with them.
- prelude
- Used to quickly import everything this crate has to offer.
Simply add
use genetic_rs::prelude::*to begin using this crate. - rand
- Utilities for random number generation
- runnable
- A module containing the main
NeuralNetworkstruct. This has state/cache and will run the predictions. Make sure to runNeuralNetwork::flush_statebetween uses ofNeuralNetwork::predict. - topology
- A module containing the
NeuralNetworkTopologystruct. This is what you want to use in the DNA of your agent, as it is the thing that goes through nextgens and suppors mutation.
Macros§
- activation_
fn - Creates an
ActivationFnobject from a function
Structs§
- Genetic
Sim - The simulation controller.
Traits§
- Crossover
Reproduction - Used in crossover-reproducing
next_gens - Division
Reproduction - Used in dividually-reproducing
next_gens - Fitness
Fn - Represents a fitness function. Inputs a reference to the genome and outputs an f32.
- Generate
Random - Helper trait used in the generation of random starting populations
- Generate
Random Collection - Blanket trait used on collections that contain objects implementing
GenerateRandom - Nextgen
Fn - Represents a nextgen function. Inputs genomes and rewards and produces the next generation
- Prunable
- Used in pruning next_gens
- Randomly
Mutable - Used in all of the builtin
next_gens to randomly mutate genomes a given amount
Functions§
- crossover_
pruning_ nextgen - Prunes half of the genomes and randomly crosses over the remaining ones.
- division_
pruning_ nextgen - When making a new generation, it despawns half of the genomes and then spawns children from the remaining to reproduce.
- scrambling_
nextgen - When making a new generation, it mutates each genome a certain amount depending on their reward. This nextgen is very situational and should not be your first choice.