[EvA] Measuring the bloat in GP
Marcel Kronfeld
marcel.kronfeld at uni-tuebingen.de
Thu Feb 26 12:11:30 CET 2009
Hi there,
I guess an easy way to do this would be to inherit an own GP-Problem
(which you will probably want to do for the analysis anyway?) from a
GP-Problem and reimplement the method
public void evaluatePopulationEnd(Population population)
from AbstractOptimizationProblem. That method is called in every
iteration after the evaluation of the population, and there you can
simply walk through the whole population and use getMaxDepth() or
getNumberOfNodes() from AbstractGPNode. For "Bloat" in a stricter sense
you could also look at the program contents, maybe search for redundant
tree patterns such as (* (...) 1) or (* (...) 0) in regression problems.
Notice however that GPIndividualProgramData by default uses a maximum
depth for GP to control computational cost which you probably want to
deactivate. And notice that the bloat effect may depend on the genetic
operators and thereby even on the function set in use, since the "grow
initialization mode" (used in initialization and mutation) takes a
uniform random function from the full set, so that arity distributions
take effect on the size of the resulting GP tree.
Kind regards,
Marcel Kronfeld
Falevian wrote:
> I'm trying to analize the bloat effect in GP using Eva2, but I'm not sure
> how to measure the depth, or that it's the same, the bloat effect in the
> poblation. May anybody help me?
--
Dipl.-Inform. Marcel Kronfeld
Wilhelm-Schickard-Institute for Computer Science
University of Tuebingen
Sand 1 - A305, 72076 Tuebingen, Germany
Phone: (+49/0)-7071-29-78987, Fax: (+49/0)-7071-29-5091
EMail: marcel.kronfeld at uni-tuebingen.de
More information about the EvA
mailing list