Sender: |
|
Date: |
Thu, 17 Dec 2009 12:11:35 +0100 |
Reply-To: |
|
Subject: |
|
From: |
|
Content-Type: |
multipart/alternative; boundary=000e0ce0d4a0b56409047aeaafb0 |
In-Reply-To: |
|
MIME-Version: |
1.0 |
Comments: |
|
Parts/Attachments: |
|
|
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<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.
>>
>>
>
|
|
|