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]);