Hi all again.
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 = 4gp.type.a.0.name = nil # This one might not be necessarygp.type.a.1.name = rulegp.type.a.2.name = andgp.type.a.3.name = orgp.type.s.size = 0To fulfill 1) I added the follow tree constrain:gp.tc.0.returns = andTo fulfill 2) I added the follow node constrains:gp.nc.size = 10#--------------------#gp.nc.7 = ec.gp.GPNodeConstraintsgp.nc.7.name = ncANDgp.nc.7.returns = andgp.nc.7.size = 2gp.nc.7.child.0 = rulegp.nc.7.child.1 = or#--------------------#gp.nc.8 = ec.gp.GPNodeConstraintsgp.nc.8.name = ncRULEgp.nc.8.returns = rulegp.nc.8.size = 0#--------------------#gp.nc.9 = ec.gp.GPNodeConstraintsgp.nc.9.name = ncORgp.nc.9.returns = orgp.nc.9.size = 2gp.nc.9.child.0 = rulegp.nc.9.child.1 = andThen I add each constrains to the functions of the function set:gp.fs.0.func.0 = ec.app.gp.ossimRuleGeneration.func.Orgp.fs.0.func.0.nc = ncORgp.fs.0.func.1 = ec.app.gp.ossimRuleGeneration.func.rulegp.fs.0.func.1.nc = ncRULEgp.fs.0.func.2 = ec.app.gp.ossimRuleGeneration.func.Andgp.fs.0.func.2.nc = ncANDNote 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:
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.