Print

Print


On May 12, 2008, at 11:24 AM, Sean Luke wrote:

> gp.species.fitness = ec.gp.koza.KozaFitness

So you're saying this line substitutes for the two lines below?

pop.subpop.0.species.fitness = ec.gp.koza.KozaFitness
pop.subpop.1.species.fitness = ec.gp.koza.KozaFitness


> One ugliness above is that Subpopulations must still be defined  
> using the standard form and not the defaults form because I hadn't  
> added defaults forms for them.  That'll be remedied in a few  
> minutes on CVS.  You should then be able to say:
>
> pop.subpops = 2
> pop.subpop.0 = ec.Subpopulation
> pop.subpop.1 = ec.Subpopulation
>
> subpop.size = 500
> subpop.duplicate-retries = 100
> subpop.species = ec.gp.GPSpecies

That sounds much better. Let me know when it's up.

>> I have to say, I'm getting a bit nervous about the huge number of  
>> parameters to set. I wish I had some kind of checklist.
>
> Actually, you do.  If you run ECJ with 	-p print-params=true   then  
> it prints out all the parameters (and their values) that ECJ  
> requests from the parameter database.  There are some other related  
> parameter-printing options but print-params is the most useful.

That's a help, although it's still a bit cryptic. Near the end of the  
output:

PARAMETER: gp.tc.0
          P: finish = ec.simple.SimpleFinisher
          P: breed = ec.simple.SimpleBreeder
          P: pop.subpops = 2
         !P: breed.elite.0
         !P: breed.elite.1
          P: eval = ec.simple.SimpleEvaluator
          P: eval.problem = orego.gp.MostC3s
          P: eval.problem.stack = ec.gp.ADFStack
         <P: gp.problem.stack
          P: eval.problem.stack.context = ec.gp.ADFContext
         <P: gp.adf-stack.context
          E: eval.problem.stack.context.data = orego.gp.DoubleData
         <E: gp.adf-context.data
          E: eval.problem.stack.context.data = orego.gp.DoubleData
          P: eval.problem.stack.context.data = orego.gp.DoubleData
         <P: gp.adf-context.data
          P: eval.problem.data = orego.gp.DoubleData
         <P: gp.problem.data
         !E: eval.masterproblem
         !E: eval.masterproblem

What do P and E mean? I'm guessing ! means I didn't provide a  
parameter, but what is the default value of such parameters? What  
does < mean?

Using a powerful off-the-shelf tool like ECJ is a bit of a step for  
me. Like a lot of other researchers, I suffer from "not invented  
here" syndrome -- I'm reluctant to use anything created outside of my  
own research group. Inevitably given all of the things it can do, ECJ  
has a LOT of knobs to set. I'm trying to work through it a bit at a  
time, but I shudder at the prospect of, for example, trying to write  
JUnit tests for my evaluation function.

Here's hoping it will all make sense after I've wrestled with it for  
a couple of weeks...

Peter Drake
http://www.lclark.edu/~drake/