remove FastGA foundry last evals, more logs, fix some typos

This commit is contained in:
Johann Dreo 2020-10-08 15:26:07 +02:00
commit 7ca5b6c0d0
4 changed files with 11 additions and 6 deletions

View file

@ -138,7 +138,7 @@ class eoAlgoFoundryFastGA : public eoAlgoFoundry<EOT>
assert( mutations.size() > 0); assert(this->at( mutations.index()) < mutations.size());
assert( replacements.size() > 0); assert(this->at( replacements.index()) < replacements.size());
assert( continuators.size() > 0); assert(this->at( continuators.index()) < continuators.size());
assert( offspring_sizes.size() > 0); assert(this->at( offspring_sizes.index()) < offspring_sizes.size());
assert( offspring_sizes.size() > 0); assert(this->at( offspring_sizes.index()) < offspring_sizes.size());
// Objective function calls counter
eoEvalCounterThrowException<EOT> eval(_eval, _max_evals);
@ -167,10 +167,13 @@ class eoAlgoFoundryFastGA : public eoAlgoFoundry<EOT>
try {
restart(pop);
} catch(eoMaxEvalException e) {
#ifndef NDEBUG
eo::log << eo::debug << "Reached maximum evaluations: " << eval.getValue() << " / " << _max_evals << std::endl;
#endif
// In case some solutions were not evaluated when max eval occured.
// FIXME can this even be considered legal?
eoPopLoopEval<EOT> pop_last_eval(_eval);
pop_last_eval(pop,pop);
// eoPopLoopEval<EOT> pop_last_eval(_eval);
// pop_last_eval(pop,pop);
}
}

View file

@ -147,7 +147,9 @@ public:
virtual void operator()(eoPop<EOT> & pop)
{
do {
#ifndef NDEBUG
eo::log << eo::debug << "Restart" << std::endl;
#endif
_reseter(pop);
_algo(pop);
} while( _continue(pop) );

View file

@ -189,7 +189,7 @@ public:
sol.fitness( pop.best_element().fitness() );
} else {
eo::log << eo::warnings << "WARNING: encoded algo is out of bounds" << std::endl;
eo::log << eo::warnings << "WARNING: encoded algo is out of bounds, penalize to: " << _penalization << std::endl;
sol.fitness( _penalization ); // penalization
}
}

View file

@ -101,8 +101,8 @@ public:
EOT sol1 = _select_cross(pop);
EOT sol2 = _select_cross(pop);
// If the operator returns true,
// olutions have been altered.
// If the operator returns true,
// solutions have been altered.
if(_crossover(sol1, sol2)) {
sol1.invalidate();
sol2.invalidate();