Hi, I've been using ECJ for performing some experiments with Strongly-Typed GP (namely, for evolving unit-test cases for Java programs). I wanted to perform some experiments that require setting different probabilities of selecting constraints, and I found out that the PTC1 and PTC2 algorithms allow me to do this. However, I've been having some problems. Please consider the parametrization below. Basically, I want GPNodeConstraint nc1 to be chosen with a probability of 30% and nc2 to be selected with a probability of 70%. ----- EXAMPLE PARAMETERIZATION ----- gp.type.a.size = 2 gp.type.a.0.name = A gp.type.a.1.name = B gp.nc.size = 3 gp.nc.0 = ec.gp.GPNodeConstraints gp.nc.0.name = nc0 gp.nc.0.returns = B gp.nc.0.size = 1 gp.nc.0.child.0 = A gp.nc.1 = ec.gp.GPNodeConstraints gp.nc.1.name = nc1 gp.nc.1.returns = A gp.nc.1.size = 0 gp.nc.1.prob = 0.3 gp.nc.2 = ec.gp.GPNodeConstraints gp.nc.2.name = nc2 gp.nc.2.returns = A gp.nc.2.size = 0 gp.nc.2.prob = 0.7 gp.fs.0.size = 3 gp.fs.0.func.0 = functionFiles.FFB1 gp.fs.0.func.0.nc = nc0 gp.fs.0.func.1 = functionFiles.FFA1 gp.fs.0.func.1.nc = nc1 gp.fs.0.func.2 = functionFiles.FFA2 gp.fs.0.func.2.nc = nc2 ----- When I tried this out I got the following error message: "java.lang.ArithmeticException: Distribution has no elements". I guess that the problem here is that I didn't define any non-terminals for the atomic type A, and no terminals for B. Everything works fine if both A and B have terminals and non-terminals. The problem is that my problem requires me to define some types that only have terminal nodes (like A). Is there any way for me to get around this? Or am I missing something? Thanks, in advance, for your help, José