Struct genetic_algorithm::mutate::MutateMultiGene  
source · pub struct MutateMultiGene {
    pub number_of_mutations: usize,
    pub mutation_probability: f32,
}Expand description
Selects Chromosomes in the Population with the provided mutation_probability. Then mutates the selected chromosomes the provided number of times, where the Genotype determines whether this is random, relative or scaled.
Duplicate mutations of the same gene are allowed, as disallowing duplicates is relatively expensive and mutations should be quite small, so there is little chance for conflict.
Useful when a single mutation would generally not lead to improvement, because the problem space behaves more like a UniqueGenotype where genes must be swapped (but the UniqueGenotype doesn’t map to the problem space well). Set number_of_mutations to two in that situation.
Fields§
§number_of_mutations: usize§mutation_probability: f32Implementations§
Trait Implementations§
source§impl From<MultiGene> for Wrapper
 
impl From<MultiGene> for Wrapper
source§fn from(mutate: MutateMultiGene) -> Self
 
fn from(mutate: MutateMultiGene) -> Self
Converts to this type from the input type.
source§impl Mutate for MultiGene
 
impl Mutate for MultiGene
fn call<G: EvolveGenotype, R: Rng, SR: StrategyReporter<Genotype = G>>( &mut self, genotype: &mut G, state: &mut EvolveState<G>, _config: &EvolveConfig, _reporter: &mut SR, rng: &mut R, )
Auto Trait Implementations§
impl Freeze for MultiGene
impl RefUnwindSafe for MultiGene
impl Send for MultiGene
impl Sync for MultiGene
impl Unpin for MultiGene
impl UnwindSafe for MultiGene
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
 
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit)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