pub struct SbxCrossover {
pub eta: f64,
pub crossover_probability: f64,
}Expand description
Simulated Binary Crossover (SBX)
SBX generates offspring from parents using a spread factor that simulates single-point crossover for binary strings.
Reference: Deb, K., & Agrawal, R. B. (1995). Simulated Binary Crossover for Continuous Search Space.
Fields§
§eta: f64Distribution index (typically 2-20) Higher values = offspring closer to parents
crossover_probability: f64Per-gene crossover probability
Implementations§
Source§impl SbxCrossover
impl SbxCrossover
Trait Implementations§
Source§impl BoundedCrossoverOperator<RealVector> for SbxCrossover
impl BoundedCrossoverOperator<RealVector> for SbxCrossover
Source§fn crossover_bounded<R: Rng>(
&self,
parent1: &RealVector,
parent2: &RealVector,
bounds: &MultiBounds,
rng: &mut R,
) -> OperatorResult<(RealVector, RealVector)>
fn crossover_bounded<R: Rng>( &self, parent1: &RealVector, parent2: &RealVector, bounds: &MultiBounds, rng: &mut R, ) -> OperatorResult<(RealVector, RealVector)>
Apply bounded crossover to two parents
Source§impl Clone for SbxCrossover
impl Clone for SbxCrossover
Source§fn clone(&self) -> SbxCrossover
fn clone(&self) -> SbxCrossover
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl CrossoverOperator<RealVector> for SbxCrossover
impl CrossoverOperator<RealVector> for SbxCrossover
Source§fn crossover<R: Rng>(
&self,
parent1: &RealVector,
parent2: &RealVector,
rng: &mut R,
) -> OperatorResult<(RealVector, RealVector)>
fn crossover<R: Rng>( &self, parent1: &RealVector, parent2: &RealVector, rng: &mut R, ) -> OperatorResult<(RealVector, RealVector)>
Apply crossover to two parents and produce two offspring
Source§fn crossover_probability(&self) -> f64
fn crossover_probability(&self) -> f64
Get the probability of crossover being applied
Auto Trait Implementations§
impl Freeze for SbxCrossover
impl RefUnwindSafe for SbxCrossover
impl Send for SbxCrossover
impl Sync for SbxCrossover
impl Unpin for SbxCrossover
impl UnsafeUnpin for SbxCrossover
impl UnwindSafe for SbxCrossover
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.