Expand description
Differential Evolution.
Classical DE over Tensor<B, 2> populations with all common
mutation/crossover variants enumerated in DeVariant.
§Variants
| Variant | Mutation formula |
|---|---|
DeVariant::Rand1Bin, DeVariant::Rand1Exp | v = x_{r1} + F · (x_{r2} − x_{r3}) |
DeVariant::Best1Bin | v = x_{best} + F · (x_{r2} − x_{r3}) |
DeVariant::CurrentToBest1Bin | v = x_i + F · (x_{best} − x_i) + F · (x_{r1} − x_{r2}) |
DeVariant::Rand2Bin | v = x_{r1} + F · (x_{r2} − x_{r3}) + F · (x_{r4} − x_{r5}) |
The suffix Bin/Exp selects between binomial and exponential
crossover. All index draws reject repeated and self-referential
indices.
§Hot path
A fused CubeCL kernel for trial-vector construction is tracked as
follow-up work (see crate::ops::kernels). Until then this module
uses host-sampled indices and composes the update from primitive
tensor ops.
§Reference
- Storn & Price (1997), Differential Evolution — A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces.
Structs§
- DeConfig
- Static configuration for a
DifferentialEvolutionrun. - DeState
- Generation state for
DifferentialEvolution. - Differential
Evolution - Classical DE/rand/1/bin (and friends).
Enums§
- DeVariant
- Mutation + crossover variant for differential evolution.