00001 #ifndef GENETICMINIMIZER_H
00002 #define GENETICMINIMIZER_H
00003
00004 #include <vector>
00005 #include <armadillo>
00006 using namespace arma;
00007
00008 #include "minimizer.h"
00009 #include "../evolver/evolver.h"
00010
00011 class EvolutionaryWalker;
00012
00021 class GeneticMinimizer : public Minimizer, public Evolver
00022 {
00023 public:
00024 GeneticMinimizer(Config *config);
00025
00026 void runMinimizer();
00027 void loadConfiguration(INIParser * settings);
00028
00029 void setNSamples(int nStart, int nEnd) {
00030 nSamples = nStart;
00031 nSamplesStart = nStart;
00032 nSamplesEnd = nEnd;
00033 }
00034 void setNCycles(int nCycles) {
00035 this->nCycles = nCycles;
00036 }
00037
00038 private:
00039 double fitness(vec &coefficients, int population, int individual);
00040
00041
00042 double nSamples;
00043
00044 int nSamplesStart;
00045 int nSamplesEnd;
00046 int nCycles;
00047 vec* energies;
00048
00049 int nParticles;
00050 int nDimensions;
00051 double stepLength;
00052
00053 MonteCarlo *monteCarlo;
00054 WaveFunction *wave;
00055 Hamiltonian *hamiltonian;
00056 };
00057
00058 #endif // GENETICMINIMIZER_H