MPI Multistart: new default ResetAlgo functor: reuse the same pop.
This commit is contained in:
parent
12614faee1
commit
1885517dc1
1 changed files with 39 additions and 1 deletions
|
|
@ -338,6 +338,44 @@ struct ReuseOriginalPopEA: public MultiStartStore<EOT>::ResetAlgo
|
||||||
eoEvalFunc<EOT>& _eval;
|
eoEvalFunc<EOT>& _eval;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template< class EOT >
|
||||||
|
struct ReuseSamePopEA : public MultiStartStore<EOT>::ResetAlgo
|
||||||
|
{
|
||||||
|
ReuseSamePopEA(
|
||||||
|
eoGenContinue<EOT>& continuator,
|
||||||
|
const eoPop<EOT>& originalPop,
|
||||||
|
eoEvalFunc<EOT>& eval
|
||||||
|
) :
|
||||||
|
_continuator( continuator ),
|
||||||
|
_originalPop( originalPop ),
|
||||||
|
_firstTime( true ),
|
||||||
|
_initial( continuator.totalGenerations() )
|
||||||
|
{
|
||||||
|
for( unsigned i = 0, size = originalPop.size();
|
||||||
|
i < size; ++i )
|
||||||
|
{
|
||||||
|
eval(_originalPop[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void operator()( eoPop<EOT>& pop )
|
||||||
|
{
|
||||||
|
if( _firstTime )
|
||||||
|
{
|
||||||
|
pop = _originalPop;
|
||||||
|
_firstTime = false;
|
||||||
|
}
|
||||||
|
_continuator.totalGenerations( _initial );
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
eoGenContinue<EOT>& _continuator;
|
||||||
|
eoPop<EOT> _originalPop;
|
||||||
|
bool _firstTime;
|
||||||
|
int _initial;
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
Node::init( argc, argv );
|
Node::init( argc, argv );
|
||||||
|
|
@ -436,7 +474,7 @@ int main(int argc, char **argv)
|
||||||
eval, continuator);
|
eval, continuator);
|
||||||
|
|
||||||
DynamicAssignmentAlgorithm assignmentAlgo;
|
DynamicAssignmentAlgorithm assignmentAlgo;
|
||||||
ReuseOriginalPopEA< Indi > resetAlgo( continuator, pop, eval );
|
ReuseSamePopEA< Indi > resetAlgo( continuator, pop, eval );
|
||||||
GetRandomSeeds< Indi > getSeeds( SEED );
|
GetRandomSeeds< Indi > getSeeds( SEED );
|
||||||
|
|
||||||
MultiStartStore< Indi > store(
|
MultiStartStore< Indi > store(
|
||||||
|
|
|
||||||
Reference in a new issue