pub struct EpConfig {
pub mu: usize,
pub genome_dim: usize,
pub bounds: Bounds,
pub initial_sigma: f32,
pub sigma_min: f32,
pub sigma_max: f32,
pub tau: f32,
pub tournament_q: usize,
}Expand description
Static configuration for an EvolutionaryProgramming run.
Fields§
§mu: usizeParent population size (offspring population is also μ — EP is
strictly μ + μ).
genome_dim: usizeGenome dimensionality.
bounds: BoundsSearch-space bounds (initialization and clamping).
initial_sigma: f32Initial σ for every individual.
sigma_min: f32Lower clamp for the self-adaptive σ.
The log-normal update σ' = σ · exp(τ · N(0,1)) is an unbounded
multiplicative random walk; without a floor σ can underflow toward
0, collapsing the mutation amplitude so the search freezes. Must be
strictly positive and < sigma_max. Default DEFAULT_SIGMA_MIN.
sigma_max: f32Upper clamp for the self-adaptive σ.
Without a ceiling the log-normal update can overflow toward +∞
(genes then saturate to a bound with no error). Default
DEFAULT_SIGMA_MAX — far outside any practical step scale on the
[-5.12, 5.12] benchmark domain, so it never binds in normal
operation and only catches a runaway walk.
tau: f32Learning rate for the log-normal σ update. Default is
1 / sqrt(2 · sqrt(D)).
tournament_q: usizeNumber of opponents per tournament round (q-tournament).
Implementations§
Source§impl EpConfig
impl EpConfig
Sourcepub fn default_for(mu: usize, genome_dim: usize) -> Self
pub fn default_for(mu: usize, genome_dim: usize) -> Self
Default configuration for a given dimensionality.
Sets initial_sigma = 1.0, tournament_q = 10, and derives
tau = 1.0 / sqrt(2.0 · sqrt(D)) — the standard EP learning-rate
recommendation from Fogel (1994). Bounds are (-5.12, 5.12).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for EpConfig
impl RefUnwindSafe for EpConfig
impl Send for EpConfig
impl Sync for EpConfig
impl Unpin for EpConfig
impl UnsafeUnpin for EpConfig
impl UnwindSafe for EpConfig
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<C> CloneExpand for Cwhere
C: Clone,
impl<C> CloneExpand for Cwhere
C: Clone,
fn __expand_clone_method(&self, _scope: &mut Scope) -> C
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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