00001 00020 #ifndef _IMUTATION_H 00021 00022 #define _IMUTATION_H 1 00023 00024 #include "real.h" 00025 #include "domain.h" 00026 #include "random.h" 00027 00028 namespace realea { 00038 class IMutation { 00039 public: 00047 virtual tGen mutate(tChromosomeReal &sol, unsigned posi)=0; 00048 00056 void setRandom(Random *random) { 00057 m_random = random; 00058 } 00059 void setDomain(DomainRealPtr domain) { 00060 m_domain = domain; 00061 } 00062 00063 virtual ~IMutation(void) {} 00064 00065 protected: 00066 Random *m_random; 00067 DomainRealPtr m_domain; 00068 }; 00069 00070 } 00071 #endif