00001 #ifndef SIGEL_GP_SIG_GPFITNESSFUNCTION_H 00002 #define SIGEL_GP_SIG_GPFITNESSFUNCTION_H 00003 00004 00005 00006 #include "SIGEL_Program/SIG_Program.h" 00007 #include "SIGEL_Robot/SIG_Robot.h" 00008 #include "SIGEL_Environment/SIG_Environment.h" 00009 #include "SIGEL_Simulation/SIG_SimulationParameters.h" 00010 00011 00012 #include <qstring.h> 00013 00014 namespace SIGEL_GP 00015 { 00016 00022 class SIG_GPFitnessFunction{ 00023 00028 protected: 00029 SIGEL_Program::SIG_Program & program; 00030 00035 protected: 00036 SIGEL_Robot::SIG_Robot & rob; 00037 00042 protected: 00043 SIGEL_Environment::SIG_Environment & environment; 00044 00049 protected: 00050 SIGEL_Simulation::SIG_SimulationParameters & simparameter; 00051 00056 public: 00057 QString const name; 00058 00059 00078 public: 00079 SIG_GPFitnessFunction(SIGEL_Program::SIG_Program & program, 00080 SIGEL_Robot::SIG_Robot & rob, 00081 SIGEL_Environment::SIG_Environment & environment, 00082 SIGEL_Simulation::SIG_SimulationParameters & simparameter, 00083 QString name); 00084 00092 public: 00093 virtual ~SIG_GPFitnessFunction(); 00094 00095 00107 public: 00108 virtual double evalFitness()=0; 00109 00110 protected: 00111 bool isValid( double value ); 00112 00113 protected: 00114 DL_vector normalizeRobotPosition( DL_vector originalPosition, 00115 DL_matrix actualRobotRotation ); 00116 00117 }; 00118 } 00119 00120 #endif // SIGEL_GP_SIG_GPFITNESSFUNCTION_H