Getting Started with GP by Emmanuel Dufourq

“Well, this is where it all started. A few lines of Java loosely translated to Python, the first three chapters of the “Field Guide to Genetic Programming“, and guidance from fellow researcher Emmanuel and officemate Arun, when I took wrong turns.

Had I known the effort would be not just six weeks, but six months, resulting in more than 2300 lines of Object Oriented code producing an extensible, multi-core platform for both symbolic regression and classification, with a user interface, well, I would have either been pleasantly surprised or run away screaming mad.

Either way, I look back and recognise how far I have come as a programmer, how much I have gained in training as a researcher, and how good it feels to have dedicated myself to a substantial task and followed through.” –kai, 26 September 2015

public Node createTree(int maxDepth, String type){

int random = gen.nextInt(4);
Node root;

if(random == 0){
root = new And();
else if(random == 1){
root = new Or();
else if(random == 2){
root = new If();
root = new Not();

treeSize = 1;

populateTree(root, root.getLabel(), type, 1, maxDepth);

return root;

To read only essays and entries about my work in genetic programming and machine learning, select the category Ramblings of a Researcher.