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