montecarlo/evolutionarymontecarlo.h
00001 #ifndef EVOLUTIONARYMONTECARLO_H
00002 #define EVOLUTIONARYMONTECARLO_H
00003 
00004 #include "montecarlo.h"
00005 #include "../evolver/evolver.h"
00006 #include "../walker/evolutionarywalker.h"
00007 
00008 class Config;
00009 
00013 class EvolutionaryMonteCarlo : public MonteCarlo, public Evolver
00014 {
00015 public:
00016     EvolutionaryMonteCarlo(Config *config, int nGenes, int nIndividuals, int nPopulations);
00017     void sample(int nCycles);
00018     double fitness(vec &genes, int population, int individual);
00019 
00020 private:
00021     int nWalkers;
00022     EvolutionaryWalker **walkers;
00023     vec2 *positions;
00024     int correlationStep;
00025     double trialEnergy;
00026     double energySum;
00027     int nEnergyUpdates;
00028     vec *meanEnergies;
00029     vec *meanEnergyCycles;
00030 };
00031 
00032 #endif // EVOLUTIONARYMONTECARLO_H
 All Classes Functions