3 #include <geneial/algorithm/criteria/BaseStoppingCriterion.h>
5 geneial_private_namespace(geneial)
7 geneial_private_namespace(algorithm)
9 geneial_private_namespace(stopping_criteria)
11 using ::geneial::population::management::BaseManager;
13 geneial_export_namespace
16 template<
typename FITNESS_TYPE>
17 class FitnessValueDeltaCriterion:
public BaseStoppingCriterion<FITNESS_TYPE>
20 FitnessValueDeltaCriterion(
const FITNESS_TYPE desiredFitness,
const FITNESS_TYPE delta) :
21 _desiredFitness(desiredFitness), _delta(delta)
23 assert(_delta <= _desiredFitness);
26 virtual ~FitnessValueDeltaCriterion()
30 virtual bool wasReached(BaseManager<FITNESS_TYPE> &manager)
33 return !(manager.getHighestFitness() >= _desiredFitness - _delta);
36 virtual void print(std::ostream& os)
const
38 os <<
"FitnessValueDelta (" << _desiredFitness <<
")";
42 const FITNESS_TYPE _desiredFitness;
43 const FITNESS_TYPE _delta;