53 #if !defined(EVOCOSM_SELECTOR_H)
54 #define EVOCOSM_SELECTOR_H
78 template <
class OrganismType>
102 virtual vector<OrganismType>
select_survivors(vector<OrganismType> & a_population) = 0;
111 template <
class OrganismType>
122 return vector<OrganismType>();
132 template <
class OrganismType>
143 vector<OrganismType> result;
145 for (
int n = 0; n < a_population.size(); ++n)
146 result.push_back(a_population[n]);
158 template <
class OrganismType>
180 : m_factor(a_source.m_factor)
192 m_factor = a_source.m_factor;
202 virtual vector<OrganismType>
select_survivors(vector<OrganismType> & a_population);
209 template <
class OrganismType>
213 vector<OrganismType> chosen_ones;
219 double threshold = m_factor * stats.
getBest().fitness;
222 for (
int n = 0; n < a_population.size(); ++n)
224 if (a_population[n].fitness > threshold)
225 chosen_ones.push_back(a_population[n]);
Implements a elitism selector.
Definition: selector.h:159
virtual ~selector()
Virtual destructor.
Definition: selector.h:90
A do-nothing selector.
Definition: selector.h:133
virtual vector< OrganismType > select_survivors(vector< OrganismType > &a_population)
Definition: selector.h:141
elitism_selector(double a_factor=0.9)
Constructor.
Definition: selector.h:168
virtual vector< OrganismType > select_survivors(vector< OrganismType > &a_population)
Definition: selector.h:120
virtual vector< OrganismType > select_survivors(vector< OrganismType > &a_population)
Select individuals that survive.
Definition: selector.h:210
A toolkit and framework for implementing evolutionary algorithms.
Definition: analyzer.h:60
A do-nothing selector.
Definition: selector.h:112
Elements shared by all classes in Evocosm.
Definition: evocommon.h:117
Selects organisms that survive.
Definition: selector.h:79
elitism_selector(const elitism_selector< OrganismType > &a_source)
Copy constructor.
Definition: selector.h:179
virtual vector< OrganismType > select_survivors(vector< OrganismType > &a_population)=0
Select individuals that survive.
OrganismType getBest()
Get the organism with the highest fitness for analyzed population.
Definition: stats.h:177
elitism_selector & operator=(const elitism_selector< OrganismType > &a_source)
Assignment operator.
Definition: selector.h:190
Population fitness statistics.
Definition: stats.h:74