Genetic programming is a computerized evolution of computer programs that perform a particular task using Darwinian natural selection.
The process begins with examples of how a particular set of inputs should react to produce a specific output. Then, beginning with a randomly generated set of computer programs, the genetic program conducts a tournament and measures how well each program performs the task. The winners of this tournament are then copied and replaced with new programs (their “children”) formed via crossover and mutation conducted on the original programs.
Additional tournaments are held to evolve better and better programs. The process is terminated when acceptable levels of accuracy, or other performance measures, are achieved.
Another important concept to this process is called parsimony pressure. Parsimony pressure is the process used to reduce the length of the instruction sets of evolved programs. Here’s the process: First, a random portion of tournaments is selected. The genetic program then determines if the fitness of the selected programs falls within a predefined threshold. If it is, then the shorter program is selected. In this way, the software finds the simplest solution much faster.