General: Algorithm-Based
- Component-Based - Programming
hints - EO
documentation
Local: Introduction
- Continuators - Combined
continuators - Checkpoints - Statistics
- Monitors - Updaters
CheckPointing
What
is Checkpointing about?
Evolutionary Algorithms are almost all timely ticked, the basic time
unit being what is called a generation. EO checkpointing mechanism allow
you to program things that you want to be done at the end of every generation.
This includes deciding to stop, outputing some statistics on the current
state of the algorithm, updating some dynamical variables of your
algorithm, saving the population to disk, ...
EO classes described in this page:
-
Base classes: eoCheckPoint, eoContinue,
eoStat, eoSortedStat, eoMonitor, eoUpdater
-
Derived classes: eoCombinedContinue,
-
Related classes: eoGnuPlot1DMonitor,
eoGnuPlot1DSnapshotMonitor,
Continuators:
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!)
-
The constructor, where you pass to the object
any useful parameter (see the private data at end of class definition).
-
The operator() method, which performs the
computation of the actual test using the population plus any other parameter
passed at construct time. Don't forget to returnfalse
when the stopping criterion is met!
Existing continuators:
Of
course you can find out all existing (non-virtual!) subclasses of eoContinue
by looking at its inheritance
diagram. But you might find it more convenient to have them listed
here:
Combining
continuators:
CheckPoints:
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
feel you have to do it, please do - and send us both the reasons that lead
you to that (what is it you couldn't do with existing eoCheckPoint), and
the resulting code, of course.
Statistics:
Interface:
Using statistics:
Writing a statitic:
Monitors:
Interface:
Using monitors:
Writing a monitor:
Updater:
Interface:
Using updaters:
Writing an updater:
Local: Introduction
- Continuators - Combined
continuators - Checkpoints - Statistics
- Monitors - Updaters
General: Algorithm-Based
- Component-Based - Programming
hints -EO
documentation
Marc Schoenauer
Last
modified: Fri Dec. 8 2000