Print

Print


THAT is a cut-and-paste error still in the code.  Just swap "terminal" 
for "non-terminal" and vice versa in the error message.

Sean

David Robert White wrote:
> Further to my previous message, the same method goes on to output a 
> shorter message:
> 
>        if (fail)
>            state.output.fatal("" + this.getClass() + " can't find a 
> terminal type-compatable with " + type +
>                               " and cannot replace it with a 
> nonterminal.  You may need to try a different node-builder algorithm.");
>        else
>            state.output.warnOnce("" + this.getClass() + " can't find a 
> terminal type-compatable with " + type);
>        }
> 
> But the message doesn't match the comment before the method: maybe it 
> should read:
> 
> " can't find a *non*-terminal type-compatible with " + type
> 
> ???
> 
> I hope someone can clear this up for me!
> 
> Thanks
> 
> David
> 
> 
> -------- Original Message --------
> Subject:     GPNodeBuilder Error Message
> Date:     Fri, 16 Jan 2009 15:57:42 +0000
> From:     David Robert White <[log in to unmask]>
> To:     ECJ Evolutionary Computation Toolkit 
> <[log in to unmask]>
> 
> 
> 
> Hi,
> 
> I'm confused about the error message below, please could someone explain 
> it?
> If the builder was creating a one-node tree, surely a terminal would be 
> ideal?  Why would using a terminal create a tree larger than requested?
> 
> Thanks
> 
> David
> 
> GPNodeBuilder:269
> 
>       state.output.warnOnce("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 NON-TERMINAL which is type-compatable " +
>                             "in this way.  As a result, the algorithm 
> was forced to use a 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.");