GENEIAL  0.2=/
 All Classes Pages
PermutationBuilderSettings.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 PermutationBuilderSettings: public MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>
18 {
19 private:
20  unsigned int _permutationRoundsMin;
21  unsigned int _permutationRoundsMax;
22 
23 public:
24  PermutationBuilderSettings(const typename FitnessEvaluator<FITNESS_TYPE>::ptr fitnessEvaluator,
25  const unsigned int num = MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>::DEFAULT_NUM,
26  const unsigned int permutationRoundsMin = MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>::DEFAULT_NUM,
27  const unsigned int permutationdsRoundsMax = 2 * MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>::DEFAULT_NUM ):
28  MultiValueBuilderSettings<VALUE_TYPE, FITNESS_TYPE>(fitnessEvaluator, num, -1, -1), //TODO (bewo): Fix this -1,-1 hack
29  _permutationRoundsMin(permutationRoundsMin),
30  _permutationRoundsMax(permutationdsRoundsMax)
31  {
32  }
33 
34  inline unsigned int getPermutationRoundsMax() const
35  {
36  return _permutationRoundsMax;
37  }
38 
39  inline void setPermutationRoundsMax(unsigned int permutationRoundsMax)
40  {
41  _permutationRoundsMax = permutationRoundsMax;
42  }
43 
44  inline unsigned int getPermutationRoundsMin() const
45  {
46  return _permutationRoundsMin;
47  }
48 
49  inline void setPermutationRoundsMin(unsigned int permutationRoundsMin)
50  {
51  _permutationRoundsMax = permutationRoundsMin;
52  }
53 
54 
55  virtual ~PermutationBuilderSettings()
56  {
57  }
58 
59 };
60 
61 } /* geneial_export_namespace */
62 } /* private namespace chromosome */
63 } /* private namespace population */
64 } /* private namespace geneial */