Enum Searcher
pub enum Searcher {
Random,
Sobol,
Tpe,
Cmaes,
IsotropicEs,
}Expand description
Which searcher a run drives.
The three from the M2.3 sampler gate (SamplerKind) plus the two this
slice adds: the real Cmaes and the covariance-free ablation
(IsotropicEs) its regression sentinel measures against.
Variants§
Random
Uniform independent sampling — the baseline, and axis-aligned by definition.
Sobol
The Sobol low-discrepancy sequence — space-filling, and also axis-aligned.
Tpe
The Tree-structured Parzen Estimator: the strong learning baseline, whose densities are per-dimension, so it has no representation of a rotated valley.
Cmaes
The real CMA-ES.
IsotropicEs
CMA-ES with the covariance update deleted (C ≡ I) — the sentinel.
Implementations§
§impl Searcher
impl Searcher
pub const fn models_dimensions_independently(self) -> bool
pub const fn models_dimensions_independently(self) -> bool
Whether this searcher models the dimensions independently — i.e. whether its search distribution has no off-diagonal terms.
This is the property the rotated fixture attacks, and it is true for
four of the five: uniform random and Sobol draw each coordinate on its
own, TPE fits a 1-D Parzen density per dimension, and the ablation’s
covariance is the identity by construction. Only Cmaes can represent a
valley that runs at an angle to the axes.
Note the ablation is isotropic, not literally axis-preferring — a spherical distribution has no favourite direction at all. What it shares with the other three is the thing that matters here: no way to encode a correlation between two parameters.
Trait Implementations§
impl Copy for Searcher
impl Eq for Searcher
impl StructuralPartialEq for Searcher
Auto Trait Implementations§
impl Freeze for Searcher
impl RefUnwindSafe for Searcher
impl Send for Searcher
impl Sync for Searcher
impl Unpin for Searcher
impl UnsafeUnpin for Searcher
impl UnwindSafe for Searcher
Blanket Implementations§
impl<T> Boilerplate for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T, U> Imply<T> for U
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
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