Introduction to Genetic Algorithms

One of the central challenges of computer science is to get a computer to do what needs to be done, without telling it how to do it. Genetic Programming (GP) addresses this challenge by providing a method for automatically creating a working computer program from a high-level problem statement of the problem. Genetic Programming achieves this goal of automatic programming (also sometimes called program synthesis or program induction) by genetically breeding a population of computer programs using the principles of Darwinian natural selection and biologically inspired operations. The operations include reproduction, crossover (sexual recombination), mutation, and architecture-altering operations patterned after gene duplication and gene deletion in nature. For example, an element of a population might correspond to an arbitrary placement of eight queens on a chessboard, and the fitness function might count the number of queens that are not attacked by any other queens. Given an appropriate set of genetic operators by which an initial population of queen placements can spawn new collections of queen placements, a suitably designed system could solve the classic eight-queens problem.
GP's uniqueness comes from the fact that it manipulates populations of structured programs in contrast to much of the work in evolutionary computation in which population elements are represented using flat strings over some alphabet. In this chapter, the basic concepts, working, representations and applications of genetic programming have been dealt in detail.
Genetic programming (GP) is a domain independent, problem-solving approach in...