00001 #ifndef SIGEL_GP_SIG_GPEXPERIMENT_H 00002 #define SIGEL_GP_SIG_GPEXPERIMENT_H 00003 00004 #include "SIGEL_Robot/SIG_Robot.h" 00005 #include "SIGEL_GP/SIG_GPParameter.h" 00006 #include "SIGEL_Environment/SIG_Environment.h" 00007 #include "SIGEL_GP/SIG_GPPopulation.h" 00008 #include "SIGEL_Simulation/SIG_SimulationParameters.h" 00009 #include "SIGEL_GP/SIG_GPExperimentHistoryEntry.h" 00010 00011 #include <qstring.h> 00012 #include <qtextstream.h> 00013 #include <qlist.h> 00014 00021 namespace SIGEL_GP 00022 { 00023 00031 class SIG_GPExperiment { 00032 00036 public: 00037 SIGEL_Robot::SIG_Robot robot; 00038 00042 public: 00043 SIG_GPParameter gpParameter; 00044 00048 public: 00049 QString experimentName; 00050 00054 public: 00055 SIGEL_Environment::SIG_Environment environment; 00056 00060 public: 00061 QString fitnessFunctionName; 00062 00066 public: 00067 SIG_GPPopulation population; 00068 00073 public: 00074 SIGEL_Simulation::SIG_SimulationParameters simulationParameter; 00075 00079 public: 00080 QString comment; 00081 00082 public: 00083 QList< SIG_GPExperimentHistoryEntry > experimentHistory; 00084 00085 00095 public: 00096 SIG_GPExperiment(QString exp); 00097 00106 public: 00107 SIG_GPExperiment(); 00108 00109 public: 00110 QString SIGEL_GP::SIG_GPExperiment::cutAfterFiveHashes(QTextStream& source); 00111 00123 public: 00124 void loadExperiment(QTextStream &file); 00125 00136 public: 00137 void saveExperiment(QTextStream & file); 00138 00139 private: 00140 void writeHistoryToFileTransfer( QTextStream &file ); 00141 00142 private: 00143 void readHistoryFromFileTransfer( QTextStream &file ); 00144 00151 public: 00152 double calculateFitness(SIGEL_Program::SIG_Program & program); 00153 00158 public: 00159 SIGEL_GP::SIG_GPParameter& getGPParameter(); 00160 00165 public: 00166 SIGEL_GP::SIG_GPPopulation& getPopulation(); 00167 00172 public: 00173 SIGEL_GP::SIG_GPPopulation *getPopulationPointer(); 00174 00175 public: 00176 void exportExperimentHistoryToGNUPlot( QString fileName ); 00177 00178 }; 00179 } 00180 00181 #endif // SIGEL_GP_SIG_GPEXPERIMENT_H 00182