00001 #ifndef Roulette_Wheel_h 00002 #define Roulette_Wheel_h 00003 00004 #include "Algorithm.h" 00005 #include "SelRandomOp.h" 00006 #include "SelBestOp.h" 00007 #include "SelFitnessProportionalOp.h" 00008 00029 class RouletteWheel : public Algorithm 00030 { 00031 public: 00032 RouletteWheel(); 00033 bool advanceGeneration(StateP state, DemeP deme); 00034 bool initialize(StateP state); 00035 void registerParameters(StateP state); 00036 00037 protected: 00038 double crxRate_; 00039 double selPressure_; 00040 SelFitnessProportionalOpP selFitPropOp; 00041 SelRandomOpP selRandomOp; 00042 SelBestOpP selBestOp; 00043 00044 }; 00045 typedef boost::shared_ptr<RouletteWheel> RouletteWheelP; 00046 00047 #endif // Roulette_Wheel_h