testing and debugging eoGeneration
This commit is contained in:
parent
49b35da8f9
commit
1247f801fb
7 changed files with 156 additions and 149 deletions
|
|
@ -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;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
|||
Reference in a new issue