ABSTRACT

Evolutionary algorithms (EAs) constitute a loosely defined family of heuristic problem solving procedures—they are metaheuristics—that are inspired by Darwinian evolution in biology. The basic notion of an evolutionary algorithm is remarkably simple. A population of decisions is created and maintained throughout a run of the algorithm. Individuals in the population are assessed with regard to their performance on the objective at hand. Better performing individuals, said to have higher fitness, are more likely to remain in the population over time and to have their “descendants” present in the population over time. Descendants are formed by perturbing individuals in the population and, typically, exchanging information among them, through what are called genetic operators. Over time the constitution of the population changes evolves and typically better and better decisions are found to the objective at hand. Figure 12.1 outlines this process in high-level pseudocode.