00001 #ifndef SIGEL_GP_SIG_GPOPERATIONS_H 00002 #define SIGEL_GP_SIG_GPOPERATIONS_H 00003 00004 #include "SIGEL_Tools/SIG_Randomizer.h" 00005 #include "SIGEL_GP/SIG_GPIndividual.h" 00006 #include "SIGEL_GP/SIG_GPParameter.h" 00007 #include "SIGEL_Robot/SIG_LanguageParameters.h" 00008 #include <qstring.h> 00009 #include <qvector.h> 00010 00011 00012 namespace SIGEL_GP 00013 { 00014 00021 class SIG_GPOperations 00022 { 00023 00049 public: 00050 static QVector<SIGEL_GP::SIG_GPIndividual> crossOver( SIGEL_GP::SIG_GPIndividual& winner1, 00051 int poolPos1, 00052 SIG_GPIndividual& winner2, 00053 int poolPos2, 00054 QString newName1, 00055 QString newName2, 00056 SIGEL_Tools::SIG_Randomizer& randomizer, 00057 SIGEL_GP::SIG_GPParameter& gpParameter, 00058 SIGEL_Robot::SIG_LanguageParameters &languageP ); 00059 00060 00077 public: 00078 static SIGEL_GP::SIG_GPIndividual& mutation( SIGEL_GP::SIG_GPIndividual& winner, 00079 int poolpos, 00080 QString newName, 00081 SIGEL_Tools::SIG_Randomizer& randomizer, 00082 SIGEL_GP::SIG_GPParameter& gpParameter, 00083 SIGEL_Robot::SIG_LanguageParameters &languageP); 00084 00100 public: 00101 static SIGEL_GP::SIG_GPIndividual& reproduction(SIGEL_GP::SIG_GPIndividual& winner, 00102 QString newName, 00103 int poolPos, 00104 SIGEL_Tools::SIG_Randomizer& randomizer, 00105 SIGEL_GP::SIG_GPParameter& gpParameter, 00106 SIGEL_Robot::SIG_LanguageParameters &languageP ); 00107 00108 }; 00109 00110 } 00111 #endif // SIGEL_GP_SIG_GPOPERATIONS_H