GENEIAL  0.2=/
 All Classes Pages
MultiValueBuilderSettings.h
1 #pragma once
2 
3 #include <geneial/namespaces.h>
4 #include <geneial/core/population/builder/BuilderSettings.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 MultiValueBuilderSettings: public BuilderSettings<FITNESS_TYPE>
18 {
19 private:
20  VALUE_TYPE _random_max;
21 
22  VALUE_TYPE _random_min;
23 
24  unsigned int _numberallee;
25 
26 public:
27 
28  static constexpr const VALUE_TYPE DEFAULT_RANDOM_MAX = 100;
29 
30  static constexpr const VALUE_TYPE DEFAULT_RANDOM_MIN = 0;
31 
32  static constexpr const unsigned int DEFAULT_NUM = 2;
33 
34  MultiValueBuilderSettings( const typename FitnessEvaluator<FITNESS_TYPE>::ptr fitnessEvaluator,
35  const unsigned int num = DEFAULT_NUM,
36  const VALUE_TYPE random_max = DEFAULT_RANDOM_MAX,
37  const VALUE_TYPE random_min = DEFAULT_RANDOM_MIN ) :
38  BuilderSettings<FITNESS_TYPE>(fitnessEvaluator),
39  _random_max(random_max),
40  _random_min(random_min),
41  _numberallee(num)
42  {
43  }
44 
45  virtual ~MultiValueBuilderSettings()
46  {
47  }
48 
49  inline unsigned int getNum() const
50  {
51  return _numberallee;
52  }
53 
54  inline void setNum(unsigned int num)
55  {
56  _numberallee = num;
57  }
58 
59  inline VALUE_TYPE getRandomMax() const
60  {
61  return _random_max;
62  }
63 
64  inline void setRandomMax(VALUE_TYPE randomMax)
65  {
66  _random_max = randomMax;
67  }
68 
69  inline VALUE_TYPE getRandomMin() const
70  {
71  return _random_min;
72  }
73 
74  inline void setRandomMin(VALUE_TYPE randomMin)
75  {
76  _random_min = randomMin;
77  }
78 };
79 
80 } /* geneial_export_namespace */
81 } /* private namespace chromosome */
82 } /* private namespace population */
83 } /* private namespace geneial */
84