pub struct Generation<C, T>where
C: Chromosome,{ /* private fields */ }Expand description
A Generation represents a single generation in the evolutionary process. It contains the ecosystem, the best solution, index, metrics, score, objective, and optionally the Pareto front for multi-objective problems.
This is the main structure returned by the engine after each epoch, and it provides access to all relevant information about that generation.
§Example
use radiate_core::*;
use radiate_engines::*;
use std::time::Duration;
let engine = GeneticEngine::builder()
.codec(FloatChromosome::from((10, 0.0_f32..1.0_f32)))
.fitness_fn(|vec: Vec<f32>| -vec.iter().map(|x| x * x).sum::<f32>())
.build();
let generation = engine.iter().take(10).last().unwrap();
let ecosystem: &Ecosystem<FloatChromosome<f32>> = generation.ecosystem();
let population: &Population<FloatChromosome<f32>> = generation.population();
assert!(population.len() == 100);
let solution: &Vec<f32> = generation.value();
let index: usize = generation.index();
let score: &Score = generation.score();
let time: Duration = generation.time();
assert!(solution.len() == 10);
assert!(index == 10);Implementations§
Source§impl<C, T> Generation<C, T>where
C: Chromosome,
impl<C, T> Generation<C, T>where
C: Chromosome,
pub fn score(&self) -> &Score
pub fn front(&self) -> Option<&Front<Phenotype<C>>>
pub fn value(&self) -> &T
pub fn index(&self) -> usize
pub fn metrics(&self) -> &MetricSet
pub fn objective(&self) -> &Objective
pub fn ecosystem(&self) -> &Ecosystem<C>
pub fn population(&self) -> &Population<C>
pub fn species(&self) -> Option<&[Species<C>]>
pub fn time(&self) -> Duration
pub fn seconds(&self) -> f64
Trait Implementations§
Source§impl<C, T> Clone for Generation<C, T>
impl<C, T> Clone for Generation<C, T>
Source§impl<C, T> Debug for Generation<C, T>where
C: Chromosome,
T: Debug,
impl<C, T> Debug for Generation<C, T>where
C: Chromosome,
T: Debug,
Source§impl<C, T> FromIterator<Generation<C, T>> for Front<Phenotype<C>>where
C: Chromosome + Clone,
impl<C, T> FromIterator<Generation<C, T>> for Front<Phenotype<C>>where
C: Chromosome + Clone,
Source§fn from_iter<I: IntoIterator<Item = Generation<C, T>>>(iter: I) -> Self
fn from_iter<I: IntoIterator<Item = Generation<C, T>>>(iter: I) -> Self
Creates a value from an iterator. Read more
Source§impl<C: Chromosome, T> Scored for Generation<C, T>
impl<C: Chromosome, T> Scored for Generation<C, T>
Auto Trait Implementations§
impl<C, T> Freeze for Generation<C, T>where
T: Freeze,
impl<C, T> !RefUnwindSafe for Generation<C, T>
impl<C, T> Send for Generation<C, T>where
T: Send,
impl<C, T> Sync for Generation<C, T>where
T: Sync,
impl<C, T> Unpin for Generation<C, T>
impl<C, T> UnsafeUnpin for Generation<C, T>where
T: UnsafeUnpin,
impl<C, T> !UnwindSafe for Generation<C, T>
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