Skip to main content

Module de

Module de 

Source
Expand description

Differential Evolution.

Classical DE over Tensor<B, 2> populations with all common mutation/crossover variants enumerated in DeVariant.

§Variants

VariantMutation formula
DeVariant::Rand1Bin, DeVariant::Rand1Expv = x_{r1} + F · (x_{r2} − x_{r3})
DeVariant::Best1Binv = x_{best} + F · (x_{r2} − x_{r3})
DeVariant::CurrentToBest1Binv = x_i + F · (x_{best} − x_i) + F · (x_{r1} − x_{r2})
DeVariant::Rand2Binv = 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 DifferentialEvolution run.
DeState
Generation state for DifferentialEvolution.
DifferentialEvolution
Classical DE/rand/1/bin (and friends).

Enums§

DeVariant
Mutation + crossover variant for differential evolution.