GENEIAL  0.2=/
 All Classes Pages
FitnessProportionalSelectionSettings.h
1 #pragma once
2 
3 #include <cassert>
4 #include <geneial/namespaces.h>
5 #include <geneial/core/operations/selection/BaseSelectionSettings.h>
6 
7 geneial_private_namespace(geneial)
8 {
9 geneial_private_namespace(operation)
10 {
11 geneial_private_namespace(selection)
12 {
13 
14 geneial_export_namespace
15 {
16 
20 class FitnessProportionalSelectionSettings: public BaseSelectionSettings
21 {
22 private:
23  unsigned int _numberSelectBest;
24 
25 public:
26  const constexpr static unsigned int DEFAULT_NUMBER_SELECT_BEST = 1;
27 
28  FitnessProportionalSelectionSettings(
29  unsigned int numberOfParents = BaseSelectionSettings::DEFAULT_NUMBER_OF_PARENTS,
30  unsigned int numberSelectBest = DEFAULT_NUMBER_SELECT_BEST) :
31  BaseSelectionSettings(numberOfParents), _numberSelectBest(numberSelectBest)
32  {
33  assert(numberOfParents >= numberSelectBest);
34  }
35 
36  unsigned int getNumberSelectBest() const
37  {
38  return _numberSelectBest;
39  }
40 
41  void setNumberSelectBest(unsigned int numberSelectBest)
42  {
43  _numberSelectBest = numberSelectBest;
44  }
45 
46 };
47 
48 } /* geneial_export_namespace */
49 } /* private namespace selection */
50 } /* private namespace operation */
51 } /* private namespace geneial */
52