rlevo_evolution/lib.rs
1//! Tensor-native classical evolutionary algorithms for `rlevo`.
2//!
3//! This crate ships the classical EA families — Genetic Algorithm (GA),
4//! Evolution Strategy (ES), Evolutionary Programming (EP), Differential
5//! Evolution (DE), and Cartesian Genetic Programming (CGP) — on top of the
6//! Burn tensor abstraction, with GPU acceleration via custom `CubeCL` kernels
7//! on hot paths.
8//!
9//! # Surface area
10//!
11//! - [`strategy`] — the central [`Strategy`] trait and
12//! the [`EvolutionaryHarness`] adapter that
13//! wraps any strategy into `rlevo-benchmarks::BenchEnv`.
14//! - [`genome`] — zero-sized marker types (`Real`, `Binary`, `Integer`,
15//! `Tree`) that parameterize the operator set.
16//! - [`population`] — [`Population<B, K>`](population::Population), a thin
17//! wrapper around `Tensor<B, 2>` carrying shape metadata.
18//! - [`fitness`] — [`FitnessFn`](fitness::FitnessFn) /
19//! [`BatchFitnessFn`](fitness::BatchFitnessFn) and the
20//! [`FromFitnessEvaluable`](fitness::FromFitnessEvaluable) adapter for
21//! `rlevo-benchmarks::FitnessEvaluable`.
22//! - [`rng`] — deterministic seed streams (splitmix64) for reproducibility.
23//! - [`shaping`] — fitness shaping transforms (centered rank, z-score).
24//! - [`ops`] — selection, crossover, mutation, and replacement operators.
25//! - [`algorithms`] — concrete strategies.
26
27pub mod algorithms;
28pub mod fitness;
29pub mod genome;
30pub mod ops;
31pub mod population;
32pub mod rng;
33pub mod shaping;
34pub mod strategy;
35
36pub use strategy::{EvolutionaryHarness, Strategy, StrategyMetrics};