Trait oxigen::genotype::Genotype [−][src]
pub trait Genotype<T>: FromIterator<T> + Display + Clone + Send + Sync { type ProblemSize: Default + Send + Sync; fn iter(&self) -> Iter<T>; fn into_iter(self) -> IntoIter<T>; fn generate(size: &Self::ProblemSize) -> Self; fn fitness(&self) -> f64; fn mutate(&mut self, rgen: &mut SmallRng, index: usize); fn is_solution(&self, fitness: f64) -> bool; }
This trait defines an individual of a population in the genetic algorithm. It defines the fitness and mutation functions and the type of the individual representation.
Associated Types
type ProblemSize: Default + Send + Sync
The type that represents the problem size of the genotype. For example,
in the N Queens problem the size of the ProblemSize
is a numeric type
(the number of queens).
Required Methods
fn iter(&self) -> Iter<T>
Returns an iterator over the genes of the individual.
fn into_iter(self) -> IntoIter<T>
Consumes the individual into an iterator over its genes.
fn generate(size: &Self::ProblemSize) -> Self
Randomly initiailzes an individual.
fn fitness(&self) -> f64
Returns a fitness value for an individual.
fn mutate(&mut self, rgen: &mut SmallRng, index: usize)
Defines the manner in which an individual is mutated when an elemennt of the individual is selected to mutate.
fn is_solution(&self, fitness: f64) -> bool
Defines if an individual is a valid solution to the problem.