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 
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 
91 
95 
96  protected:
97 
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 
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_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::GeneticAlgorithm::multiDemeCheck
bool multiDemeCheck()
BALL::GeneticAlgorithm::GeneticAlgorithm
GeneticAlgorithm()
BALL::GeneticAlgorithm::immune_
Size immune_
Definition: geneticAlgorithm.h:155
BALL::GeneticAlgorithm::iteration_
Size iteration_
Definition: geneticAlgorithm.h:163
BALL::GeneticAlgorithm::pools_
std::vector< std::vector< GeneticIndividual > > pools_
Definition: geneticAlgorithm.h:135
BALL::GeneticAlgorithm::getValue
virtual double getValue()
Definition: geneticAlgorithm.h:86
BALL::GeneticIndividual
Definition: geneticIndividual.h:16
BALL::GeneticAlgorithm::conv_start_
int conv_start_
Definition: geneticAlgorithm.h:171
geneticIndividual.h
BALL::GeneticAlgorithm::finished_
bool finished_
Definition: geneticAlgorithm.h:175
BALL::GeneticAlgorithm::mutation_rate_
double mutation_rate_
Definition: geneticAlgorithm.h:159
BALL::GeneticAlgorithm::population_size_
Size population_size_
Definition: geneticAlgorithm.h:131
BALL::GeneticAlgorithm::GeneticAlgorithm
GeneticAlgorithm(DockingAlgorithm *docker, DockProblem *, int pop_number, int iter, int init, int pop, int surv, double mrate, int save, int citer, double cvalue, int cstart)
BALL
Definition: constants.h:13
BALL::EvolutionaryDocking
Definition: evolutionaryDocking.h:35
BALL::GeneticAlgorithm::max_iterations_
Size max_iterations_
Definition: geneticAlgorithm.h:151
BALL::GeneticAlgorithm::GeneticAlgorithm
GeneticAlgorithm(const GeneticAlgorithm &ga)
BALL::GeneticAlgorithm::rng_
std::mt19937 rng_
Definition: geneticAlgorithm.h:181
BALL::GeneticAlgorithm::docking_algorithm_
DockingAlgorithm * docking_algorithm_
Definition: geneticAlgorithm.h:177
BALL::GeneticAlgorithm::cleanPool
void cleanPool(vector< GeneticIndividual > &pool)
BALL::GeneticAlgorithm::survivors_
Size survivors_
Definition: geneticAlgorithm.h:167
BALL::GeneticAlgorithm::setup
void setup(DockProblem *, int pop_number, int iter, int init, int pop, int surv, double mrate, int save, int citer, double cvalue, int cstart)
BALL::GeneticAlgorithm::mate
void mate()
BALL::GeneticAlgorithm::cleanUp
void cleanUp()
BALL_INDEX_TYPE
BALL::GeneticAlgorithm::parameters_
vector< GenericParameter * > parameters_
Definition: geneticAlgorithm.h:100
BALL::DockingAlgorithm
Definition: dockingAlgorithm.h:46
BALL::GeneticAlgorithm::gp_
DockProblem * gp_
Definition: geneticAlgorithm.h:147
BALL_SIZE_TYPE
BALL::DockProblem
Definition: dockProblem.h:36
BALL::GeneticAlgorithm::~GeneticAlgorithm
virtual ~GeneticAlgorithm()
BALL::GeneticAlgorithm::selected_
std::vector< std::pair< GeneticIndividual *, GeneticIndividual * > > selected_
Definition: geneticAlgorithm.h:139
BALL::GeneticAlgorithm::start
virtual void start()
BALL::GeneticAlgorithm::calculate
double calculate(GeneticIndividual *)
BALL::GeneticAlgorithm::select
void select(Size)
BALL::GeneticAlgorithm::getIndividual
GeneticIndividual * getIndividual(Index i)
BALL::GeneticAlgorithm::template_individual_
GeneticIndividual template_individual_
Definition: geneticAlgorithm.h:185
BALL::GenericParameter
Definition: parameter.h:15
BALL::GeneticAlgorithm::mutate
void mutate()
BALL::GeneticAlgorithm
Definition: geneticAlgorithm.h:24
BALL::GeneticAlgorithm::probabilities_
std::vector< double > probabilities_
Definition: geneticAlgorithm.h:143
BALL::GeneticAlgorithm::updatePool
void updatePool()
parameter.h
BALL::GeneticAlgorithm::registerParameter
bool registerParameter(GenericParameter *)
BALL_DEPRECATED
#define BALL_DEPRECATED
Definition: COMMON/global.h:64