00001 #ifndef SelectionOperator_h
00002 #define SelectionOperator_h
00003
00004 #include "State.h"
00005 #include "Individual.h"
00006
00012 class SelectionOperator
00013 {
00014 protected:
00015 StateP state_;
00016 public:
00017 virtual ~SelectionOperator()
00018 { }
00019
00024 virtual bool initialize(StateP) = 0;
00025
00029 virtual IndividualP select(const std::vector<IndividualP>&) = 0;
00030
00031 };
00032 typedef boost::shared_ptr<SelectionOperator> SelectionOperatorP;
00033
00034 #endif // SelectionOperator_h
00035