Expand description
Tools for evolutionary algorithms
Eviolite is a set of tools and algorithms for evolutionary computing in Rust.
It is written in a performance-minded, minimal-copy style,
and uses rayon to parallelize the most computationally intensive parts.
It also includes a drop-in replacement for rand’s thread_rng
that is fully reproducible and can be seeded from an environment variable.
This means that if you get a run you like,
you can share that seed with someone else alongside your program
and they will be guaranteed to get the same output you got.
The general workflow is to implement Solution for a type you wish to optimize,
construct an instance of Evolution, and call one of its run_ methods.
§Features
The ndarray crate feature enables the crossover and mutation modules,
which contain helpful functions for using Eviolite alongside the ndarray crate.
Modules§
- alg
- Pre-built algorithms
- crossover
ndarray - Commonly used crossover operators for ndarrays
- fitness
- Representation and evaluation of fitness values
- hof
- Keeping track of the best solutions across generations
- mutation
ndarray - Commonly used mutation operators for ndarrays
- prelude
- Convenience re-export of commonly used items
- repro_
rng - Reproducible and globally seedable version of
rand’sthread_rng - select
- Selection operators
- stats
- Per-generation statistical analysis
Structs§
- Cached
- A wrapper around a solution that automatically caches the fitness value
- Evolution
- A single run of an evolutionary algorithm.
- Generation
- Container type passed to callbacks
- Log
- Container type for the results of a run
Traits§
- Solution
- A trait that allows a type to be optimized using an evolutionary algorithm.