Inspiration

What it does

How we built it

Challenges we ran into

Accomplishments that we're proud of

What we learned

What's next for Genetic Evolution Education Program

Evolutionary computation and genetic algorithms have been something I've been reading and curious about for a couple months though and I was looking forward to trying to implement a system that used it for the first time. Unfortunately I couldn't come up with a good enough problem to use this AI and also had trouble explaining it to my group so I decided that creating an educational genetic algorithm that the user builds themselves would be a good way to educate people on algorithms like this.

The program we made has a target string that is it's objective. It begins with a population of randomly generated strings initialized by the user. It then goes through the process of 'evolving' the string and allowing the user to make decisions about how the program executes itself.

We built this program entirely in java. In retrospect a more gui and graph friendly language such as python would have been a better tool, but when the project was started all team members were familiar with java and that's what we stuck with.

One of the biggest challenges was trying to give an evolutionary algorithm the sort of modular design that we set out to create. Evolving a string into what we want is not too difficult to achieve on its own, but we were attempting to solve the problem multiple ways all while trying to keep it at least somewhat efficient

One problem with the program as it is now is that the interface isn't ideal for learning. It is at most a tool for a lecturer to demonstrate different techniques used in evolutionary computation. Ideally, a fleshed out user interface would be helpful, but more importantly is graphs plotting the generations vs the fitness of the strings. Having plots of these graphs side by side using different user inputs would be helpful to novices (such as myself) explore how genetic algorithms react to different techniques

Increasing the interactiveness is a goal for the future of this program. Allowing for more options can bring it from a simple educational tool to a more informative research assistant. With increased modularity and more input from the user much more is possible in the exploration of genetic algorithms.

Built With

Share this project:

Updates