3 #include <geneial/algorithm/observer/AlgorithmObserver.h>
7 geneial_private_namespace(geneial)
9 geneial_private_namespace(algorithm)
11 using ::geneial::population::management::BaseManager;
13 geneial_export_namespace
17 template<
typename FITNESS_TYPE>
18 class BestChromosomeObserver:
public AlgorithmObserver<FITNESS_TYPE>
21 BestChromosomeObserver() :
24 this->addSubscribedEvent(AlgorithmObserver<FITNESS_TYPE>::AFTER_GENERATION);
26 virtual ~BestChromosomeObserver()
30 virtual void updateAfterGeneration(BaseManager<FITNESS_TYPE> &manager)
override
32 const FITNESS_TYPE lastBest = manager.getHighestFitness();
33 if (lastBest > _best || !_foundBest)
37 updateNewBestChromosome(manager);
42 virtual void updateNewBestChromosome(BaseManager<FITNESS_TYPE> &manager)