diff --git a/contribution/branches/MOLS/src2/eoAmeliorationContinue.h b/contribution/branches/MOLS/src2/eoAmeliorationContinue.h index a8d0f76f3..0a25cfb48 100644 --- a/contribution/branches/MOLS/src2/eoAmeliorationContinue.h +++ b/contribution/branches/MOLS/src2/eoAmeliorationContinue.h @@ -13,16 +13,21 @@ class eoAmeliorationContinue: public eoContinue { public: - eoAmeliorationContinue(moeoDMLSArchive & _arch, unsigned int _maxGen) : arch(_arch), maxGen(_maxGen), counter(0){} + eoAmeliorationContinue(moeoDMLSArchive & _arch, unsigned int _neighborhoodSize) : arch(_arch),maxGen(_neighborhoodSize), neighborhoodSize(_neighborhoodSize), counter(0){} // _pop must be an archive virtual bool operator() (const eoPop & _pop) { + bool res; + maxGen=arch.size() * neighborhoodSize; if(arch.modified()) counter=0; else counter++; - return (counter < maxGen); + res = (counter < maxGen); + if(!res) + counter=0; + return res; } virtual std::string className(void) const @@ -34,6 +39,7 @@ private: moeoDMLSArchive & arch; unsigned int maxGen; + unsigned int neighborhoodSize; unsigned int counter; }; diff --git a/contribution/branches/MOLS/src2/moeoRestartLS.h b/contribution/branches/MOLS/src2/moeoRestartLS.h index 7f2300e51..03c334fc9 100755 --- a/contribution/branches/MOLS/src2/moeoRestartLS.h +++ b/contribution/branches/MOLS/src2/moeoRestartLS.h @@ -57,12 +57,13 @@ public: moeoRestartLS( eoInit < MOEOT > & _init, eoEvalFunc < MOEOT > & _eval, - eoContinue < MOEOT > & _continuator, + eoContinue < MOEOT > & _continuator1, + eoContinue < MOEOT > & _continuator2, moeoPopNeighborhoodExplorer < Move > & _explorer, moeoUnvisitedSelect < MOEOT > & _select, moeoArchive < MOEOT > & _globalArchive, std::string _fileName) : - init(_init), eval(_eval), continuator(_continuator), ls(continuator, _eval, internalArchive, _explorer, _select), globalArchive(_globalArchive), fileName(_fileName), count(0) {} + init(_init), eval(_eval), continuator(_continuator1), ls(_continuator2, _eval, internalArchive, _explorer, _select), globalArchive(_globalArchive), fileName(_fileName), count(0) {} virtual void operator()(eoPop & _pop)