ECJ-INTEREST-L Archives

August 2007

ECJ-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Monospaced Font
Show HTML Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
David Oranchak <[log in to unmask]>
Reply To:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Date:
Sat, 4 Aug 2007 23:45:21 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (47 lines)
Hello,

I've been playing with the steady state evolution features of ECJ.   
One of my steady state experiments reached my checkpoint modulo of  
100, and began repeatedly re-writing the checkpoint file, like this:

Generation 99
Checkpointing
Wrote out checkpoint file experiment129.100.gz
Generation 100
Checkpointing
Wrote out checkpoint file experiment129.100.gz
Checkpointing
Wrote out checkpoint file experiment129.100.gz
Checkpointing
Wrote out checkpoint file experiment129.100.gz
Checkpointing
Wrote out checkpoint file experiment129.100.gz
Checkpointing
Wrote out checkpoint file experiment129.100.gz
Checkpointing
...etc...

Inspecting ec.steadystate.SteadyStateEvolutionState, I noticed this  
line:

	// CHECKPOINTING
         if (checkpoint && generation%checkpointModulo == 0)

I reasoned that "generation" is only incremented during generation  
boundaries, which for steady state occurs when the number of  
evaluations reaches some multiple of the population size.  Thus, the  
checkpointing will continue unnecessarily until the next generation  
boundary is reached.

Here is my bandaid:

         // CHECKPOINTING
         if (checkpoint && generation%checkpointModulo == 0 &&  
evaluations%checkpointModulo == 0)

Does this look like a valid bug and fix?  I am reluctant to check  
anything into CVS without review.

Thanks,
-Dave

ATOM RSS1 RSS2