Print

Print


Sorry about that! =D

On 26 January 2013 19:03, Sean Luke <[log in to unmask]> wrote:
> Well that was easy!  :-)
>
> Sean
>
> On Jan 26, 2013, at 12:07 PM, Rodrigo Barros wrote:
>
>> I figured it out by myself. Thanks anyway! =)
>>
>> On 26 January 2013 16:18, Rodrigo Barros <[log in to unmask]> wrote:
>>> Hi,
>>> I'm implementing a GE system to evolve functions for regression.
>>> One of my non-terminals is an if-then-else function. My grammar looks like this:
>>>
>>> <start>::= <exp>
>>> <exp>::=  (* <coef> <var>) | (/ <coef> <var>) | (+ <coef> <var>) | (-
>>> <coef> <var>) | <var>
>>> <exp>::= (+ <exp> <exp>) | (- <exp> <exp>) | (* <exp> <exp>) | (/
>>> <exp> <exp>) | (^ <exp> <int>)
>>> <exp>::= (log <exp>) | (cos <exp>) | (sin <exp>)
>>> <exp>::= (if <bool> <exp> <exp>)
>>> <bool>::= (gt <exp> <exp>) | (gteq <exp> <exp>) | (sm <exp> <exp>) |
>>> (smeq <exp> <exp>) | (eq <exp> <exp>) | (neq <exp> <exp>)
>>> <coef>::= (RealNumber) | <int>
>>> <int>::= (IntegerNumber)
>>> <var>::= (Att)
>>>
>>> And my GPData has two attributes: a boolean value and a double value.
>>> My implementation of the if-then-else rule is:
>>>
>>> public void eval(final EvolutionState state,final int thread,final
>>> GPData input,final ADFStack stack,final GPIndividual individual,final
>>> Problem problem)
>>> {
>>> boolean result;
>>> GEData data = ((GEData)(input));
>>> children[0].eval(state,thread,input,stack,individual,problem);
>>> result = data.bool;
>>> if(result){
>>> children[1].eval(state,thread,input,stack,individual,problem);
>>> }
>>> else{
>>> children[2].eval(state,thread,input,stack,individual,problem);
>>> }
>>> }
>>>
>>> For some reason, I'm getting the following error:
>>> "Incorrect number of children for node if at
>>> pop.subpop.0.species.gp-species.ind"
>>>
>>> Though I'm pretty sure I configured correctly the rule in the parameters file:
>>> gp.fs.0.func.17 = seege.If
>>> gp.fs.0.func.17.nc = nc3
>>>
>>> Do you have any idea why the If-then-else rule is supposedly receiving
>>> the wrong number of children (different from 3)? I don't know what
>>> else to try.
>>>
>>> Thank you in advance,
>>>
>>> Rodrigo
>>>
>>>
>>>
>>> --
>>> Rodrigo Coelho Barros, MSc.
>>> PhD Candidate
>>> Bioinspired Computation Laboratory (BioCom)
>>> Department of Computer Science
>>> University of São Paulo at São Carlos (ICMC-USP)
>>>
>>> www.icmc.usp.br/~rcbarros
>>> e-mail (1): [log in to unmask]
>>> e-mail (2): [log in to unmask]
>>> e-mail (3): [log in to unmask]
>>>
>>> mobile: +44 75 7227 4565
>>
>>
>>
>> --
>> Rodrigo Coelho Barros, MSc.
>> PhD Candidate
>> Bioinspired Computation Laboratory (BioCom)
>> Department of Computer Science
>> University of São Paulo at São Carlos (ICMC-USP)
>>
>> www.icmc.usp.br/~rcbarros
>> e-mail (1): [log in to unmask]
>> e-mail (2): [log in to unmask]
>> e-mail (3): [log in to unmask]
>>
>> mobile: +44 75 7227 4565



-- 
Rodrigo Coelho Barros, MSc.
PhD Candidate
Bioinspired Computation Laboratory (BioCom)
Department of Computer Science
University of São Paulo at São Carlos (ICMC-USP)

www.icmc.usp.br/~rcbarros
e-mail (1): [log in to unmask]
e-mail (2): [log in to unmask]
e-mail (3): [log in to unmask]

mobile: +44 75 7227 4565