Print

Print


It's not built-in.  You're going to have to override your breeding  
operators (crossover say) and your initializer to test for these  
conditions.  For the breeding operators, it's straightforward: you  
could rewrite the verifyPoints operator to verify that the crossover  
will produce kids that are okay with regard to their parent if their  
parent is an IFGreater operator.  For the initializer, you'll override  
the Subpopulation.populate() method to only insert an individual in  
the population if he meets the constraints, else reject him.

Sean

On Sep 6, 2008, at 4:44 AM, Andrzej Jaworski wrote:

> Hello,
>
> i use ECJ for genetic programming. I have a problem.
>
> One of my nodes is a conditional function:
>
> IfGreater(float,float,nil,nil)
>
> If the first float is greater the first nil is evaluated.
> Both float and nil arguments can be subtrees (non-terminals).
> My problem is that I want to avoid situation where for example both  
> floats or both nils are identical subtrees.
> Is there a way to do this?
>
> Andrzej