[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