Genetic Programming and Application Development 09/09/2017

Today’s research will be further dedicated to studying genetic programming and it’s applications, as well as development of our Java application.

Genetic Programming

In the last post, I went over vocabulary associated with Genetic Programming and what they actually refer to. Here, I will discuss the steps associated with this vocabulary.

The book “Cartesian Genetic Programming” by Julian F. Miller discusses these steps as so:

Step 1] Generate a number of chromosomes randomly, this is the initial population
Step 2] Determine which chromosomes are fittest and allow them to propagate the next generation.
Step 3] Allow the fittest chromosomes to be the parents and select genes from the two parents to participate in recombination to create children.
Step 4] If invalid permutations arise implement a repair procedure to fix them.
Step 5] Allow mutation to happen, for example, swap one gene from a child to another.
Step 6] Form the new population from a combination of the new children and their parents. Sometimes, certain parents are specifically added to the next generation without change.

Julian Miller Pesudo Code Simple GP.png


Genetic programming however, has been implemented in a variety of ways. The book “Cartesian Genetic Programming” lists examples of genetic programming implemented linearly, using trees, and using stacks. Cartesian genetic programming is a graph implementation of genetic programming that minimizes unnecessary program growth.


The nitty gritty details of working with Cartesian Genetic Programming will be further outlined next week by both Taylor and myself. However, for now, I will briefly touch on the work me and Taylor have done toward developing an environment to explore our algorithms with.

Application Development

Currently me and Taylor have set up a Github repository to collaborate and work on the development of our application. It will be written in Java, and already an initial design has been put forth by my partner.

Initial GUI

An initial look at me and Taylor’s GUI, which can be found here on Github.

We are working on getting it up an running, with a goal of having some sort of drawing in black and white functionality by the end of next week.

Our long term goal of understanding our programs, and having a running program by the end of the month remains. Although significant steps have already begun!

[1] Julian Miller, What bloat? Cartesian Genetic Programming on Boolean problems. School of Computer Science, University of Birmingham, 2000.
[2] Julian Miller, Cartesian Genetic Programming. Natural Computing Series, 2011

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s