Genetic algorithms, which simulate a biological phenomenon, have also been applied to
query optimization. The algorithms start with an initial population, consisting of a random
set of strategies, each with its own cost. From these, pairs of strategies from the population are matched to generate offspring that inherit the characteristics of both parents,
although the children can be randomly changed in small ways (mutation). For the next
generation, the algorithm retains those parents/children with the least cost. The algorithm
ends when the entire population consists of copies of the same (optimal) strategy. The
interested reader is referred to Bennett et al. (1991).