Hi All, Thanks for keep on reading. I have found what I was looking for on this thread: The "nil" GPType in GPNodeConstraints<http://listserv.gmu.edu/cgi-bin/wa?A2=ind0804&L=ecj-interest-l&D=0&X=4753654B9C0978582B&P=855>. 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. > >