public static TrainEA constructNEATTrainer(final NEATPopulation population,
final CalculateScore calculateScore) {
final TrainEA result = new TrainEA(population, calculateScore);
result.setSpeciation(new OriginalNEATSpeciation());
result.setSelection(new TruncationSelection(result, 0.3));
final CompoundOperator weightMutation = new CompoundOperator();
weightMutation.getComponents().add(
0.1125,
new NEATMutateWeights(new SelectFixed(1),
new MutatePerturbLinkWeight(0.02)));