diff --git a/application/eda_sa/main.cpp b/application/eda_sa/main.cpp index 023976ca..b873c1d6 100644 --- a/application/eda_sa/main.cpp +++ b/application/eda_sa/main.cpp @@ -124,7 +124,7 @@ int main(int ac, char** av) unsigned int popSize = parser.getORcreateParam((unsigned int)20, "popSize", "Population Size", 'P', "Evolution Engine").value(); - moGenSolContinue< EOT >* sa_continue = new moGenSolContinue< EOT >( popSize ); + moContinuator< moDummyNeighbor >* sa_continue = new moIterContinuator< moDummyNeighbor >( popSize ); state.storeFunctor(sa_continue); //----------------------------------------------------------------------------- @@ -134,10 +134,10 @@ int main(int ac, char** av) // SA parameters //----------------------------------------------------------------------------- - double threshold = parser.createParam((double)0.1, "threshold", "Threshold: temperature threshold stopping criteria", 't', section).value(); // t - double alpha = parser.createParam((double)0.1, "alpha", "Alpha: temperature dicrease rate", 'a', section).value(); // a + double threshold_temperature = parser.createParam((double)0.1, "threshold", "Minimal temperature at which stop", 't', section).value(); // t + double alpha = parser.createParam((double)0.1, "alpha", "Temperature decrease rate", 'a', section).value(); // a - moCoolingSchedule* cooling_schedule = new moGeometricCoolingSchedule(threshold, alpha); + moCoolingSchedule* cooling_schedule = new moSimpleCoolingSchedule(initial_temperature, alpha, 0, threshold_temperature); state.storeFunctor(cooling_schedule); //----------------------------------------------------------------------------- diff --git a/src/doEDASA.h b/src/doEDASA.h index c0dce883..93586249 100644 --- a/src/doEDASA.h +++ b/src/doEDASA.h @@ -75,7 +75,9 @@ public: _sa_continue(sa_continue), _cooling_schedule(cooling_schedule), _initial_temperature(initial_temperature), - _replacor(replacor) + _replacor(replacor), + _dummy_neighbor() + {} //! function that launches the EDASA algorithm. @@ -124,7 +126,7 @@ public: //------------------------------------------------------------- - _sa_continue.init(); + _sa_continue.init( _dummy_neighbor ); //------------------------------------------------------------- @@ -256,6 +258,7 @@ private: //------------------------------------------------------------- + moDummyNeighbor _dummy_neighbor; }; #endif // !_doEDASA_h diff --git a/src/doSampler.h b/src/doSampler.h index 63641247..dac38e5f 100644 --- a/src/doSampler.h +++ b/src/doSampler.h @@ -11,6 +11,7 @@ #include #include "doBounder.h" +#include "doBounderNo.h" template < typename D > class doSampler : public eoUF< D&, typename D::EOType > @@ -22,6 +23,10 @@ public: : _bounder(bounder) {} + doSampler() + : _bounder( _dummy_bounder ) + {} + // virtual EOType operator()( D& ) = 0 (provided by eoUF< A1, R >) virtual EOType sample( D& ) = 0; @@ -60,6 +65,8 @@ public: private: //! Bounder functor doBounder< EOType > & _bounder; + + doBounderNo _dummy_bounder; }; #endif // !_doSampler_h