Evolutionary Programming
Evolutionary programming was invented by Dr. Lawrence J. Fogel while serving at the National Science Foundation in 1960. He had been tasked to provide a report to the U.S. Congress on the worth of investing in basic research. One of the topics of consideration was Artificial Intelligence.Dr. Fogel crafted a series of experiments in which finite state machines (FSMs) represented individual organisms in a population of problem solvers. These graphical models are used to describe the behavior or computer software and hardware, which is why he termed his approach "Evolutionary Programming". The experimental procedure was as follows. A population of FSMs is exposed to the environment – that is, the sequence of symbols that has been observed up to the current time. For each parent machine, as each input symbol is presented to the machine, the corresponding output symbol is compared with the next input symbol. The worth of this prediction is then measured with respect to the payoff function (e.g., all-none, squared error). After the last prediction is made, a function of the payoff for the sequence of symbols (e.g., average payoff per symbol) indicates the fitness of the machine or program. Offspring machines are created by randomly mutating the parents and are scored in a similar manner. Those machines that provide the greatest payoff are retained to become parents of the next generation, and the process iterates. When new symbols are to be predicted, the best available machine serves as the basis for making such a prediction and the new observation is added to the available database. Fogel described this process as “evolutionary programming” in contrast to “heuristic programming.”
Last Updated on: Nov 28, 2024