pub struct EvolveReporterSimple<G: EvolveGenotype> {
pub buffer: Option<Vec<u8>>,
pub period: usize,
pub show_genes: bool,
pub show_equal_fitness: bool,
pub show_mutate_event: bool,
pub show_extension_event: bool,
/* private fields */
}
Expand description
A Simple Evolve Reporter generic over Genotype. A report is triggered every period generations
Example output:
enter - evolve, iteration: 0
new best - generation: 0, fitness_score: Some(-3112), scale_index: None, genes: None
new best - generation: 6, fitness_score: Some(-2012), scale_index: None, genes: None
new best - generation: 38, fitness_score: Some(-1440), scale_index: None, genes: None
new best - generation: 47, fitness_score: Some(-1439), scale_index: None, genes: None
periodic - current_generation: 50, stale_generations: 2, best_generation: 47, scale_index: None, population_cardinality: Some(6), selected_population_size: 800, #extension_events: 0
new best - generation: 51, fitness_score: Some(-1437), scale_index: None, genes: None
new best - generation: 60, fitness_score: Some(-1435), scale_index: None, genes: None
new best - generation: 77, fitness_score: Some(-1120), scale_index: None, genes: None
new best - generation: 99, fitness_score: Some(-639), scale_index: None, genes: None
periodic - current_generation: 100, stale_generations: 0, best_generation: 99, scale_index: None, population_cardinality: Some(11), selected_population_size: 800, #extension_events: 1
new best - generation: 146, fitness_score: Some(-125), scale_index: None, genes: None
periodic - current_generation: 150, stale_generations: 3, best_generation: 146, scale_index: None, population_cardinality: Some(59), selected_population_size: 800, #extension_events: 1
periodic - current_generation: 200, stale_generations: 53, best_generation: 146, scale_index: None, population_cardinality: Some(592), selected_population_size: 800, #extension_events: 3
periodic - current_generation: 250, stale_generations: 103, best_generation: 146, scale_index: None, population_cardinality: Some(4), selected_population_size: 800, #extension_events: 2
periodic - current_generation: 300, stale_generations: 153, best_generation: 146, scale_index: None, population_cardinality: Some(335), selected_population_size: 800, #extension_events: 3
periodic - current_generation: 350, stale_generations: 203, best_generation: 146, scale_index: None, population_cardinality: Some(1), selected_population_size: 800, #extension_events: 2
new best - generation: 379, fitness_score: Some(66), scale_index: None, genes: None
periodic - current_generation: 400, stale_generations: 20, best_generation: 379, scale_index: None, population_cardinality: Some(570), selected_population_size: 800, #extension_events: 3
periodic - current_generation: 450, stale_generations: 70, best_generation: 379, scale_index: None, population_cardinality: Some(5), selected_population_size: 800, #extension_events: 2
periodic - current_generation: 500, stale_generations: 120, best_generation: 379, scale_index: None, population_cardinality: Some(368), selected_population_size: 800, #extension_events: 3
periodic - current_generation: 550, stale_generations: 170, best_generation: 379, scale_index: None, population_cardinality: Some(692), selected_population_size: 800, #extension_events: 3
periodic - current_generation: 600, stale_generations: 220, best_generation: 379, scale_index: None, population_cardinality: Some(75), selected_population_size: 800, #extension_events: 2
exit - evolve, iteration: 0
SetupAndCleanup: 141.833µs
Extension: 2.139ms
Select: 11.807ms
Crossover: 16.921ms
Mutate: 4.337ms
Fitness: 231.512ms
UpdateBestChromosome: 1.497ms
Other: 6.050ms
Total: 274.404ms (84% fitness)
Fields§
§buffer: Option<Vec<u8>>
§period: usize
§show_genes: bool
§show_equal_fitness: bool
§show_mutate_event: bool
§show_extension_event: bool
Implementations§
Trait Implementations§
Source§impl<G: EvolveGenotype> Default for Simple<G>
impl<G: EvolveGenotype> Default for Simple<G>
Source§impl<G: EvolveGenotype> StrategyReporter for Simple<G>
impl<G: EvolveGenotype> StrategyReporter for Simple<G>
Source§fn on_new_generation<S: StrategyState<Self::Genotype>, C: StrategyConfig>(
&mut self,
_genotype: &Self::Genotype,
state: &S,
_config: &C,
)
fn on_new_generation<S: StrategyState<Self::Genotype>, C: StrategyConfig>( &mut self, _genotype: &Self::Genotype, state: &S, _config: &C, )
Is triggered after selection
type Genotype = G
fn flush(&mut self, output: &mut Vec<u8>)
fn on_enter<S: StrategyState<Self::Genotype>, C: StrategyConfig>( &mut self, genotype: &Self::Genotype, state: &S, config: &C, )
fn on_exit<S: StrategyState<Self::Genotype>, C: StrategyConfig>( &mut self, _genotype: &Self::Genotype, state: &S, config: &C, )
fn on_new_best_chromosome<S: StrategyState<Self::Genotype>, C: StrategyConfig>( &mut self, genotype: &Self::Genotype, state: &S, _config: &C, )
fn on_new_best_chromosome_equal_fitness<S: StrategyState<Self::Genotype>, C: StrategyConfig>( &mut self, genotype: &Self::Genotype, state: &S, _config: &C, )
fn on_extension_event<S: StrategyState<Self::Genotype>, C: StrategyConfig>( &mut self, event: ExtensionEvent, _genotype: &Self::Genotype, state: &S, _config: &C, )
fn on_mutate_event<S: StrategyState<Self::Genotype>, C: StrategyConfig>( &mut self, event: MutateEvent, _genotype: &Self::Genotype, state: &S, _config: &C, )
fn on_start<S: StrategyState<Self::Genotype>, C: StrategyConfig>( &mut self, _genotype: &Self::Genotype, _state: &S, _config: &C, )
fn on_finish<S: StrategyState<Self::Genotype>, C: StrategyConfig>( &mut self, _genotype: &Self::Genotype, _state: &S, _config: &C, )
Auto Trait Implementations§
impl<G> Freeze for Simple<G>
impl<G> RefUnwindSafe for Simple<G>where
G: RefUnwindSafe,
impl<G> Send for Simple<G>
impl<G> Sync for Simple<G>
impl<G> Unpin for Simple<G>where
G: Unpin,
impl<G> UnwindSafe for Simple<G>where
G: 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> 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