Print

Print


Hi everyone, I am new to ECJ and was hoping someone could help.

 

I would like to perform a number of mutation schemes. The first one is
"traditional mutation":

 

1)       (Traditional mutation): select a random node and remove it (along
with all its children) and replace it by a randomly generated subtree and
subtree root.

 

The other two schemes I would like to implement are based on
"point-mutation". Both point-mutation schemes would start out by selecting a
node and generate a random node (e.g. symbol1) to replace it. Symbol1 would
be checked to see whether it is of the same arity as the node. If it is,
then the node would be replaced by symbol1. If they are not of the same
arity, then we would either:

 

2)      Pick another symbol until we find one of the same arity; OR

3)      Remove the node and replace it with a new subtree using symbol1 as
the root.

 

I can see that (2) would be equivalent to using MutateOneNodePipeline. I
however fail to identify what class/method to use to implement (1) and (3).

 

Any help would be much appreciated!

 

Cheers,

Peter