Print

Print


Dear all,

I'm using a constrained-based GP to evolve functions for a problem I have.
My individual must return a double. However, in my problem there is not
terminal node that returns a double. If I don't use a terminal that returns
a double, I get the following warning (followed by an error).











*A GPNodeBuilder has been requested at least once to generate a one-node
tree with a return value type-compatable with a certain type; but there is
no TERMINAL which is type-compatable in this way.  As a result, the
algorithm was forced to use a NON-TERMINAL, making the tree larger than
requested, and exposing more child slots to fill, which if not carefully
considered, could recursively repeat this problem and eventually fill all
memory.ONCE-ONLY WARNING:class ec.gp.koza.FullBuilder can't find a terminal
type-compatable with numberjava.lang.StackOverflowErrorat
ec.gp.GPNodeBuilder.warnAboutNoTerminalWithType(GPNodeBuilder.java:238)at
ec.gp.koza.KozaBuilder.fullNode(KozaBuilder.java:117).... recursively...*

I would like to understand at this point, since I have a lot of
non-terminal nodes that return a double. Is there a way to avoid this
problem even without using a terminal node that returns a double? If ECJ
doesn't present this problem if I have a terminal node returning a double
(ECJ chooses this terminal node as root), it could chose one of many
non-terminal nodes as the root node. Is there any way to do that?

Best,
Márcio

--------
Prof. Dr. Márcio Porto Basgalupp
Instituto de Ciência e Tecnologia (ICT)
Universidade Federal de São Paulo (UNIFESP)
Tel: +55 12 3924-9500 (r: 9762)