pub struct GraphCrossover<T>{
pub crossover_rate: f32,
pub crossover_parent_node_rate: f32,
/* private fields */
}Fields§
§crossover_rate: f32§crossover_parent_node_rate: f32Implementations§
Source§impl<T> GraphCrossover<T>
impl<T> GraphCrossover<T>
pub fn new(crossover_rate: f32, crossover_parent_node_rate: f32) -> Self
pub fn cross( &self, population: &Population<NodeChromosome<T>>, indexes: &[usize], generation: i32, ) -> Option<Phenotype<NodeChromosome<T>>>
pub fn distinct_subset(limit: usize) -> Vec<usize>
Trait Implementations§
Source§impl<T> Alter<NodeChromosome<T>> for GraphCrossover<T>
impl<T> Alter<NodeChromosome<T>> for GraphCrossover<T>
fn name(&self) -> &'static str
fn rate(&self) -> f32
fn alter_type(&self) -> AlterType
fn alter( &self, population: &mut Population<NodeChromosome<T>>, generation: i32, ) -> Vec<Metric>
fn mutate_genotype(&self, genotype: &mut Genotype<C>) -> i32
fn mutate_chromosome(&self, chromosome: &mut C) -> i32
fn mutate_gene( &self, gene: &<C as Chromosome>::GeneType, ) -> <C as Chromosome>::GeneType
fn cross( &self, population: &mut Population<C>, parent_indexes: &[usize], generation: i32, ) -> i32
fn cross_chromosomes(&self, chrom_one: &mut C, chrom_two: &mut C) -> i32
Auto Trait Implementations§
impl<T> Freeze for GraphCrossover<T>
impl<T> RefUnwindSafe for GraphCrossover<T>where
T: RefUnwindSafe,
impl<T> Send for GraphCrossover<T>where
T: Send,
impl<T> Sync for GraphCrossover<T>where
T: Sync,
impl<T> Unpin for GraphCrossover<T>where
T: Unpin,
impl<T> UnwindSafe for GraphCrossover<T>where
T: UnwindSafe,
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> 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