3 #include <geneial/namespaces.h>
5 #include <geneial/algorithm/BaseGeneticAlgorithm.h>
6 #include <geneial/core/population/management/Bookkeeper.h>
8 #include <unordered_map>
13 geneial_private_namespace(geneial)
15 geneial_private_namespace(algorithm)
18 using ::geneial::population::management::EventData;
19 void printTiming(
const char*
string, std::unordered_multimap<std::string, std::unique_ptr<EventData> > &events, std::ostream& os);
21 using ::geneial::algorithm::BaseGeneticAlgorithm;
22 using ::geneial::population::management::EventData;
23 using ::geneial::population::management::EventValueData;
24 using ::geneial::population::management::StatisticBookkeeper;
26 geneial_export_namespace
29 template<
typename FITNESS_TYPE>
32 const std::shared_ptr<BaseGeneticAlgorithm<FITNESS_TYPE>> _algorithm;
35 void instrumentAlgorithm();
38 Diagnostics(
const std::shared_ptr<BaseGeneticAlgorithm<FITNESS_TYPE>> &algorithm);
40 void analyseAll(std::ostream& os);
42 void analyseTimeSpent(std::ostream& os);
43 void analyseEventsCoupling(std::ostream& os);
44 void analyseEventsCrossover(std::ostream& os);
45 void analyseEventsMutation(std::ostream& os);
46 void analyseEventsReplacement(std::ostream& os);
47 void anaylseEventsSelection(std::ostream& os);
48 void anaylseConvergence(std::ostream& os);
57 #include <geneial/algorithm/diagnostics/Diagnostics.hpp>