Struct genetic_algorithm::crossover::CrossoverClone
source · pub struct CrossoverClone {
pub keep_parent: bool,
}
Expand description
Children are clones of the parents, effectively doubling the population if you keep the parents. Acts as no-op if the parents are not kept.
Allowed for unique genotypes.
Fields§
§keep_parent: bool
Implementations§
Trait Implementations§
source§impl Crossover for Clone
impl Crossover for Clone
fn call<G: Genotype, R: Rng, SR: EvolveReporter<Allele = G::Allele>>( &mut self, _genotype: &G, state: &mut EvolveState<G::Allele>, _config: &EvolveConfig, _reporter: &mut SR, _rng: &mut R, )
source§fn require_crossover_indexes(&self) -> bool
fn require_crossover_indexes(&self) -> bool
to guard against invalid Crossover strategies which break the internal consistency
of the genes, unique genotypes can’t simply exchange genes without gene duplication issues
source§fn require_crossover_points(&self) -> bool
fn require_crossover_points(&self) -> bool
to guard against invalid Crossover strategies which break the internal consistency
of the genes, unique genotypes can’t simply exchange genes without gene duplication issues
Auto Trait Implementations§
impl Freeze for Clone
impl RefUnwindSafe for Clone
impl Send for Clone
impl Sync for Clone
impl Unpin for Clone
impl UnwindSafe for Clone
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