Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

SIG_GPManager.h

00001 #ifndef SIGEL_GP_SIG_GPMANAGER_H
00002 #define SIGEL_GP_SIG_GPMANAGER_H
00003 
00004 #include "SIGEL_GP/SIG_GPFitnessTrainer.h"
00005 #include "SIGEL_GP/SIG_GPTournament.h"
00006 #include "SIGEL_Tools/SIG_Randomizer.h"
00007 #include "SIGEL_MasterGUI/SIG_IndividualListItem.h"
00008 
00009 #include <qvector.h>
00010 #include <qvaluelist.h>
00011 #include <qdatetime.h>
00012 #include <qlistview.h>
00013 
00014 #include <qthread.h>
00015 
00016 namespace SIGEL_GP
00017 {
00018 
00031   class SIG_GPManager // : public QThread
00032     {
00033 
00041  public:
00042   bool userTerminated;
00043 
00044   void start()
00045     {
00046       run();
00047     };
00048 
00049   void wait()
00050     { };
00051 
00052   void msleep( int )
00053     { };
00054 
00055   bool running()
00056     { return false; };
00057 
00058  private:
00064   QValueList<int> taskCanDoList;
00065 
00070  protected:
00071   SIG_GPExperiment &actExperiment;
00072 
00073  protected:
00074   bool schlussJetzt;
00075 
00076  private:
00077   QDateTime startTime;
00078 
00083  private:
00084   SIG_GPFitnessTrainer trainer;
00085   
00090  private:
00091   QVector<SIG_GPTournament> tours;
00092 
00096  private:
00097   SIGEL_Tools::SIG_Randomizer randomizer;
00098 
00099  private:
00100   bool fitnessCalculated;
00101 
00102  private:
00103   int currentGenerationNo;
00104 
00113  public:
00114   SIG_GPManager(SIG_GPExperiment &experiment);
00115 
00123  public:
00124   ~SIG_GPManager();
00125 
00136  private:
00137   void evolutionLoop();
00138 
00149  private:
00150   void createTours(int quantity);
00151 
00162  private:
00163   void evalNewIndis();
00164 
00176  private:
00177   void calcInitTourSet();
00178 
00179  private:
00180   virtual void haveABreak();
00181 
00182  private:
00183   virtual void messageEvolutionStop();
00184 
00185  private:
00186   virtual void updateIndividualView( int );
00187 
00197  private:
00198   void stopIfNecessary(bool generationBreak);
00199 
00205  private:
00206   bool checkTerminationConditions(bool generationBreak);
00207 
00214  public:
00215   void run();
00216   
00222 private:
00223   SIG_GPExperiment& getActExperiment();
00224 
00230 private:
00231   SIG_GPFitnessTrainer& getActTrainer();
00232 
00233 };
00234 
00235 }
00236 #endif // SIGEL_GP_SIG_GPMANAGER_H
00237 
00238 
00239 
00240 
00241 
00242 
00243 
00244 
00245 
00246 

Generated at Mon Sep 3 01:32:23 2001 for PG 368 - SIGEL by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000