Genetic algorithm (GA) is an algorithm which imitates the process of evolution in order to produce a solution to optimization and search problems. The first attempt to create a genetic algorithm was in 1954 by Nils Aall Barricelli. However his work did not gain large notice. In 1957, Alex Fraser, an Australian geneticist published a paper on simulating evolution. Surprisingly, Fraser’s methods described in his paper included the essential elements found in todays genetic algorithm. With the publishing of his paper, genetic algorithms gained large attention and were soon adopted by many geneticists and computer scientists in order to solve complex search and optimization problems.
In GA, strings also known as chromosomes are used to encode candidate solution or individuals. From the user’s initial input, the algorithm creates a population of candidate solutions. The population of candidate solutions are then evaluated and checked if they fit or match the goal which the user inputted. If the candidates do not match the goal, the candidate solutions which are best fit are selected and modified through cross-over and mutations of strings. The evaluation process is then repeated with the new population. This artificial evolution is then continued until one of the candidate solutions match the criteria set by the user. Solutions are most commonly given in the form of binary.
Genetic algorithms in general are used for a variety of purposes. Such purposes include industrial design, scheduling, routing, and database mining. As is clear, genetic algorithms are applicable in a large number of fields and play an important role in todays society.