src/ell/SamplingAbortionCriterion.hh
Go to the documentation of this file.00001 #ifndef SAMPLINGABORTIONCRITERION_HH_ 00002 #define SAMPLINGABORTIONCRITERION_HH_ 00003 00004 #include "ell/LandscapeTopology.hh" 00005 00006 namespace ell 00007 { 00013 class SamplingAbortionCriterion 00014 { 00015 public: 00016 00018 virtual ~SamplingAbortionCriterion(); 00019 00033 virtual 00034 bool 00035 abortSampling( const LandscapeTopology* const lt 00036 , const bool ltChanged = true ) = 0; 00037 00040 virtual 00041 void 00042 reset( void ) = 0; 00043 }; 00044 00045 } // namespace ell 00046 00047 00048 namespace ell 00049 { 00056 class SAC_MaxIterations : public SamplingAbortionCriterion 00057 { 00058 public: 00059 00063 SAC_MaxIterations( const size_t maxIterations ); 00064 00066 virtual ~SAC_MaxIterations(); 00067 00078 virtual 00079 bool 00080 abortSampling( const LandscapeTopology* const lt 00081 , const bool ltChanged = true ); 00082 00086 virtual 00087 void 00088 reset( void ); 00089 00090 protected: 00091 00093 const size_t MAX_ITERATIONS; 00095 size_t doneIterations; 00096 00097 }; 00098 00099 } // namespace ell 00100 00101 00102 namespace ell 00103 { 00114 class SAC_MaxNoChange : public SamplingAbortionCriterion 00115 { 00116 public: 00117 00122 SAC_MaxNoChange( const size_t maxNoChangeIterations ); 00123 00125 virtual ~SAC_MaxNoChange(); 00126 00143 virtual 00144 bool 00145 abortSampling( const LandscapeTopology* const lt 00146 , const bool ltChanged = true ); 00147 00151 virtual 00152 void 00153 reset( void ); 00154 00155 protected: 00156 00158 const size_t MAX_NO_CHANGE_ITERATIONS; 00160 size_t iterationsWithoutChange; 00161 }; 00162 00163 } // namespace ell 00164 00165 namespace ell 00166 { 00174 class SAC_NoMinimaChange : public SamplingAbortionCriterion 00175 { 00176 public: 00177 00182 SAC_NoMinimaChange( const size_t maxNoChangeIterations ); 00183 00185 virtual ~SAC_NoMinimaChange(); 00186 00199 virtual 00200 bool 00201 abortSampling( const LandscapeTopology* const lt 00202 , const bool ltChanged = true ); 00203 00207 virtual 00208 void 00209 reset( void ); 00210 00211 protected: 00212 00215 const size_t MAX_NO_CHANGE_ITERATIONS; 00218 size_t iterationsWithoutChange; 00220 size_t lastNumOfMinima; 00221 }; 00222 00223 } // namespace ell 00224 00225 #endif /*SAMPLINGABORTIONCRITERION_HH_*/