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 00031 class RouletteWheel : public Algorithm 00032 { 00033 public: 00034 RouletteWheel(); 00035 bool advanceGeneration(StateP state, DemeP deme); 00036 bool initialize(StateP state); 00037 void registerParameters(StateP state); 00038 00039 protected: 00040 double crxRate_; 00041 double selPressure_; 00042 SelFitnessProportionalOpP selFitPropOp; 00043 SelRandomOpP selRandomOp; 00044 SelBestOpP selBestOp; 00045 00046 }; 00047 typedef boost::shared_ptr<RouletteWheel> RouletteWheelP; 00048 00049 #endif // Roulette_Wheel_h