Ultra 0.9.4
Loading...
Searching...
No Matches
parameters.h
Go to the documentation of this file.
1
12
13#if !defined(ULTRA_PARAMETERS_H)
14#define ULTRA_PARAMETERS_H
15
16#include "kernel/alps.h"
17#include "kernel/interval.h"
18#include "kernel/symbol.h"
19
20#include <filesystem>
21
22namespace ultra
23{
24
26{
28 {
37 std::size_t code_length {0};
38
45 double p_address {1.0};
46 } slp;
47
49 {
54 std::size_t individuals {0};
55
68 std::size_t init_subgroups {0};
69
77 std::size_t min_individuals {0};
78 } population;
79
81 {
99 // - `1` is the standard recombination (perform `1` crossover);
100 // - larger values enable the brood recombination method (more than one
101 // crossover).
103
113 double elitism {-1.0};
114
119 unsigned generations {0};
120
135 std::size_t mate_zone {0};
136
141 unsigned max_stuck_gen = {0};
142
147 double p_cross {-1.0};
148
162 double p_mutation {-1.0};
163
174 std::size_t tournament_size {0};
175
180 static constexpr std::size_t max_tournament_size {10000};
181 } evolution;
182
184
186 {
188 static constexpr std::size_t min_individuals {10};
189
199 } de;
200
203 {
205 {
214 double rel_radius {0.25};
215
220 double min_radius {1.0};
221
225 std::size_t individuals {20};
226
230 std::size_t generations {20};
231 } de;
232
243 double fraction {0.01};
244
247 unsigned stagnation_threshold {10};
248
250 unsigned cooldown {5};
251
266 unsigned tournament_size {0};
267
275 bool messages {true};
276 } refinement;
277
279 {
281 unsigned size {16};
282
294 std::filesystem::path serialization_file {};
295 } cache;
296
298 {
302 std::size_t individuals {3};
303 } team;
304
313
315 parameters &init();
316 [[nodiscard]] bool needs_init() const noexcept;
317
318 [[nodiscard]] bool is_valid(bool) const;
319}; // parameters
320
321} // namespace ultra
322
323#endif // include guard
Definition cache.h:50
Definition evolution.h:79
Definition alps.h:151
Definition interval.h:37
Definition parameters.h:279
unsigned size
2^size is the number of elements of the cache. 0 disables caching.
Definition parameters.h:281
std::filesystem::path serialization_file
Definition parameters.h:294
Definition parameters.h:186
static constexpr std::size_t min_individuals
Minimum population size required for Differential Evolution.
Definition parameters.h:188
interval< double > weight
Definition parameters.h:198
Definition parameters.h:81
std::size_t mate_zone
Definition parameters.h:135
std::size_t tournament_size
Definition parameters.h:174
static constexpr std::size_t max_tournament_size
Definition parameters.h:180
double elitism
Definition parameters.h:113
double p_mutation
Definition parameters.h:162
unsigned brood_recombination
Definition parameters.h:102
double p_cross
Definition parameters.h:147
unsigned max_stuck_gen
Definition parameters.h:141
unsigned generations
Definition parameters.h:119
std::size_t individuals
Definition parameters.h:54
std::size_t init_subgroups
Definition parameters.h:68
std::size_t min_individuals
Definition parameters.h:77
Parameters controlling numerical optimisation of GP individuals.
Definition parameters.h:203
unsigned cooldown
Number of generations to wait after a refinement attempt.
Definition parameters.h:250
unsigned tournament_size
Definition parameters.h:266
bool messages
Definition parameters.h:275
double fraction
Definition parameters.h:243
unsigned stagnation_threshold
Definition parameters.h:247
Definition parameters.h:28
double p_address
Definition parameters.h:45
std::size_t code_length
Definition parameters.h:37
Definition parameters.h:298
std::size_t individuals
Definition parameters.h:302
Definition parameters.h:26
std::size_t min_samples_per_eval_thread
Definition parameters.h:312
parameters & init()
Definition parameters.cc:84
parameters & fill_undefined_from(const parameters &)
Definition parameters.cc:26
bool is_valid(bool) const
Definition parameters.cc:155