00001 #ifndef SelectionOperator_h
00002 #define SelectionOperator_h
00003
00004 #include "State.h"
00005 #include "Individual.h"
00006
00007
00018 class SelectionOperator
00019 {
00020 protected:
00021 StateP state_;
00022 public:
00023 virtual ~SelectionOperator()
00024 { }
00025
00030 virtual bool initialize(StateP) = 0;
00031
00033 virtual IndividualP select(const std::vector<IndividualP>&) = 0;
00034
00035 };
00036 typedef boost::shared_ptr<SelectionOperator> SelectionOperatorP;
00037
00038 #endif // SelectionOperator_h
00039