GENEIAL  0.2=/
 All Classes Pages
ContinousMultiValueBuilderSettings.h
1 #pragma once
2 
3 #include <geneial/namespaces.h>
4 #include <geneial/core/population/builder/MultiValueBuilderSettings.h>
5 
6 geneial_private_namespace(geneial)
7 {
8 geneial_private_namespace(population)
9 {
10 geneial_private_namespace(chromosome)
11 {
12 
13 geneial_export_namespace
14 {
15 
16 template<typename VALUE_TYPE, typename FITNESS_TYPE>
17 class ContinousMultiValueBuilderSettings: public MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>
18 {
19 private:
20 
21  bool _hasStart; //Do we have a starting point?
22 
23  VALUE_TYPE _start; //the starting point from which to start the chromosome array
24 
25  VALUE_TYPE _eps; //eps delta deriation between values in the array
26 
27 public:
28 
29  const static bool DEFAULT_HAS_START = false;
30  const static bool DEFAULT_START = 0;
31  const static bool DEFAULT_EPS = 1;
32 
33  ContinousMultiValueBuilderSettings(const typename FitnessEvaluator<FITNESS_TYPE>::ptr fitnessEvaluator,
34  const unsigned int num = MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>::DEFAULT_NUM,
35  const VALUE_TYPE random_max = MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>::DEFAULT_RANDOM_MAX,
36  const VALUE_TYPE random_min = MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>::DEFAULT_RANDOM_MIN,
37  const bool hasStart = DEFAULT_HAS_START,
38  const VALUE_TYPE start = DEFAULT_START,
39  const VALUE_TYPE eps = DEFAULT_EPS) :
40  MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>(fitnessEvaluator, num, random_max, random_min),
41  _hasStart(hasStart),
42  _start(start), //Start point for generating ContinousChromomsomes
43  _eps(eps) //Eps derivation from previous point per step
44  {
45  }
46 
47  virtual ~ContinousMultiValueBuilderSettings()
48  {
49  }
50 
51  VALUE_TYPE getEps() const
52  {
53  return _eps;
54  }
55 
56  void setEps(VALUE_TYPE eps)
57  {
58  _eps = eps;
59  }
60 
61  void setHasStart(bool hasStart)
62  {
63  _hasStart = hasStart;
64  }
65 
66  VALUE_TYPE hasStart() const
67  {
68  return _hasStart;
69  }
70 
71  VALUE_TYPE getStartValue() const
72  {
73  return _start;
74  }
75 
76  void setStartValue(VALUE_TYPE start)
77  {
78  _start = start;
79  }
80 };
81 
82 } /* geneial_export_namespace */
83 } /* private namespace chromosome */
84 } /* private namespace population */
85 } /* private namespace geneial */