(Sorry for the delayed answer)
Here are the genetic operators:
pop.subpop.0.species.pipe.num-sources = 3
pop.subpop.0.species.pipe.source.0 = ec.gp.koza.CrossoverPipeline
pop.subpop.0.species.pipe.source.0.prob = 0.9
pop.subpop.0.species.pipe.source.1 = ec.gp.koza.MutationPipeline
pop.subpop.0.species.pipe.source.1.prob = 0.05
pop.subpop.0.species.pipe.source.2 = ec.breed.ReproductionPipeline
pop.subpop.0.species.pipe.source.2.prob = 0.05
I am only trying to explore shorter trees than koza defaults to save
evaluation time. I thought that limiting creation size with
"gp.koza.half.max-depth" and mutation+crossover via
"gp.koza.crossover.maxdepth" and "gp.koza.mutate.maxdepth" would suffice.
Moreover I put a test in the postevaluation statistics exiting when the
node count for a tree exceed a maximum value ranging up from
2**(depth+1) to 2**(depth+3) (since I use only binary ops +,-,*). I
observed that all goes well in the first couples of generations before
exiting in what looks like the usual size increase of trees. It seems
this size increase is due to crossover/mutation (/reproduction ???!). I
verified in the out.stat that trees were really too deep.
As I said in my 1st mail, the problem is solved by using
So there may well be a bug, unless I completely misunderstand the use of
"gp.koza.crossover.maxdepth" and "gp.koza.mutate.maxdepth"
Sean Luke a écrit :
> Denis, I misread your message - you're trying to limit the tree size
> that occurs during crossover, is that correct? As opposed to the size
> of trees generated during tree initialization operators. In that
> case, you don't want to full with the parameters I told you.
> Before I look further into this, what *are* your operators at
> pop.subpop.0.species.pipe.source.0 and
Laboratoire d'Informatique du Littoral
50 rue Ferdinand Buisson