Ultra 0.9.4
Loading...
Searching...
No Matches
search_stats.h
Go to the documentation of this file.
1
12
13#if !defined(ULTRA_SEARCH_STATS_H)
14#define ULTRA_SEARCH_STATS_H
15
16#include "kernel/distribution.h"
17#include "kernel/fitness.h"
18#include "kernel/individual.h"
20#include "utility/misc.h"
21
22#include <algorithm>
23#include <chrono>
24#include <cmath>
25#include <functional>
26#include <span>
27#include <vector>
28
29namespace ultra
30{
31
41///
42template<Individual I, Fitness F>
44{
45public:
48 {
49 std::size_t run {}; // run identifier
50 I best_individual {}; // best individual produced by the run
51 model_measurements<F> best_measurements {}; // measurements associated
52 }; // with the best individual
53
54 void update(const I &, const model_measurements<F> &,
55 std::chrono::milliseconds);
56
57 [[nodiscard]] std::size_t best_run() const noexcept;
58 [[nodiscard]] const I &best_individual() const noexcept;
59 [[nodiscard]] std::set<std::size_t> good_runs(
60 const model_measurements<F> &) const;
61 [[nodiscard]] const model_measurements<F> &best_measurements() const noexcept;
62 [[nodiscard]] std::size_t runs() const noexcept;
63 [[nodiscard]] double success_rate(
64 const model_measurements<F> &) const noexcept;
65 [[nodiscard]] std::span<const run_summary> elite_runs(
66 double = 0.05) const noexcept;
67
72
76 std::chrono::milliseconds elapsed {0};
77
78private:
79 std::vector<run_summary> stats_ {};
80};
81
83} // namespace ultra
84
85#endif // include guard
Definition distribution.h:36
Definition search_stats.h:44
std::set< std::size_t > good_runs(const model_measurements< F > &) const
Definition search_stats.h:90
double success_rate(const model_measurements< F > &) const noexcept
Definition search_stats.h:170
const I & best_individual() const noexcept
Definition search_stats.h:130
distribution< F > fitness_distribution
Definition search_stats.h:71
std::chrono::milliseconds elapsed
Definition search_stats.h:76
std::size_t best_run() const noexcept
Definition search_stats.h:118
void update(const I &, const model_measurements< F > &, std::chrono::milliseconds)
Definition search_stats.h:41
std::size_t runs() const noexcept
Definition search_stats.h:153
std::span< const run_summary > elite_runs(double=0.05) const noexcept
Definition search_stats.h:199
const model_measurements< F > & best_measurements() const noexcept
Definition search_stats.h:143
STL namespace.
Definition model_measurements.h:28
Summary information for a single run.
Definition search_stats.h:48