BALL  1.5.0
geneticAlgorithm.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_GENETICALGORITHM_H
7 #define BALL_DOCKING_GENETICDOCK_GENETICALGORITHM_H
8 
9 #include "geneticIndividual.h"
11 
12 #include <vector>
13 #include <utility>
14 #include <random>
15 
16 namespace BALL
17 {
18 
19  class DockProblem;
20 
21  class DockingAlgorithm;
22 
24  {
25  friend class EvolutionaryDocking;
26 
27  public:
28  //CREATE(GeneticAlgorithm)
29 
33 
37 
41  int pop_number,
42  int iter,
43  int init,
44  int pop,
45  int surv,
46  double mrate,
47  int save,
48  int citer,
49  double cvalue,
50  int cstart
51  );
52 
55  virtual ~GeneticAlgorithm();
56 
59  virtual GeneticAlgorithm& operator= (const GeneticAlgorithm& ga);
60 
63  // virtual GeneticAlgorithm* clone();
64 
67  void setup(DockProblem*,
68  int pop_number,
69  int iter,
70  int init,
71  int pop,
72  int surv,
73  double mrate,
74  int save,
75  int citer,
76  double cvalue,
77  int cstart
78  );
79 
82  virtual void start();
83 
86  virtual double getValue() { return 0.0; };
87 
90  GeneticIndividual* getIndividual(Index i);
91 
94  bool registerParameter(GenericParameter*);
95 
96  protected:
97 
98  double calculate(GeneticIndividual*);
99 
100  vector<GenericParameter*> parameters_;
101 
104  void select(Size);
105 
108  void mate();
109 
112  void mutate();
113 
116  void cleanUp();
117 
119  void cleanPool(vector<GeneticIndividual>& pool);
120 
123  bool multiDemeCheck();
124 
127  void updatePool();
128 
132 
135  std::vector<std::vector<GeneticIndividual> > pools_;
136 
139  std::vector<std::pair<GeneticIndividual*, GeneticIndividual*> > selected_;
140 
143  std::vector<double> probabilities_;
144 
148 
152 
156 
160 
164 
168 
172 
175  bool finished_;
176 
178 
181  std::mt19937 rng_;
182 
186  };
187 }
188 
189 #endif /* BALL_DOCKING_GENETICDOCK_GENETICALGORITHM_H */
BALL::GeneticAlgorithm::gp_
DockProblem * gp_
Definition: geneticAlgorithm.h:147
BALL_INDEX_TYPE
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::GeneticAlgorithm::template_individual_
GeneticIndividual template_individual_
Definition: geneticAlgorithm.h:185
BALL::GeneticAlgorithm::probabilities_
std::vector< double > probabilities_
Definition: geneticAlgorithm.h:143
BALL::EvolutionaryDocking
Definition: evolutionaryDocking.h:34
BALL::GeneticAlgorithm::immune_
Size immune_
Definition: geneticAlgorithm.h:155
BALL::GeneticAlgorithm::finished_
bool finished_
Definition: geneticAlgorithm.h:175
BALL::GeneticAlgorithm::getValue
virtual double getValue()
Definition: geneticAlgorithm.h:86
BALL::GeneticAlgorithm::iteration_
Size iteration_
Definition: geneticAlgorithm.h:163
geneticIndividual.h
BALL_SIZE_TYPE
BALL::GeneticAlgorithm::rng_
std::mt19937 rng_
Definition: geneticAlgorithm.h:181
BALL::GeneticAlgorithm::docking_algorithm_
DockingAlgorithm * docking_algorithm_
Definition: geneticAlgorithm.h:177
BALL::GeneticAlgorithm::conv_start_
int conv_start_
Definition: geneticAlgorithm.h:171
BALL::GeneticIndividual
Definition: geneticIndividual.h:15
BALL::GeneticAlgorithm::max_iterations_
Size max_iterations_
Definition: geneticAlgorithm.h:151
BALL
Definition: constants.h:12
BALL_DEPRECATED
#define BALL_DEPRECATED
Definition: COMMON/global.h:64
BALL::GeneticAlgorithm::survivors_
Size survivors_
Definition: geneticAlgorithm.h:167
BALL::GeneticAlgorithm::population_size_
Size population_size_
Definition: geneticAlgorithm.h:131
BALL::GeneticAlgorithm::mutation_rate_
double mutation_rate_
Definition: geneticAlgorithm.h:159
BALL::GeneticAlgorithm::selected_
std::vector< std::pair< GeneticIndividual *, GeneticIndividual * > > selected_
Definition: geneticAlgorithm.h:139
BALL::GeneticAlgorithm::parameters_
vector< GenericParameter * > parameters_
Definition: geneticAlgorithm.h:100
BALL::DockingAlgorithm
Definition: dockingAlgorithm.h:45
BALL::DockProblem
Definition: dockProblem.h:35
BALL::GenericParameter
Definition: parameter.h:14
BALL::GeneticAlgorithm::pools_
std::vector< std::vector< GeneticIndividual > > pools_
Definition: geneticAlgorithm.h:135
BALL::GeneticAlgorithm
Definition: geneticAlgorithm.h:23
parameter.h