Skip to content

Commit 563df6d

Browse files
committed
Drop on_fitness_complete and after_fitness_complete hooks as these are practically next to on_generation_complete and after_generation_complete
1 parent 0d8353d commit 563df6d

7 files changed

Lines changed: 5 additions & 89 deletions

File tree

examples/evolve_custom_extension.rs

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ impl Extension for MultiPointExtension {
6969

7070
// After mutation: Default Noop
7171

72-
// After fitness: Remove duplicates if too many
73-
fn after_fitness_complete<R: Rng, SR: StrategyReporter<Genotype = Self::Genotype>>(
72+
// After generation: Remove duplicates if too many
73+
fn after_generation_complete<R: Rng, SR: StrategyReporter<Genotype = Self::Genotype>>(
7474
&mut self,
7575
genotype: &mut Self::Genotype,
7676
state: &mut EvolveState<Self::Genotype>,
@@ -85,7 +85,7 @@ impl Extension for MultiPointExtension {
8585

8686
if duplicate_ratio > 0.5 {
8787
println!(
88-
"After fitness: High duplication ratio ({:.2}%), removing duplicates",
88+
"After generation: High duplication ratio ({:.2}%), removing duplicates",
8989
duplicate_ratio * 100.0
9090
);
9191

@@ -103,25 +103,6 @@ impl Extension for MultiPointExtension {
103103
}
104104
}
105105
}
106-
107-
// After generation: Summary statistics
108-
fn after_generation_complete<R: Rng, SR: StrategyReporter<Genotype = Self::Genotype>>(
109-
&mut self,
110-
_genotype: &mut Self::Genotype,
111-
state: &mut EvolveState<Self::Genotype>,
112-
_config: &EvolveConfig,
113-
_reporter: &mut SR,
114-
_rng: &mut R,
115-
) {
116-
if state.current_generation() % 100 == 0 {
117-
println!(
118-
"Generation {}: Best fitness: {:?}, Cardinality: {:?}",
119-
state.current_generation(),
120-
state.best_fitness_score(),
121-
state.population_cardinality()
122-
);
123-
}
124-
}
125106
}
126107

127108
fn main() {

src/extension.rs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ pub type ExtensionAllele<E> = <<E as Extension>::Genotype as Genotype>::Allele;
4545
/// * `after_selection_complete`
4646
/// * `after_crossover_complete`
4747
/// * `after_mutation_complete`
48-
/// * `after_fitness_complete`
4948
/// * `after_generation_complete`
5049
///
5150
/// For backward compatibility, the `call` method delegates to `after_selection_complete` by default.
@@ -150,17 +149,6 @@ pub trait Extension: Clone + Send + Sync + std::fmt::Debug {
150149
// Default no-op implementation
151150
}
152151

153-
fn after_fitness_complete<R: Rng, SR: StrategyReporter<Genotype = Self::Genotype>>(
154-
&mut self,
155-
_genotype: &mut Self::Genotype,
156-
_state: &mut EvolveState<Self::Genotype>,
157-
_config: &EvolveConfig,
158-
_reporter: &mut SR,
159-
_rng: &mut R,
160-
) {
161-
// Default no-op implementation
162-
}
163-
164152
fn after_generation_complete<R: Rng, SR: StrategyReporter<Genotype = Self::Genotype>>(
165153
&mut self,
166154
_genotype: &mut Self::Genotype,

src/extension/wrapper.rs

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -129,32 +129,6 @@ impl<G: EvolveGenotype> Extension for Wrapper<G> {
129129
}
130130
}
131131
}
132-
fn after_fitness_complete<R: Rng, SR: StrategyReporter<Genotype = G>>(
133-
&mut self,
134-
genotype: &mut G,
135-
state: &mut EvolveState<G>,
136-
config: &EvolveConfig,
137-
reporter: &mut SR,
138-
rng: &mut R,
139-
) {
140-
match self {
141-
Wrapper::MassDeduplication(extension) => {
142-
extension.after_fitness_complete(genotype, state, config, reporter, rng)
143-
}
144-
Wrapper::MassDegeneration(extension) => {
145-
extension.after_fitness_complete(genotype, state, config, reporter, rng)
146-
}
147-
Wrapper::MassExtinction(extension) => {
148-
extension.after_fitness_complete(genotype, state, config, reporter, rng)
149-
}
150-
Wrapper::MassGenesis(extension) => {
151-
extension.after_fitness_complete(genotype, state, config, reporter, rng)
152-
}
153-
Wrapper::Noop(extension) => {
154-
extension.after_fitness_complete(genotype, state, config, reporter, rng)
155-
}
156-
}
157-
}
158132
fn after_generation_complete<R: Rng, SR: StrategyReporter<Genotype = G>>(
159133
&mut self,
160134
genotype: &mut G,

src/strategy.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,6 @@ pub trait StrategyState<G: Genotype>: Display {
272272
/// * `on_selection_complete` (for Evolve only, as it is a more interesting point in the loop)
273273
/// * `on_crossover_complete` (for Evolve only, for completeness)
274274
/// * `on_mutation_complete` (for Evolve only, for completeness)
275-
/// * `on_fitness_complete` (for completeness)
276275
/// * `on_generation_complete`
277276
/// * `on_new_best_chromosome`
278277
/// * `on_new_best_chromosome_equal_fitness`
@@ -405,13 +404,6 @@ pub trait StrategyReporter: Clone + Send + Sync {
405404
_config: &C,
406405
) {
407406
}
408-
fn on_fitness_complete<S: StrategyState<Self::Genotype>, C: StrategyConfig>(
409-
&mut self,
410-
_genotype: &Self::Genotype,
411-
_state: &S,
412-
_config: &C,
413-
) {
414-
}
415407
fn on_generation_complete<S: StrategyState<Self::Genotype>, C: StrategyConfig>(
416408
&mut self,
417409
_genotype: &Self::Genotype,

src/strategy/evolve.rs

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,8 @@ pub enum EvolveVariant {
6161
/// * setup
6262
/// * [reporter](crate::strategy::reporter) on_start hook
6363
/// * loop while not finished
64-
/// * (before selection) increment generation & filter by age
64+
/// * increment generation
65+
/// * (before selection) filter by age
6566
/// * [select](crate::select)
6667
/// * (after selection) update population cardinality
6768
/// * [reporter](crate::strategy::reporter) on_selection_complete hook
@@ -74,8 +75,6 @@ pub enum EvolveVariant {
7475
/// * [reporter](crate::strategy::reporter) on_mutation_complete hook
7576
/// * [extension](crate::extension) after_mutation_complete hook
7677
/// * [fitness](crate::fitness) calculation
77-
/// * [reporter](crate::strategy::reporter) on_fitness_complete hook
78-
/// * [extension](crate::extension) after_fitness_complete hook
7978
/// * store best chromosome
8079
/// * [reporter](crate::strategy::reporter) on_generation_complete hook
8180
/// * [extension](crate::extension) after_generation_complete hook
@@ -337,16 +336,6 @@ impl<
337336
&self.config,
338337
fitness_thread_local.as_ref(),
339338
);
340-
self.reporter
341-
.on_fitness_complete(&self.genotype, &self.state, &self.config);
342-
self.plugins.extension.after_fitness_complete(
343-
&mut self.genotype,
344-
&mut self.state,
345-
&self.config,
346-
&mut self.reporter,
347-
&mut self.rng,
348-
);
349-
350339
self.state.update_best_chromosome_and_report(
351340
&self.genotype,
352341
&self.config,

src/strategy/hill_climb.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,6 @@ impl<G: HillClimbGenotype, F: Fitness<Genotype = G>, SR: StrategyReporter<Genoty
228228
&mut self.state,
229229
&self.config,
230230
);
231-
self.reporter
232-
.on_fitness_complete(&self.genotype, &self.state, &self.config);
233231
self.state.update_best_chromosome_from_state_chromosome(
234232
&self.genotype,
235233
&self.config,
@@ -252,8 +250,6 @@ impl<G: HillClimbGenotype, F: Fitness<Genotype = G>, SR: StrategyReporter<Genoty
252250
&self.config,
253251
fitness_thread_local.as_ref(),
254252
);
255-
self.reporter
256-
.on_fitness_complete(&self.genotype, &self.state, &self.config);
257253
self.state.update_best_chromosome_from_state_population(
258254
&self.genotype,
259255
&self.config,

src/strategy/permutate.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,6 @@ impl<G: PermutateGenotype, F: Fitness<Genotype = G>, SR: StrategyReporter<Genoty
235235
&mut self.state,
236236
&self.config,
237237
);
238-
self.reporter
239-
.on_fitness_complete(&self.genotype, &self.state, &self.config);
240238
self.state.update_best_chromosome_and_report(
241239
&self.genotype,
242240
&self.config,
@@ -270,8 +268,6 @@ impl<G: PermutateGenotype, F: Fitness<Genotype = G>, SR: StrategyReporter<Genoty
270268
});
271269

272270
receiver.iter().for_each(|(chromosome, fitness_duration)| {
273-
self.reporter
274-
.on_fitness_complete(&self.genotype, &self.state, &self.config);
275271
self.state.increment_generation();
276272
self.state.chromosome.replace(chromosome);
277273
self.state.update_best_chromosome_and_report(

0 commit comments

Comments
 (0)