minimizer/geneticminimizer.h
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     // Monte Carlo stuff
00053     MonteCarlo *monteCarlo;
00054     WaveFunction *wave;
00055     Hamiltonian *hamiltonian;
00056 };
00057 
00058 #endif // GENETICMINIMIZER_H
 All Classes Functions