Peter: others have mentioned it, but I'll chime in. This is exactly what ERC.java does. Check it out! Your approach below will not work for you. Rather, it will create a node which returns a different value every time it is called. Sort of like the GP node equivalent of (random 10.0) Sean Peter Thieu wrote: > Hi there > > i want leaves with a constant, i.e: > > public class Const extends GPNode > { > private int cValue; > public String toString() { return Integer.toString(this.cValue);} > > public void checkConstraints(final EvolutionState state, > final int tree, > final GPIndividual typicalIndividual, > final Parameter individualBase) > { > super.checkConstraints(state,tree,typicalIndividual,individualBase); > if (children.length!=0) > state.output.error("Incorrect number of children for node " + > toStringForError() + " at " + > individualBase); > } > > public void eval(final EvolutionState state, > final int thread, > final GPData input, > final ADFStack stack, > final GPIndividual individual, > final Problem problem) > { > DoubleData rd = ((DoubleData)(input)); > this.cValue = ((int)(state.random[thread].nextDouble()*10)); > rd.x = this.cValue; > } > } > > assuming it creates a tree like (x+2) * 3, where 2 and 3 leaves were > produced by the class Const > > assuming this tree is passed to the next generation, will it be the same > tree with the same constants (x+2) * 3, or will there be new constants > values i.e. (x+4) * 5? > > kind regards > > Peter