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