Genetic Algorithms

Martin Wickham, Mike Precup

Genetic algorithms are ways of creating optimal or near optimal solutions to problems by mimicking the process of evolution and natural selection. In one example we found, the internal components of a clock are represented by what is effectively the DNA of the clock. Based on this, the clocks were tested against each other in sets of three. The worst “died”, and the other two produced offspring. This process continued until useful clocks were reached. Out of an original pool where 98 percent did nothing and the other 2 percent were pendulums, multi hand clocks that accurately kept time evolved. Our goal is do implement something close to this involving keyboards. The layout of a keyboard affects how fast you are able to type, because certain keys are more likely to be used. Optimally, your fingers shouldn’t move very far to press those. So, for our project, we are making a genetic algorithm that will take in large amounts of text, like books, and measure how long it would take to type them based on the keyboards layout. In this way, the best possible keyboard layouts will eventually be created.

One response to “Genetic Algorithms”

  1. Lekan

    This is an awesome idea for implementing a genetic algorithm. Very interested to see what you come up with! Genetic algorithms can be tricky to tune just right and can be finicky, so make sure you implement the algorithm early so you can play around with it.

    This chapter from a great online textbook may be helpful:

Leave a Reply

You must be logged in to post a comment.