3 #include <geneial/namespaces.h>
4 #include <geneial/algorithm/BaseGeneticAlgorithm.h>
5 #include <geneial/core/population/management/BaseManager.h>
10 geneial_private_namespace(geneial)
12 geneial_private_namespace(algorithm)
14 using ::geneial::algorithm::stopping_criteria::BaseStoppingCriterion;
15 using ::geneial::population::management::BaseManager;
17 geneial_export_namespace
19 template<
typename FITNESS_TYPE>
20 class AlgorithmObserver
25 BEFORE_GENERATION, AFTER_GENERATION, CRITERIA_REACHED
28 virtual ~AlgorithmObserver()
32 virtual void updateBeforeGeneration(BaseManager<FITNESS_TYPE> &manager)
36 virtual void updateAfterGeneration(BaseManager<FITNESS_TYPE> &manager)
41 virtual void updateCriteriaReached(BaseManager<FITNESS_TYPE> &manager,
42 const BaseStoppingCriterion<FITNESS_TYPE>& criteria)
46 const std::set<ObserveableEvent>& getSubscribedEvents()
const
48 return _subscribedEvents;
51 void setSubscribedEvents(
const std::set<ObserveableEvent>& subscribedEvents)
53 _subscribedEvents = subscribedEvents;
56 void addSubscribedEvent(ObserveableEvent e)
58 _subscribedEvents.insert(e);
61 void removeSubscribedEvent(ObserveableEvent e)
63 _subscribedEvents.erase(e);
67 std::set<ObserveableEvent> _subscribedEvents;