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.
On Sep 6, 2008, at 4:44 AM, Andrzej Jaworski wrote:
> i use ECJ for genetic programming. I have a problem.
> One of my nodes is a conditional function:
> 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?