The entire research area of Genetic Algorithms, as well as that of Evolutionary Computing, was inspired by Darwin's theory of natural selection and survival of the fittest. Genetic algorithms are problem-solving programs that try to mimic the way large populations solve problems over a long period of time, through processes such as reproduction, mutation, and natural selection. To emulate the natural phenomenon of evolution, a genetic algorithm program creates a population of candidate solutions to a particular problem, and through a process of random selection and variation, each generation of the program improves upon the quality of the solution. Consequently, genetic algorithms promote the evolution of solutions by using genetically based processes. Unlike natural evolution, the program is usually able to generate and evaluate thousands of generations in seconds.