Generated on Tue Dec 16 13:34:02 2008 for ell-3.0.0 by doxygen 1.5.1

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_*/