BALL  1.5.0
genes.h
Go to the documentation of this file.
1 // ----------------------------------------------------
2 // $Maintainer: Marcel Schumann $
3 // $Authors: Jan Fuhrmann, Marcel Schumann $
4 // ----------------------------------------------------
5 
6 #ifndef BALL_DOCKING_GENETICDOCK_GENES_H
7 #define BALL_DOCKING_GENETICDOCK_GENES_H
8 
10 
11 #include <vector>
12 #include <random>
13 
14 namespace BALL
15 {
19  {
20  public:
21 
25 
28  virtual ~GenericGene(){};
29 
32  virtual GenericGene* mate(GenericGene* gg) = 0;
33 
36  virtual void mutate() = 0;
37 
40  virtual GenericGene* clone() = 0;
41 
44  virtual void randomize() = 0;
45 
46  protected:
47  double randomGeneValue();
48  int randomGenePosition(int from, int to);
49 
50  private:
51  std::mt19937 rng_;
52  std::uniform_real_distribution<double> dist_;
53  };
54 
58  {
59  public:
60 
64 
67  virtual ~DoubleGene();
68 
72 
75  virtual GenericGene *mate(GenericGene * gg);
76 
79  virtual void mutate();
80 
83  std::vector<double> getValues();
84 
87  void setValue(std::vector<double> v);
88 
91  virtual GenericGene *clone();
92 
95  void randomize();
96 
97  private:
98 
101  std::vector<double> values_;
102  };
103 
104 
108  {
109  public:
110 
114 
117  virtual ~QuaternionGene();
118 
121  virtual GenericGene *mate(GenericGene *gg);
122 
125  virtual void mutate();
126 
130 
133  virtual GenericGene *clone();
134 
137  void randomize();
138 
139  private:
140 
143  Quaternion quat_;
144  };
145 }
146 
147 #endif /* BALL_DOCKING_GENETICDOCK_GENES_H */
Definition: constants.h:13
virtual void randomize()=0
virtual void mutate()=0
int randomGenePosition(int from, int to)
virtual ~GenericGene()
Definition: genes.h:28
virtual GenericGene * clone()=0
virtual GenericGene * mate(GenericGene *gg)=0
double randomGeneValue()
virtual void mutate()
virtual GenericGene * mate(GenericGene *gg)
std::vector< double > getValues()
virtual ~DoubleGene()
virtual GenericGene * clone()
void setValue(std::vector< double > v)
virtual void mutate()
virtual GenericGene * mate(GenericGene *gg)
virtual GenericGene * clone()
Quaternion getValue()
virtual ~QuaternionGene()
#define BALL_DEPRECATED
Definition: COMMON/global.h:64
#define BALL_EXPORT
Definition: COMMON/global.h:50