Thanks a lot. Indeed they are, it is a nice mailing list. Actually I got from there the background of the typed GP concepts. Enjoy Rome. On Thu, Dec 17, 2009 at 1:52 PM, Sean Luke <[log in to unmask]> wrote: > It's good to see you got it working. Sorry I couldn't respond in time -- > I'm presently in Rome this semester and my turnaround is much slower than > normal. > > I used to have a variant of Artificial Ant which did typed GP for a demo > example, but sadly I can't find it anywhere. FWIW, if you search the ECJ > mailing list archives you'll also find a lot of examples and discussion > about strongly typed GP. > > Sean > > > On Dec 17, 2009, at 12:11 PM, alibaba wrote: > > Hi all again. >> >> I added the restrinctions that i needed (see bellow). I this thread will >> be useful to somebody. >> >> Regards. >> >> >> gp.nc.size = 16 >> >> gp.nc.7 = ec.gp.GPNodeConstraints >> gp.nc.7.name = ncAND_or_rule >> gp.nc.7.returns = and >> gp.nc.7.size = 2 >> gp.nc.7.child.0 = or >> gp.nc.7.child.1 = rule >> >> gp.nc.8 = ec.gp.GPNodeConstraints >> gp.nc.8.name = ncAND_and_rule >> gp.nc.8.returns = and >> gp.nc.8.size = 2 >> gp.nc.8.child.0 = and >> gp.nc.8.child.1 = rule >> >> gp.nc.9 = ec.gp.GPNodeConstraints >> gp.nc.9.name = ncAND_rule_rule >> gp.nc.9.returns = and >> gp.nc.9.size = 2 >> gp.nc.9.child.0 = rule >> gp.nc.9.child.1 = rule >> >> gp.nc.10 = ec.gp.GPNodeConstraints >> gp.nc.10.name = ncOR_or_rule >> gp.nc.10.returns = or >> gp.nc.10.size = 2 >> gp.nc.10.child.0 = or >> gp.nc.10.child.1 = rule >> >> gp.nc.11 = ec.gp.GPNodeConstraints >> gp.nc.11.name = ncOR_and_rule >> gp.nc.11.returns = or >> gp.nc.11.size = 2 >> gp.nc.11.child.0 = and >> gp.nc.11.child.1 = rule >> >> ##Not used >> #gp.nc.12 = ec.gp.GPNodeConstraints >> #gp.nc.12.name = ncOR_rule_rule >> #gp.nc.12.returns = or >> #gp.nc.12.size = 2 >> #gp.nc.12.child.0 = rule >> #gp.nc.12.child.1 = rule >> >> gp.nc.13 = ec.gp.GPNodeConstraints >> gp.nc.13.name = ncAND_and_and >> gp.nc.13.returns = and >> gp.nc.13.size = 2 >> gp.nc.13.child.0 = and >> gp.nc.13.child.1 = and >> >> ##Not used >> #gp.nc.14 = ec.gp.GPNodeConstraints >> #gp.nc.14.name = ncOR_and_and >> #gp.nc.14.returns = or >> #gp.nc.14.size = 2 >> #gp.nc.14.child.0 = and >> #gp.nc.14.child.1 = and >> >> gp.nc.15 = ec.gp.GPNodeConstraints >> gp.nc.15.name = ncRule >> gp.nc.15.returns = rule >> gp.nc.15.size = 0 >> >> >> gp.fs.0.size = 7 >> >> gp.fs.0.func.0 = ec.app.gp.ossimRuleGeneration.func.And >> gp.fs.0.func.0.nc = ncAND_or_rule >> >> gp.fs.0.func.1 = ec.app.gp.ossimRuleGeneration.func.And >> gp.fs.0.func.1.nc = ncAND_and_rule >> >> gp.fs.0.func.2 = ec.app.gp.ossimRuleGeneration.func.And >> gp.fs.0.func.2.nc = ncAND_rule_rule >> >> gp.fs.0.func.3 = ec.app.gp.ossimRuleGeneration.func.Or >> gp.fs.0.func.3.nc = ncOR_or_rule >> >> gp.fs.0.func.4 = ec.app.gp.ossimRuleGeneration.func.Or >> gp.fs.0.func.4.nc = ncOR_and_rule >> >> gp.fs.0.func.5 = ec.app.gp.ossimRuleGeneration.func.Or >> gp.fs.0.func.5.nc = ncOR_rule_rule >> >> gp.fs.0.func.6 = ec.app.gp.ossimRuleGeneration.func.rule >> gp.fs.0.func.6.nc = ncRule >> >> >> >> >> >> >> On Tue, Dec 15, 2009 at 5:32 PM, alibaba <[log in to unmask]> wrote: >> Hi All, >> >> Thanks for keep on reading. >> >> I have found what I was looking for on this thread: The "nil" GPType in >> GPNodeConstraints. I am indeed trying to add the constraints that my model >> needs and I'm coming across some troubles. >> >> Let me contextualize the problem. I'm generating a tree of AND and OR >> non-terminal nodes and a RULE-function as terminal nodes. I want to add some >> constrains so the generated tree follows this two rules: >> 1) The root of the tree must be an AND function. >> 2) At least one of the childs of the non-terminal nodes must be or a >> terminal-node (RULE) or an AND node. >> >> I'm trying to add the described constrains like this: >> >> First, I define the GPTypes as follows: >> >> gp.type.a.size = 4 gp.type.a.0.name = nil # This one might not be >> necessary gp.type.a.1.name = rule gp.type.a.2.name = and gp.type.a.3.name= or gp.type.s.size = 0 >> >> To fulfill 1) I added the follow tree constrain: >> >> gp.tc.0.returns = and >> >> To fulfill 2) I added the follow node constrains: >> >> gp.nc.size = 10 >> #--------------------# gp.nc.7 = ec.gp.GPNodeConstraints gp.nc.7.name = >> ncAND gp.nc.7.returns = and gp.nc.7.size = 2 gp.nc.7.child.0 = rule >> gp.nc.7.child.1 = or >> #--------------------# gp.nc.8 = ec.gp.GPNodeConstraints gp.nc.8.name = >> ncRULE gp.nc.8.returns = rule gp.nc.8.size = 0 >> #--------------------# >> gp.nc.9 = ec.gp.GPNodeConstraints gp.nc.9.name = ncOR gp.nc.9.returns = >> or gp.nc.9.size = 2 gp.nc.9.child.0 = rule gp.nc.9.child.1 = and >> >> >> Then I add each constrains to the functions of the function set: >> >> gp.fs.0.func.0 = ec.app.gp.ossimRuleGeneration.func.Or gp.fs.0.func.0.nc= ncOR >> gp.fs.0.func.1 = ec.app.gp.ossimRuleGeneration.func.rule gp.fs. >> 0.func.1.nc = ncRULE >> gp.fs.0.func.2 = ec.app.gp.ossimRuleGeneration.func.And gp.fs.0.func.2.nc= ncAND >> >> >> Note that with this constrains I am being more restrictive that what I >> have defined in 2), and actually it doesn't work because, as it is obvious, >> it never finish due there is always a non-terminal node as child in >> gp.nc.8.child.1 and gp.nc.9.child.1. The problem here is that I need >> gp.nc.8.child.1 and gp.nc.9.child.1 to be some times AND and some others >> RULE, so the GP program will eventually finish. >> >> And I will like to set gp.nc.8.child.0 and gp.nc.9.child.0 some times to >> RULE and some others to AND to fully satisfy 2) >> >> Is there any way? How can I do such things. >> >> Thanks in advance. >> >> >> >> On Tue, Dec 15, 2009 at 10:08 AM, alibaba <[log in to unmask]> wrote: >> >> Hello! >> >> First of all, thanks for reading. >> >> I need to add some Constraints to my GP program so each function that I >> have can only accept a specific subset of children. For this, should specify >> this on the params files or I have to add some checks on the >> checkConstraints method for each GPNode. >> >> Does anybody know an example on the web about this that I can follow? >> >> Thanks in advance. >> >> >> >>