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