MPI Multistart: using eoCountContinue in resetAlgo functors instead of eoGenContinue.
This commit is contained in:
parent
a14526e01a
commit
2ca5483f5d
2 changed files with 8 additions and 11 deletions
|
|
@ -219,10 +219,9 @@ namespace eo
|
||||||
struct ReuseOriginalPopEA: public MultiStartStore<EOT>::ResetAlgo
|
struct ReuseOriginalPopEA: public MultiStartStore<EOT>::ResetAlgo
|
||||||
{
|
{
|
||||||
ReuseOriginalPopEA(
|
ReuseOriginalPopEA(
|
||||||
eoGenContinue<EOT> & continuator,
|
eoCountContinue<EOT> & continuator,
|
||||||
const eoPop<EOT>& originalPop,
|
const eoPop<EOT>& originalPop,
|
||||||
eoEvalFunc<EOT>& eval) :
|
eoEvalFunc<EOT>& eval) :
|
||||||
_initial( continuator.totalGenerations() ),
|
|
||||||
_continuator( continuator ),
|
_continuator( continuator ),
|
||||||
_originalPop( originalPop ),
|
_originalPop( originalPop ),
|
||||||
_eval( eval )
|
_eval( eval )
|
||||||
|
|
@ -237,12 +236,11 @@ namespace eo
|
||||||
{
|
{
|
||||||
_eval( pop[i] );
|
_eval( pop[i] );
|
||||||
}
|
}
|
||||||
_continuator.totalGenerations( _initial );
|
_continuator.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unsigned int _initial;
|
eoCountContinue<EOT> & _continuator;
|
||||||
eoGenContinue<EOT> & _continuator;
|
|
||||||
const eoPop<EOT>& _originalPop;
|
const eoPop<EOT>& _originalPop;
|
||||||
eoEvalFunc<EOT>& _eval;
|
eoEvalFunc<EOT>& _eval;
|
||||||
};
|
};
|
||||||
|
|
@ -251,14 +249,13 @@ namespace eo
|
||||||
struct ReuseSamePopEA : public MultiStartStore<EOT>::ResetAlgo
|
struct ReuseSamePopEA : public MultiStartStore<EOT>::ResetAlgo
|
||||||
{
|
{
|
||||||
ReuseSamePopEA(
|
ReuseSamePopEA(
|
||||||
eoGenContinue<EOT>& continuator,
|
eoCountContinue<EOT>& continuator,
|
||||||
const eoPop<EOT>& originalPop,
|
const eoPop<EOT>& originalPop,
|
||||||
eoEvalFunc<EOT>& eval
|
eoEvalFunc<EOT>& eval
|
||||||
) :
|
) :
|
||||||
_continuator( continuator ),
|
_continuator( continuator ),
|
||||||
_originalPop( originalPop ),
|
_originalPop( originalPop ),
|
||||||
_firstTime( true ),
|
_firstTime( true )
|
||||||
_initial( continuator.totalGenerations() )
|
|
||||||
{
|
{
|
||||||
for( unsigned i = 0, size = originalPop.size();
|
for( unsigned i = 0, size = originalPop.size();
|
||||||
i < size; ++i )
|
i < size; ++i )
|
||||||
|
|
@ -274,15 +271,14 @@ namespace eo
|
||||||
pop = _originalPop;
|
pop = _originalPop;
|
||||||
_firstTime = false;
|
_firstTime = false;
|
||||||
}
|
}
|
||||||
_continuator.totalGenerations( _initial );
|
_continuator.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
eoGenContinue<EOT>& _continuator;
|
eoCountContinue<EOT>& _continuator;
|
||||||
eoPop<EOT> _originalPop;
|
eoPop<EOT> _originalPop;
|
||||||
bool _firstTime;
|
bool _firstTime;
|
||||||
int _initial;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template< class EOT >
|
template< class EOT >
|
||||||
|
|
|
||||||
|
|
@ -162,6 +162,7 @@ int main(int argc, char **argv)
|
||||||
/////////////////////////////////////
|
/////////////////////////////////////
|
||||||
// stop after MAX_GEN generations
|
// stop after MAX_GEN generations
|
||||||
eoGenContinue<Indi> continuator(MAX_GEN);
|
eoGenContinue<Indi> continuator(MAX_GEN);
|
||||||
|
// eoSteadyFitContinue< Indi > continuator( 10, 50 );
|
||||||
|
|
||||||
// GENERATION
|
// GENERATION
|
||||||
/////////////////////////////////////////
|
/////////////////////////////////////////
|
||||||
|
|
|
||||||
Reference in a new issue