35 #if !defined(LIBEVOCOSM_LANDSCAPE_H)
36 #define LIBEVOCOSM_LANDSCAPE_H
60 template <
class OrganismType>
109 virtual double test(OrganismType & a_organism,
bool a_verbose =
false)
const = 0;
117 virtual double test_pop(vector<OrganismType> & a_population)
const
121 int stop = (int)a_population.size();
124 #pragma omp parallel for schedule(static) reduction(+:result) private(n)
126 for (n = 0; n < stop; ++n)
128 a_population[n].fitness() =
test(a_population[n]);
129 result += a_population[n].fitness();
133 return result / (double)a_population.size();
landscape(const landscape &a_source)
Copy constructor.
Definition: landscape.h:76
virtual ~landscape()
Virtual destructor.
Definition: landscape.h:97
virtual double test(OrganismType &a_organism, bool a_verbose=false) const =0
Performs fitness testing.
landscape & operator=(const landscape &a_source)
Assignment operator.
Definition: landscape.h:83
virtual double test_pop(vector< OrganismType > &a_population) const
Performs fitness testing.
Definition: landscape.h:117
An abstract interface defining a fitness landscape.
Definition: landscape.h:61
An abstract interface defining a listener.
Definition: evocommon.h:156
listener & m_listener
The listener for landscape events.
Definition: landscape.h:138
A toolkit and framework for implementing evolutionary algorithms.
Definition: evocommon.h:60
Elements shared by all classes in Evocosm.
Definition: evocommon.h:115
landscape(listener &a_listener)
Constructor.
Definition: landscape.h:69