Genetic Algorithm

This was another component of my B.Eng work. The Genetic Algorithm was novel in that it used continuous rather than discrete symbolic genes in the genome. This require modifying mutation and crossover to handle the the types of codons. The genes themselves were double precisions IEEE floating point numbers. Mutation was changed to provide an addition of a normally distributed random number with a mean of 0. This gave a fairly high chance of a small mutation but it was still possible for large changes to occur.

The genetic algorithm itself was used to control parameters for the Magentic Levitation Simulator. This was wrapped into a graphical Windows application based on two main threads. The main thread was used for re-drawing the GUI to the screen to keep the user informed of the progress of the GA. The secondary thread ran that GA itself.