00001 00010 #ifndef __ADAPTIVE_GRID__ 00011 #define __ADAPTIVE_GRID__ 00012 00013 #include <Configuration.h> 00014 #include <Population.h> 00015 #include <Individual.h> 00016 00021 class AdaptiveGrid { 00022 00023 public: 00024 int * hypercube_ ; 00025 double * divisionSize_ ; 00026 double * gridLimits_ ; 00027 long currentGridSize_ ; 00028 int mostCrowdedHypercube_ ; 00029 00030 int numberOfFunctions_ ; 00031 int depth_ ; 00032 00033 double * upperBestFitness_ ; 00034 double * lowerBestFitness_ ; 00035 00036 // Constructor 00037 AdaptiveGrid() ; 00038 AdaptiveGrid(int depth, int numberOfFunctions) ; 00039 00040 // Destructor 00041 ~AdaptiveGrid(); 00042 00043 // Methods 00044 void updateGridLocations(Population * population, Individual * individual) ; 00045 int findLocation(Individual * individual) ; 00046 00047 private: 00048 // These variables are used in findLocation(). They are defined here for 00049 // efficiency purposes 00050 int * increment_ ; 00051 double * tmpDivisionSize_ ; 00052 }; // class AdaptiveGrid 00053 00054 #endif