pub enum Strategy {
Show 16 variants
Best1Bin,
Best1Exp,
Rand1Bin,
Rand1Exp,
Rand2Bin,
Rand2Exp,
CurrentToBest1Bin,
CurrentToBest1Exp,
Best2Bin,
Best2Exp,
RandToBest1Bin,
RandToBest1Exp,
AdaptiveBin,
AdaptiveExp,
LShadeBin,
LShadeExp,
}Expand description
Differential Evolution mutation/crossover strategy.
The strategy name follows the pattern {mutation}{n}{crossover} where:
mutation: Base vector selection (Best, Rand, CurrentToBest, RandToBest, Adaptive)n: Number of difference vectors (1 or 2)crossover: Crossover type (Bin = binomial, Exp = exponential)
Variants§
Best1Bin
Best/1/Bin: Best individual + 1 difference vector, binomial crossover
Best1Exp
Best/1/Exp: Best individual + 1 difference vector, exponential crossover
Rand1Bin
Rand/1/Bin: Random individual + 1 difference vector, binomial crossover
Rand1Exp
Rand/1/Exp: Random individual + 1 difference vector, exponential crossover
Rand2Bin
Rand/2/Bin: Random individual + 2 difference vectors, binomial crossover
Rand2Exp
Rand/2/Exp: Random individual + 2 difference vectors, exponential crossover
CurrentToBest1Bin
Current-to-best/1/Bin: Blend of current and best + 1 diff, binomial crossover
CurrentToBest1Exp
Current-to-best/1/Exp: Blend of current and best + 1 diff, exponential crossover
Best2Bin
Best/2/Bin: Best individual + 2 difference vectors, binomial crossover
Best2Exp
Best/2/Exp: Best individual + 2 difference vectors, exponential crossover
RandToBest1Bin
Rand-to-best/1/Bin: Blend of random and best + 1 diff, binomial crossover
RandToBest1Exp
Rand-to-best/1/Exp: Blend of random and best + 1 diff, exponential crossover
AdaptiveBin
Adaptive mutation with binomial crossover (SAM approach)
AdaptiveExp
Adaptive mutation with exponential crossover
LShadeBin
L-SHADE with binomial crossover: current-to-pbest/1 + linear pop reduction + archive
LShadeExp
L-SHADE with exponential crossover: current-to-pbest/1 + linear pop reduction + archive
Trait Implementations§
impl Copy for Strategy
Auto Trait Implementations§
impl Freeze for Strategy
impl RefUnwindSafe for Strategy
impl Send for Strategy
impl Sync for Strategy
impl Unpin for Strategy
impl UnsafeUnpin for Strategy
impl UnwindSafe for Strategy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more