Evolutionary Programming (EP) is presented by L. J. Fogel [FOW66]. He initially studied this method to develop the artificial intelligence and succeeded in evolving a mathematical automaton that predicts a binary time series. Later, in the middle of 80’s, his son David Fogel further developed it to solve more general tasks including prediction problems, optimization, and machine learning [Fog95]. Since this approach modeled organic evolution at the level of evolving species, the original EP does not rely on any kind of recombination.
The representations used in evolutionary programming are typically tailored to the problem domain [SJBF93]. One representation commonly used is a fixed-length real-valued vector. The primary difference between evolutionary programming and the other approaches (GA, GP, and ES) is that no exchange of material between individuals in the population is made. Thus, only mutation operators are used. For real-valued vector representations, evolutionary programming is very similar to evolutionary strategies without recombination.
A typical selection method is to select all the individuals in the population to be the N parents, to mutate each parent to form N offspring, and to probabilistically select, based upon fitness, N survivors from the total 2N individuals to form the next generation.
In general, each parent generates an offspring by the Gaussian mutation and better individuals among parents and offspring are selected as parents of the next generation. EP has been applied successfully for the optimization of the real-valued functions [FA90] [FS94] and other practical problems [SS]. For more details see [BRS93].