13#if !defined(ULTRA_EVOLUTION_H)
14#define ULTRA_EVOLUTION_H
22#include "utility/term.h"
23#include "utility/thread_pool.h"
24#include "utility/timer.h"
81 using individual_t = evaluator_individual_t<E>;
82 using fitness_t = evaluator_fitness_t<E>;
84 using after_generation_callback_t =
85 ultra::after_generation_callback_t<individual_t, fitness_t>;
87 using on_new_best_callback_t =
88 ultra::on_new_best_callback_t<individual_t, fitness_t>;
94 template<
template<
class>
class ES>
100 evolution &refinement(refinement_callback_t);
102 evolution &on_new_best(on_new_best_callback_t);
108 [[nodiscard]]
bool is_valid()
const;
111 enum class message {status,
summary};
114 template<Population P> [[nodiscard]]
bool perform_refinement(
115 P &, internal::print_status &);
116 void print(message, internal::print_status &)
const;
117 template<Population P> [[nodiscard]]
auto refinement_tournament(
const P &);
119 [[nodiscard]]
bool stop_condition()
const;
127 shake_function_callback_t shake_ {};
129 after_generation_callback_t after_generation_callback_ {};
130 refinement_callback_t refinement_callback_ {};
133 std::stop_source external_stop_source_ {std::nostopstate};
135 bool emit_messages_ {
true};
evolution & shake_function(shake_function_callback_t)
Definition evolution.h:360
summary< typename evolution< E >::individual_t, typename evolution< E >::fitness_t > run()
Definition evolution.h:575
evolution & logger(search_log &)
Definition evolution.h:313
evolution & tag(const std::string &)
Definition evolution.h:343
evolution(const problem &, E &)
Definition evolution.h:196
bool is_valid() const
Definition evolution.h:743
evolution & stop_source(std::stop_source)
Definition evolution.h:396
evolution & after_generation(after_generation_callback_t)
Definition evolution.h:373
Definition layered_population.h:41
Definition search_log.h:28
Definition evolution_summary.h:33
std::function< std::optional< evaluator_fitness_t< E > >( evaluator_individual_t< E > &, const E &, const parameters::refinement_parameters &)> refinement_callback_t
Definition evolution_callbacks.h:46