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