GENEIAL  0.2=/
 All Classes Pages
TrailingStopCriterion.h
1 #pragma once
2 
3 #include <geneial/algorithm/criteria/BaseStoppingCriterion.h>
4 
5 geneial_private_namespace(geneial)
6 {
7 geneial_private_namespace(algorithm)
8 {
9 geneial_private_namespace(stopping_criteria)
10 {
11 using ::geneial::population::management::BaseManager;
12 
13 geneial_export_namespace
14 {
15 
16 //TODO (bewo) Idea to implement here: -> c.f. TrailingStop in Stock market
17 //Trace the best chromosome, when its gets worser as a given threshold abort.
18 
19 template<typename FITNESS_TYPE>
20 class TrailingStopCriterion: public BaseStoppingCriterion<FITNESS_TYPE>
21 {
22 public:
23  virtual ~TrailingStopCriterion()
24  {
25  }
26 
27  virtual bool wasReached(BaseManager<FITNESS_TYPE> &manager)
28  {
29  //TODO (bewo): unimplemeted!
30  return false;
31  }
32 
33  virtual void print(std::ostream& os) const
34  {
35  os << "TrailingStop ()";
36  }
37 };
38 
39 } /* geneial_export_namespace */
40 } /* private namespace stopping_criteria */
41 } /* private namespace algorithm */
42 } /* private namespace geneial */