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