diff --git a/experiments/etc/shared.py b/experiments/etc/shared.py index cdb7c6a34..f106f9f16 100644 --- a/experiments/etc/shared.py +++ b/experiments/etc/shared.py @@ -62,9 +62,9 @@ def solve_scientific(self, scientific_format, problem_path, config_path, solutio raise ValueError('cannot get solution statistic') # expected: - # fitness: (0.000, 92.000, 53389.603), + # best fitness: (0.000, 92.000, 53389.603), for best in re.finditer( - r"fitness: \((?P[\d.]+),?\s*(?P[\d.]+)?\s*, (?P[\d.]+)\)", + r"best fitness: \((?P[\d.]+),?\s*(?P[\d.]+)?\s*, (?P[\d.]+)\)", p.stdout): pass diff --git a/rosomaxa/src/evolution/telemetry.rs b/rosomaxa/src/evolution/telemetry.rs index 5f3c73c45..3c7fd6aa4 100644 --- a/rosomaxa/src/evolution/telemetry.rs +++ b/rosomaxa/src/evolution/telemetry.rs @@ -269,6 +269,11 @@ where let speed = generations as Float / self.time.elapsed_secs_as_float(); self.log(format!("[{elapsed}s] total generations: {generations}, speed: {speed:.2} gen/sec",).as_str()); + if let Some(best) = population.ranked().next() { + self.log(format!("\tbest fitness: ({})", format_fitness(best.fitness())).as_str()); + } else { + self.log("no solutions found"); + } self.metrics.duration = elapsed; self.metrics.speed = speed;