Expand description
A simple crate that implements the Neuroevolution Augmenting Topologies algorithm using genetic-rs
§Feature Roadmap:
- base (single-core) crate
- rayon
- crossover
You can get started by
Re-exports§
Modules§
- Built-in nextgen functions and traits to go with them.
- A module containing the main
NeuralNetworkstruct. This has state/cache and will run the predictions. Make sure to runNeuralNetwork::flush_statebetween uses ofNeuralNetwork::predict. - 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.
Structs§
- The simulation controller.
Traits§
- Used in dividually-reproducing next_gens
- Helper trait used in the generation of random starting populations
- Blanket trait used on collections that contain objects implementing GenerateRandom
- Used in pruning next_gens
- Used in all of the builtin next_gens to randomly mutate entities a given amount
Functions§
- When making a new generation, it despawns half of the entities and then spawns children from the remaining to reproduce. WIP: const generic for mutation rate, will allow for DivisionReproduction::spawn_child to accept a custom mutation rate. Delayed due to current Rust limitations
- When making a new generation, it mutates each entity a certain amount depending on their reward. This nextgen is very situational and should not be your first choice.
Type Aliases§
- Represents a fitness function. Inputs a reference to the entity and outputs an f32.
- Represents a nextgen function. Inputs entities and rewards and produces the next generation