MPI Multistart: using pop_eval functions instead of eval functions for resetters.
This commit is contained in:
parent
d48f045451
commit
0dca473aac
1 changed files with 27 additions and 6 deletions
|
|
@ -419,7 +419,19 @@ namespace eo
|
||||||
eoEvalFunc<EOT>& eval) :
|
eoEvalFunc<EOT>& eval) :
|
||||||
_continuator( continuator ),
|
_continuator( continuator ),
|
||||||
_originalPop( originalPop ),
|
_originalPop( originalPop ),
|
||||||
_eval( eval )
|
_pop_eval( eval )
|
||||||
|
{
|
||||||
|
// empty
|
||||||
|
}
|
||||||
|
|
||||||
|
ReuseOriginalPopEA(
|
||||||
|
eoCountContinue<EOT> & continuator,
|
||||||
|
const eoPop<EOT>& originalPop,
|
||||||
|
eoPopEvalFunc<EOT>& pop_eval
|
||||||
|
) :
|
||||||
|
_continuator( continuator ),
|
||||||
|
_originalPop( originalPop ),
|
||||||
|
_pop_eval( pop_eval )
|
||||||
{
|
{
|
||||||
// empty
|
// empty
|
||||||
}
|
}
|
||||||
|
|
@ -427,17 +439,14 @@ namespace eo
|
||||||
void operator()( eoPop<EOT>& pop )
|
void operator()( eoPop<EOT>& pop )
|
||||||
{
|
{
|
||||||
pop = _originalPop; // copies the original population
|
pop = _originalPop; // copies the original population
|
||||||
for(unsigned i = 0, size = pop.size(); i < size; ++i)
|
_pop_eval( pop, pop );
|
||||||
{
|
|
||||||
_eval( pop[i] );
|
|
||||||
}
|
|
||||||
_continuator.reset();
|
_continuator.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
eoCountContinue<EOT> & _continuator;
|
eoCountContinue<EOT> & _continuator;
|
||||||
const eoPop<EOT>& _originalPop;
|
const eoPop<EOT>& _originalPop;
|
||||||
eoEvalFunc<EOT>& _eval;
|
eoPopEvalFunc<EOT>& _pop_eval;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -469,6 +478,18 @@ namespace eo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ReuseSamePopEA(
|
||||||
|
eoCountContinue<EOT>& continuator,
|
||||||
|
const eoPop<EOT>& originalPop,
|
||||||
|
eoPopEvalFunc<EOT>& pop_eval
|
||||||
|
) :
|
||||||
|
_continuator( continuator ),
|
||||||
|
_originalPop( originalPop ),
|
||||||
|
_firstTime( true )
|
||||||
|
{
|
||||||
|
pop_eval( _originalPop, _originalPop );
|
||||||
|
}
|
||||||
|
|
||||||
void operator()( eoPop<EOT>& pop )
|
void operator()( eoPop<EOT>& pop )
|
||||||
{
|
{
|
||||||
if( _firstTime )
|
if( _firstTime )
|
||||||
|
|
|
||||||
Reference in a new issue