verwiewhe goals of creating artificial intelligence and artificial life stem from the very beginnings of the computer age. The earliest computer scientists-Alan Turing, JohnVon Neuniann, Norbert Weiner, and others-were motivated in large part by visions of imbuing computer programs with intelligence, with the life-like ability to self-replicate, and with the adaptive capability to learn and to control their environments. These early pioneers of computer science were as much interested in biology and psychology as in electronics, and looked to natural systems as guiding metaphors for lion7 to achieve their visions. It should be no surprise, then, that from the earliest days, computers were applied not only to calculating missile trajectories and deciphering military codes, but also to modeling the brain, mimicking human learning, and simulating biological evolution. These biologically motivated computing activities have waxed and waned over the last 40 years, but in the last ten years they have all undergone a resurgence in the computation research community. The first has grown into the field of neural networks, the second into machine learning, and the third into what is now called "evolutionary computation," of which genetic algorithms (GAS) are the most prominent example.GAS were first described by John Holland in the 1960s and further developed by Holland and his students and colleagues at the University of Michigan in the 1960s and 1970s. Holland's goal was to understand the phenomenon of "adaptation" as it occurs in nature and to develop ways in which the mechanisms of natural adaptation might be imported into computer systems. Holland's 1975 book Adaptation in Natural andilrtificial Sysrerns [25] presented the GA as an abstraction of biological evolution and gave a theoretical framework for adaptation under the GA. Holland's GA is a method for moving from one population of "chromosomes" (e.g., strings of "bits" representing candidate solutions to a problem) to a new population, using "selection" together with the genetics-inspired operators of crossover, mutation, and inversion. Each chromosome consists of "genes" ( e g , bits), with each gene being an instance of a particular "allele" (e.g., 0 or 1). The selection operator chooses those chromosomes in the population that will be allowed to reproduce, with fitter chromosomes producing on average more offspring t h a n less fit ones. Crossover exchanges subparts of two chromosomes, r o LI gh 1 y mi mi c ki n g biological recombinati o n bet ween two single -ch r o mo s o m e ("haploid") organisms; mutation randomly changes the allele values of some locations in the chromosome; and inversion reverses the order of a contiguous section of the chromosome, thus rearranging the order in which genes are arrayed.
THE APPEAL 08: EWOLUFIQMWhy use evolution as an inspiration for solving computational problems? The mechanisms of evolution seem well-suited for some of the most pressing computational problems in many fields. Many computational problems involve searchin...