ECJ-INTEREST-L Archives

June 2015

ECJ-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Monospaced Font
Show HTML Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Sean Luke <[log in to unmask]>
Reply To:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Date:
Wed, 24 Jun 2015 11:40:14 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (16 lines)
On Jun 24, 2015, at 10:03 AM, Pedro J. Ponce de León <[log in to unmask]> wrote:

> I'm trying to setup ECJ to evolve GP trees with a minimum depth with the following node types/constraints:
> 
> - RootNode 
> (Section, Section) -> Melody  # (child1, child2) -> return type
> 
> - SectionNode 
> (Measure | Section, Measure | Section) -> Section

FULL and GROW work by picking nonterminals up to a point, then terminals.  But you have no terminal which returns Section, hence the warning.  Thus it's possible that FULL or GROW will keep on picking a nonterminal forever and ever.  Just because it is *possible* for ECJ to select a MeasureNode as a child here, then four Symbols, doesn't mean that it will do so randomly.

The fundamental problem here is that ECJ's typing is greedy (it has to be to accommodate most tree generation algorithms).  What you're asking for in FULL and GROW is not really possible.

Sean

ATOM RSS1 RSS2