ECJ's checkpointing takes place after breeding and post-breeding exchanges. This means that the first possible checkpoint will be holding generation 1 (not 0) prior to evaluating that generation. The main reason for this position is so that restarting from checkpoint enters the loop at the same point (just prior to evaluation) that starting fresh does, which lowers code complexity.
Ordinarily this isn't an issue because checkpointing has one purpose in ECJ: to allow recovery from an abnormal failure of the JVM -- say, power was knocked out. So if you wanted to insert another checkpoint position, you'd be looking at some recoding of the main evolutionary loop, and it'd not be particularly fun.
If you're trying to do experiments with the same initial population, checkpoint recovery's not the right way to do this anyway because you'll have the same random number generator. Why not just create an initial population and save it out, then load it each time as population 0?
On Feb 29, 2012, at 4:18 PM, Frederik wrote:
> Hi everyone,
> I want to do several experiments using the same initial population. So I was
> wondering if there is an easy way to make a checkpoint file from the first
> generation (generation 0). If you set the checkpoint modulo to 1 the first
> generation that is saved is generation 1..
> Thanks in advance,