Perpetuation of an organism’s genetic line is imperative, and the ability to evolve is a species’ greatest asset in the competitive world of predation. To simplify an explanation of evolution, consider the following scenario: A population of organisms lives in a single environment, free from the fear of predation by stronger, more aggressive species, and supplied with ample food. The population has no need to evolve past its current stage. However, if a predator is introduced into the environment, the dynamics of the situation shift immediately. The predator begins hunting and killing the members of the population, and while some are able to hide from it, many are not, and they are slaughtered and eaten. This continues for many generations, with the population being preyed upon at a constant rate. One day, however, a new member of the species is born with a strange mutation. This mutation allows some form of defense to the organism. When confronted by the predator, the mutant utilizes its abilities and either defends itself or evades capture. Due to this beneficial mutation, the mutant survives much longer than its more unfortunate siblings, allowing it to mate at a greater rate. Its genes are passed down through the next generation, and those who receive the mutant gene have a correspondingly high chance of survival. 
In the preceding example, many facets of evolution are demonstrated: mutation, survival, reproduction rate, etc. While it is a rough outline of a very intricate process, the basics of evolution are conveyed. However, it is difficult to study a phenomenon that takes place over eons. Instead, it is much simpler to simulate evolution within the confines of a computer. In order to do this, genetic algorithms were invented. Genetic algorithms work with a predefined search space to evolve the most efficient solution for problems that would take far too long to compute by hand. One can immediately draw parallels between evolution in nature and evolution of computer programs; each has a population that is moving towards an ultimate goal, and are adapting to the environmental situation to reach it. In terms of conserving computer resources, genetic algorithms are an invaluable tool that can be used in a variety of environments
	A genetic algorithm (GA), as defined by Hsuing and Matthews, is an algorithm that solves problems through the process of Darwinian natural selection. The algorithm takes a given solution and generates a fitness function to match it. Then, through the production of individuals (solutions to the problem), the algorithm compares all solutions to the fitness function and assigns a fitness score. Those individuals with a higher score are given higher reproduction priority. Individuals mate through recombination and pass their genes on to their offspring. The algorithm repeats this process until a solution is found.
	For this project, it was decided that binary coding would be the most efficient form of representing individuals. Binary coding assumes that the target solution is a real number and converts it to a string of 1s and 0s that represent said number. 