pub struct SimulatedBinaryCrossover {
pub distribution_index: f64,
}Expand description
Simulated Binary Crossover (SBX) operator for real-coded genetic algorithms.
§SBX Overview
- SBX mimics the behavior of single-point crossover in binary-coded GAs, but for continuous variables.
- The parameter
distribution_index(η) controls how far offspring can deviate from the parents. Larger η values produce offspring closer to the parents (less exploration), while smaller values allow offspring to be more spread out (more exploration).
Reference: Deb, Kalyanmoy, and R. B. Agrawal. “Simulated binary crossover for continuous search space.” Complex systems 9.2 (1995): 115-148.
Fields§
§distribution_index: f64Distribution index (η) that controls offspring spread.
Implementations§
Trait Implementations§
Source§impl Clone for SimulatedBinaryCrossover
impl Clone for SimulatedBinaryCrossover
Source§fn clone(&self) -> SimulatedBinaryCrossover
fn clone(&self) -> SimulatedBinaryCrossover
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl CrossoverOperator for SimulatedBinaryCrossover
impl CrossoverOperator for SimulatedBinaryCrossover
Source§fn crossover(
&self,
parent_a: &Array1<f64>,
parent_b: &Array1<f64>,
rng: &mut impl RandomGenerator,
) -> (Array1<f64>, Array1<f64>)
fn crossover( &self, parent_a: &Array1<f64>, parent_b: &Array1<f64>, rng: &mut impl RandomGenerator, ) -> (Array1<f64>, Array1<f64>)
Performs crossover between two parents to produce two offspring.
fn n_offsprings_per_crossover(&self) -> usize
Source§fn operate(
&self,
parents_a: &Array2<f64>,
parents_b: &Array2<f64>,
crossover_rate: f64,
rng: &mut impl RandomGenerator,
) -> Array2<f64>
fn operate( &self, parents_a: &Array2<f64>, parents_b: &Array2<f64>, crossover_rate: f64, rng: &mut impl RandomGenerator, ) -> Array2<f64>
Applies the crossover operator to the population.
Takes two parent populations and returns two offspring populations.
Includes a
crossover_rate to determine which pairs undergo crossover.Auto Trait Implementations§
impl Freeze for SimulatedBinaryCrossover
impl RefUnwindSafe for SimulatedBinaryCrossover
impl Send for SimulatedBinaryCrossover
impl Sync for SimulatedBinaryCrossover
impl Unpin for SimulatedBinaryCrossover
impl UnsafeUnpin for SimulatedBinaryCrossover
impl UnwindSafe for SimulatedBinaryCrossover
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