00001 #ifndef _REPLACE_H 00002 00003 #define _REPLACE_H 1 00004 00005 #include <realea/common/individual.h> 00006 #include <realea/common/populationreal.h> 00007 #include <realea/common/signal.h> 00008 00009 namespace realea { 00010 00011 class IReplace : public IReset { 00012 public: 00013 IReplace(void); 00014 virtual ~IReplace(void) {} 00015 virtual void reset(void); 00016 virtual unsigned getCandidate(PopulationRealPtr pop, tIndividualRealPtr newind)=0; 00017 virtual bool mustBeReplace(tIndividualRealPtr old, tIndividualRealPtr newind); 00018 00019 private: 00020 unsigned m_total, m_success; 00021 }; 00022 00028 class ReplaceWorst : public IReplace { 00029 public: 00030 virtual unsigned getCandidate(PopulationRealPtr pop, tIndividualRealPtr newind); 00031 }; 00032 00038 class ReplaceDC: public IReplace { 00039 public: 00040 virtual unsigned getCandidate(PopulationRealPtr pop, tIndividualRealPtr newind); 00041 }; 00042 00043 00044 } 00045 00046 #endif