genetic-rs
A small crate for quickstarting genetic algorithm projects
How to Use
First off, this crate comes with the builtin and genrand features by default. If you want to add the builtin crossover reproduction extension, you can do so by adding the crossover feature. If you want it to be parallelized, you can add the rayon feature.
Once you have eveything imported as you wish, you can define your entity and impl the required traits:
// clone is currently a required derive for pruning nextgens.
// required in all of the builtin functions as requirements of `DivsionReproduction` and `CrossoverReproduction`
// required for `asexual_pruning_nextgen`.
// required for the builtin pruning algorithms.
// helper trait that allows us to use `Vec::gen_random` for the initial population.
Once you have a struct, you must create your fitness function:
Once you have your reward function, you can create a GeneticSim object to manage and control the evolutionary steps:
That is the minimal code for a working pruning-based genetic algorithm. You can read the docs or check the examples for more complicated systems.
License
This project falls under the MIT license.