pub enum ESSelectionStrategy {
MuPlusLambda,
MuCommaLambda,
}Expand description
Selection strategy for Evolution Strategies
§Interaction with σ self-adaptation
Classical ES theory (Schwefel; Beyer & Schwefel 2002) shows that mutative
step-size self-adaptation requires comma (MuCommaLambda) selection.
Under plus/elitist selection an individual that happens to carry an
over-small σ can survive indefinitely on the merit of its object variables,
so badly-scaled strategy parameters are never purged and σ tends to collapse,
stalling adaptation. The canonical self-adaptive recommendation is (μ,λ)
with λ/μ ≈ 7 (e.g. (15, 100)). Consequently the default configuration
(see ESConfig::default) pairs self-adaptation with comma selection; plus
selection remains available as an explicit opt-in.
Variants§
MuPlusLambda
(μ+λ): Select best μ from parents + offspring combined.
Elitist. Prefer this only when self-adaptation is disabled or when elitism is explicitly desired — see the type-level note on why elitism suppresses mutative σ self-adaptation.
MuCommaLambda
(μ,λ): Select best μ from offspring only (requires λ ≥ μ).
The correct pairing for mutative σ self-adaptation, and the default.
Trait Implementations§
Source§impl Clone for ESSelectionStrategy
impl Clone for ESSelectionStrategy
Source§fn clone(&self) -> ESSelectionStrategy
fn clone(&self) -> ESSelectionStrategy
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ESSelectionStrategy
impl Debug for ESSelectionStrategy
Source§impl Default for ESSelectionStrategy
impl Default for ESSelectionStrategy
Source§fn default() -> ESSelectionStrategy
fn default() -> ESSelectionStrategy
Auto Trait Implementations§
impl Freeze for ESSelectionStrategy
impl RefUnwindSafe for ESSelectionStrategy
impl Send for ESSelectionStrategy
impl Sync for ESSelectionStrategy
impl Unpin for ESSelectionStrategy
impl UnsafeUnpin for ESSelectionStrategy
impl UnwindSafe for ESSelectionStrategy
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.