testing and debugging eoGeneration

This commit is contained in:
gustavo 1999-09-28 11:56:21 +00:00
commit 1247f801fb
7 changed files with 156 additions and 149 deletions

View file

@ -18,19 +18,20 @@ template<class Chrom> class eoGeneration
{
public:
/// Constructor.
eoGeneration(eoSelect& _select,
eoTranform& _transform,
eoMerge& _replace):
eoGeneration(eoSelect<Chrom>& _select,
eoTransform<Chrom>& _transform,
eoMerge<Chrom>& _replace):
select(_select), transform(_transform), replace(_replace) {}
/// apply one generation of evolution to the population
void operator()(eoPop& pop)
/// Apply one generation of evolution to the population.
template<class Evaluator> void operator()(eoPop<Chrom>& pop,
Evaluator evaluator)
{
eoPop breeders;
eoPop<Chrom> breeders;
select(pop, breeders);
transform(breeders);
for_each(pop.begin(), pop.end(), Chrom::Fitness);
for_each(breeders.begin(), breeders.end(), evaluator);
replace(breeders, pop);
}
@ -38,9 +39,9 @@ template<class Chrom> class eoGeneration
string className() const { return "eoGeneration"; }
private:
eoSelect& select;
eoTranform& transform;
eoMerge& replace;
eoSelect<Chrom>& select;
eoTransform<Chrom>& transform;
eoMerge<Chrom>& replace;
};
//-----------------------------------------------------------------------------