I am a new user of JGAP from China. I have spent a whole week to study your programs. Thank you for sharing your work. It's wonderful. However, I found a bug in one of your examples named "MathProblem.java", In this example, the fitness was defined as an error between the selected value and the target value, which means the greater the error is, the greater the fitness is. And in evolve(), the class "FitnessProportionateSelection" which was used to select individual defined that the individual with greater fitness had larger possibility to be selected. As the result of two definations above, the closer the value to the target, the less possible it to be selected. I think it was wrong. I am looking forward to your response.