MutationMethod.h

00001 
00011 #ifndef _MutationMethod_h
00012 #define _MutationMethod_h
00013 
00014 // SYSTEM INCLUDES
00015 //
00016 
00017 // PROJECT INCLUDES
00018 //
00019 
00020 // LOCAL INCLUDES
00021 //
00022 #include "methods/EvolutionaryMethodIteration.h"
00023 #include "Population.h"
00024 
00025 // FORWARD REFERENCES
00026 //
00027 
00028 class MutationMethod
00029 {
00030 public:
00031 
00032 // LIFECYCLE
00033 
00036     virtual ~MutationMethod(void);
00037 
00038 // OPERATORS
00039 // OPERATIONS
00040 
00047     virtual std::auto_ptr<MutationMethod>      Clone() const = 0;
00048 
00060     virtual void            Mutate
00061                             (Population&                  population,
00062                              double                       radioactivity,
00063                              double                       mutationRate,
00064                              EvolutionaryMethodIteration& iteration) const = 0;
00065 
00066 // ACCESS
00067 
00072     static const std::vector<MutationMethod*>& MutationMethods();
00073 
00080     virtual wxString                            ToString() const = 0;
00081 
00088     virtual wxString                            Name() const = 0;
00089 
00097     static wxString                             BaseClassName();
00098 
00099 // INQUIRY
00100 
00101 protected:
00102 
00105     MutationMethod(void);
00106 
00111     MutationMethod(const MutationMethod& from);
00112 
00113 private:
00114 
00119     static std::vector<MutationMethod*>&       rMutationMethods();
00120 
00121 };
00122 
00123 // INLINE METHODS
00124 //
00125 
00126 // EXTERNAL REFERENCES
00127 //
00128 
00129 #endif  // _MutationMethod_h

Wygenerowano Fri Sep 29 21:04:48 2006 dla EduOptim2 programem  doxygen 1.4.6