Back to Lesson 5 - Tutorial main page - Top-Down page - Bottom-up page - Programming hints - EO documentation

# Templates/eoOneMaxEvalFunc.h

The places where you have to put some code are on pink background.. Only the the character colors have the usual meaning.

`/** -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-`

`The above line is usefulin Emacs-like editors`
`*/`

`/*`
`Template for evaluator in EO, a functor that computes the fitness of an EO`
`==========================================================================`
`*/`

`#ifndef _eoOneMaxEvalFunc_h`
`#define _eoOneMaxEvalFunc_h`

`// include whatever general include you need`
`#include <stdexcept>`
`#include <fstream>`

`// include the base definition of eoEvalFunc`
`#include "eoEvalFunc.h"`

`/**`
`Always write a comment in this format before class definition`
`if you want the class to be documented by Doxygen`
`*/`

`template <class EOT>` `class eoOneMaxEvalFunc : public eoEvalFunc<EOT>` `{` `public:` `/// Ctor - no requirement`

`// START eventually add or modify the anyVariable argument` `eoOneMaxEvalFunc()` `// eoOneMaxEvalFunc( varType _anyVariable) : anyVariable(_anyVariable)` `// END eventually add or modify the anyVariable argument`

`{`

`// START Code of Ctor of an eoOneMaxEvalFunc object` `// END Code of Ctor of an eoOneMaxEvalFunc object`

`}` `/** Actually compute the fitness` `*` `* @param EOT & _eo the EO object to evaluate` `* it should stay templatized to be usable` `* with any fitness type` `*/` `void operator()(EOT & _eo)` `{` `// test for invalid to avoid recomputing fitness of unmodified individuals` `if (_eo.invalid())` `{` `double fit; // to hold fitness value`

`// START Code of computation of fitness of the eoOneMax object` `// fit = blablabla` `// END Code of computation of fitness of the eoOneMax object`

`_eo.fitness(fit);` `}` `}` `private:`

`// START Private data of an eoOneMaxEvalFunc object` `// varType anyVariable; // for example ...` `// END Private data of an eoOneMaxEvalFunc object`

`};` `#endif`

Back to Lesson 5 - Tutorial main page - Top-Down page - Bottom-up page - Programming hints - EO documentation

Last modified: Fri May 3 06:14:25 2002