OPTK  0.1.2
Toolkit for global optimisation algorithms
optimiser.hpp
Go to the documentation of this file.
1 
22 #ifndef __OPTIMISER_H_
23 #define __OPTIMISER_H_
24 
25 #include <optk/types.hpp>
26 
27 namespace optk {
28 
29 // forward declarations
30 class optimiser;
31 class optimisers;
32 
33 // optk::opt_list is a list of optimisers.
34 typedef std::vector<optimiser *> opt_list;
35 
39 class optimiser {
40 
41  public:
46  optimiser (std::string name);
47 
52  ~optimiser ();
53 
58  virtual void clear ();
59 
63  std::string get_name () { return m_name; }
64 
65  // required methods ---------------------------------------------------
66 
71  virtual void update_search_space (sspace::sspace_t *space) {}
72 
81  virtual inst::set generate_parameters (int param_id) {
82  return inst::set();
83  }
84 
95  virtual void receive_trial_results (
96  int param_id,
98  double value
99  ) {}
100 
101  // optional, convenience methods --------------------------------------
102 
110  void accept (optimisers *o);
111 
112  protected:
113 
122  void add_to_trials (int param_id, inst::node *n);
123 
130  std::unordered_map<int, inst::set> trials;
131 
132  private:
134  std::string m_name;
136  uint stepidx;
137 
139  double best_val;
142 };
143 
147 class optimisers {
148  public:
152  optimisers();
153 
158  void register_optimiser (optimiser *o);
159 
163  opt_list *collection();
164 
165  private:
166  opt_list m_arr;
167 };
168 
169 } // namespace optk
170 
171 #endif // __OPTIMISER_H_
void add_to_trials(int param_id, inst::node *n)
Definition: optimiser.cpp:75
~optimiser()
Definition: optimiser.cpp:40
std::string get_name()
Definition: optimiser.hpp:63
std::vector< param_t * > sspace_t
Definition: types.hpp:318
Definition: types.hpp:150
inst::set * best_params
Definition: optimiser.hpp:141
void accept(optimisers *o)
Definition: optimiser.cpp:69
virtual void receive_trial_results(int param_id, inst::set params, double value)
Definition: optimiser.hpp:95
std::vector< std::tuple< std::string, param * > > params
Definition: gridsearch.cpp:37
virtual void clear()
Definition: optimiser.cpp:46
Definition: optimiser.hpp:147
Defines the main types used in the program.
virtual void update_search_space(sspace::sspace_t *space)
Definition: optimiser.hpp:71
virtual inst::set generate_parameters(int param_id)
Definition: optimiser.hpp:81
Definition: core.cpp:26
Definition: optimiser.hpp:39
optimiser(std::string name)
Definition: optimiser.cpp:25
std::string m_name
Definition: optimiser.hpp:134
std::unordered_map< int, inst::set > trials
Definition: optimiser.hpp:130
uint stepidx
Definition: optimiser.hpp:136
double best_val
Definition: optimiser.hpp:139
node * set
Definition: types.hpp:75