In nature, organisms and species coexist in an ecosystem; each species has its own place or niche in the system. The environment contains a limited number and amount of resources, and the various species must compete for access to those resources. Through these interactions, species grow and change, each influencing the others' evolutionary development. This process of reciprocal adaptation is known as coevolution.
In evolutionary computation, the term ``coevolution'' has been used to describe any iterated adaptation involving ``arms races'', either between learning species or between a learner and its learning environment. Examples of coevolutionary learning include the pioneering work by Hillis on sorting networks , Backgammon learning [131,108,107], predator/prey games [114,101,25] and spatial distribution problems [75,74]. The present work extends the coevolution paradigm to include the case where the changing environment results from the adaptive behavior of a heterogeneous population of human beings.