00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef GAMANAGER_H
00019 #define GAMANAGER_H
00020
00021 using namespace std;
00022 #include <amygdala/network.h>
00023 #include <amygdala/genome.h>
00024
00025 #include <string>
00026
00032 class GAManager {
00033 public:
00034 GAManager();
00035 virtual ~GAManager();
00036
00037 void Run(AmTimeInt maxSimTime, AmTimeInt maxRunTime);
00038
00041 virtual unsigned int GetScore() = 0;
00042
00045 virtual void Setup(string uri) = 0;
00046
00050 int Loop(string uri, AmTimeInt maxSimTime, AmTimeInt maxRunTime);
00051
00053 Network* getNetwork();
00054
00057 void GenomeFormat( string format);
00058
00059 protected:
00061 Network* NN;
00062 Genome *genome;
00063 static bool run;
00064 static bool isManager;
00065 static GAManager *theGAManager;
00066
00067 protected:
00069 void finalize();
00070
00071
00072 private:
00074 static void timeout(int signum);
00075
00077 static void simStop(int signum);
00078 };
00079
00080 #endif