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 SelectionOperatorP selRandomOp; 00026 std::vector<IndividualP> donor_vector; 00027 }; 00028 typedef boost::shared_ptr<DifferentialEvolution> DifferentialEvolutionP; 00029 00030 #endif // Differential Evolution 00031