Print

Print


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