00001 #ifndef DifferentialEvolution_h 00002 #define DifferentialEvolution_h 00003 using namespace std; 00004 #include "Algorithm.h" 00005 00012 class DifferentialEvolution : public Algorithm 00013 { 00014 public: 00015 DifferentialEvolution(); 00016 bool advanceGeneration(StateP state, DemeP deme); 00017 bool initialize(StateP state); 00018 void createDonorVectors(DemeP deme, StateP state); 00019 void crossover(DemeP deme, uint index, StateP state); 00020 void registerParameters(StateP state); 00021 00022 protected: 00023 double Fconst_; 00024 double CR_; 00025 bool bounded_; 00026 SelectionOperatorP selRandomOp; 00027 std::vector<IndividualP> donor_vector; 00028 }; 00029 typedef boost::shared_ptr<DifferentialEvolution> DifferentialEvolutionP; 00030 00031 #endif // Differential Evolution 00032