00001 #ifndef Evolution_Strategy_h 00002 #define Evolution_Strategy_h 00003 00004 #include "Algorithm.h" 00005 00006 00040 class EvolutionStrategy : public Algorithm 00041 { 00042 public: 00043 EvolutionStrategy(); 00044 bool advanceGeneration(StateP state, DemeP deme); 00045 bool initialize(StateP state); 00046 void registerParameters(StateP state); 00047 00048 protected: 00049 uint lambda_; 00050 uint rho_; 00051 uint mu_; 00052 uint subPopulations_; 00053 bool plusSelection_; 00054 SelectionOperatorP selBestOp_, selRandomOp_; 00055 00056 static bool compare(IndividualP first, IndividualP second) 00057 { return first->fitness->isBetterThan(second->fitness); } 00058 00059 }; 00060 typedef boost::shared_ptr<EvolutionStrategy> EvolutionStrategyP; 00061 00062 #endif // Evolution_Strategy_h 00063