Print

Print


If I do this, I will implement a check() method for the Individual class you are using. (Assuming you have one tree for every individual) In this check method, I traverse through the tree and keep track of occurances of each kind of node. If the tree does not satisfy you condition. I will mark it as "bad". 
You can remove "bad" individuals from your population in many places. Maybe pre-breed or post-breed.
Other means are also possible, you don't need to strictly follow this.

On Tue, Feb 25, 2014 at 1:43 AM, Francisco Lopez de la Franca <[log in to unmask]> wrote:
But, how do I do that? I mean, where do I check (in the code) that the individual generated does not fulfill the requirement of appearing every node at least once?
Thanks a lot.


2014-02-24 19:56 GMT+01:00 Xiaomeng Ye <[log in to unmask]>:

Or you can simply discard any non-conformed individuals, during any process (initialization, breeding). And keep generating new individuals until your population is filled with the individuals conforming to this rule.


On Mon, Feb 24, 2014 at 1:13 PM, Sean Luke <[log in to unmask]> wrote:
Francisco, ECJ can't do this by default: and I really have no idea how to require this constraint.  You'll have to either enforce this rule in the tree builder algorithm and/or the crossover mutation operators.  Alternatively you can assess the fitness of non-confirming individuals as very low.

Sean

On Feb 24, 2014, at 6:57 AM, Francisco Lopez de la Franca <[log in to unmask]> wrote:

> Hello.
>
> I am new in ECJ. I'm going to use ECJ to find the solution of a second degree equation, that is, x=(-b+sqrt(b^2-4ac))/(2a).
> I've implemented as FunctionSet the following nodes: add, sub, sqrt, square, mul, div, neg, a, b, c, 2 and 4.
> I've followed the instructions described both in the tutorial4 in the documentations provided with ECJ and the one in the ECJ manual.
>
> What I need and donot find the way, is to force to appear in the result tree the nodes: a, b, c, 2, 4, -, +, sqrt, square, div and mul. That is, to specify in some manner that the nodes must appear at least once. Moreover, I'd like to know if it is possible to set that one node must appear a number of times in the solution.
>
> I hope to have explained well.
>
> Thank you very much in advance.
>
> Regards.