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/
|