pub struct PmxCrossover;Expand description
Partially Mapped Crossover (PMX) for permutation genomes
PMX preserves relative order and position information from both parents. It selects a segment from parent1 and maps the corresponding positions from parent2, creating valid permutations.
Reference: Goldberg, D. E., & Lingle, R. (1985). Alleles, Loci, and the Traveling Salesman Problem. ICGA.
Implementations§
Source§impl PmxCrossover
impl PmxCrossover
Trait Implementations§
Source§impl Clone for PmxCrossover
impl Clone for PmxCrossover
Source§fn clone(&self) -> PmxCrossover
fn clone(&self) -> PmxCrossover
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<Permutation> for PmxCrossover
impl CrossoverOperator<Permutation> for PmxCrossover
Source§fn crossover<R: Rng>(
&self,
parent1: &Permutation,
parent2: &Permutation,
rng: &mut R,
) -> OperatorResult<(Permutation, Permutation)>
fn crossover<R: Rng>( &self, parent1: &Permutation, parent2: &Permutation, rng: &mut R, ) -> OperatorResult<(Permutation, Permutation)>
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
Source§impl Debug for PmxCrossover
impl Debug for PmxCrossover
Source§impl Default for PmxCrossover
impl Default for PmxCrossover
Source§fn default() -> PmxCrossover
fn default() -> PmxCrossover
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for PmxCrossover
impl RefUnwindSafe for PmxCrossover
impl Send for PmxCrossover
impl Sync for PmxCrossover
impl Unpin for PmxCrossover
impl UnsafeUnpin for PmxCrossover
impl UnwindSafe for PmxCrossover
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.