train.getRules().addRewriteRule(new RewriteConstants());
train.getRules().addRewriteRule(new RewriteAlgebraic());
train.setCODEC(new PrgCODEC());
train.addOperation(0.8, new SubtreeCrossover());
train.addOperation(0.1, new SubtreeMutation(pop.getContext(),4));
train.addOperation(0.1, new ConstMutation(pop.getContext(),0.5,1.0));
train.addScoreAdjuster(new ComplexityAdjustedScore());
train.setSpeciation(new PrgSpeciation());
return train;
}