3 #include <geneial/core/population/management/BaseManager.h>
4 #include <geneial/core/population/Population.h>
8 geneial_private_namespace(geneial)
10 geneial_private_namespace(population)
12 geneial_private_namespace(management)
15 geneial_export_namespace
22 template<
typename FITNESS_TYPE>
23 void BaseManager<FITNESS_TYPE>::replenishPopulation()
25 const int difference = _population.getSize() - _populationSettings.getMaxChromosomes();
28 while (_population.getSize() < _populationSettings.getMaxChromosomes())
31 const typename BaseChromosome<FITNESS_TYPE>::ptr newChromosome(_chromosomeFactory->createChromosome());
32 _population.insertChromosome(newChromosome);
35 EventValueData<unsigned int>::create(*this->getBookkeeper(),
"REPLENISH_AMOUNT",difference);
38 template<
typename FITNESS_TYPE>
39 void BaseManager<FITNESS_TYPE>::replacePopulation(
40 typename Population<FITNESS_TYPE>::chromosome_container replacementPopulation)
42 _population.replacePopulation(replacementPopulation);
45 template<
typename FITNESS_TYPE>
46 typename BaseChromosome<FITNESS_TYPE>::ptr BaseManager<FITNESS_TYPE>::getHighestFitnessChromosome()
const
48 return _population.getFitnessMap().rbegin()->second;
51 template<
typename FITNESS_TYPE>
52 FITNESS_TYPE BaseManager<FITNESS_TYPE>::getHighestFitness()
const
54 return _population.getFitnessMap().rbegin()->first;
57 template<
typename FITNESS_TYPE>
58 typename BaseChromosome<FITNESS_TYPE>::ptr BaseManager<FITNESS_TYPE>::getLowestFitnessChromosome()
const
60 return _population.getFitnessMap().begin()->second;
63 template<
typename FITNESS_TYPE>
64 FITNESS_TYPE BaseManager<FITNESS_TYPE>::getLowestFitness()
const
66 return _population.getFitnessMap().begin()->first;