EO classes described in this page:
Continuators are functors that compute stopping critera. They receive a population and return a boolean value which is set to false only when some stopping vriterion is met. All algorithms in EO have a loop that goes do{...}while(continuator(pop)which means that the algorithm stops only when the continuator returns false.
Interface: The abstract class for computing stopping conditions is eoContinue, and the interface for its operator() is
bool operator()(const eoPop<EOT>& )
which you could have guessed from the inheritance diagram for class eoContinue, as you see there that eoContinue derives from class eoUF<const eoPop<EOT>&, bool>.
Using a continuator:
You can find an first example of using a continuator in the code for
FirstBitEA
ior more sophisticated continue conditions in Lesson2.
If you want to find out how it is used inside an algorithm, go and
see for instance in eoSGA, the simplest EA within EO.
Writing a
continuator:
There are only two things to modify in the template
class definitions provided (apart from the name of the class you are
creating!)
Interface:
Using a checkpoint: An eoCheckPoint being an eoContinue, its usage is exactly the same. However, an eoCheckPoint will actually do many more things than an eoContinue before returning its boolean result as an eoContinue.
Writing a
checkpoint:
This is something you should never have to do. However, should you
fell you have to do it, please do - and send us both the reasons that lead
you to that (wqhat is it you couldn't do with existing eoCheckPoint), and
the resulting code, of course.
Interface:
Using statistics:
Interface:
Using monitors:
Interface:
Using updaters: