Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Artif Intell Rev (2012) 38:41–54 DOI 10.1007/s10462-011-9246-6 On the origin of the evolutionary computation species influences of Darwin’s theories on computer science J. Ignacio Serrano · M. Dolores del Castillo Published online: 28 May 2011 © Springer Science+Business Media B.V. 2011 Abstract This paper presents a small sample of evidences of the direct and clear influence of the Darwin’s Theory of Evolution on the Computer Science field, putting the core seed of the well-known Evolutionary Computation and making Computer Science overcome some previous algorithmic limitations. The paper also shows how the more faithful to the Evolution Theory the algorithms, the better their performance and robustness, thus uncovering the crucial importance of the ideas collected in “On the Origin of Species” for the development of Computation and, indirectly through this, for the development of a great diversity of knowledge areas. Keywords Evolutionary computation · Genetic algorithms · Darwinism · Artificial life · Bio-inspiration 1 Introduction It can be said with no place for doubt that “On the Origin of Species” (Darwin 1979)1 by Charles Darwin is one of the most influential works on the development of culture and human civilization along history. In fact, the importance of the work is comparable to “On Liberty” by John Stuart Mill, “The Manifesto of the Communist Party” by Karl Marx and Friedrich Engels or “Relativity” by Albert Einstein, according to the list of “100 Most Influential Books Ever Written” created by the man of letters Seymour-Smith (1998). Furthermore, the 1 Note that this reference is just one among the many later editions from the original work by Charles Darwin, but it is the one used to reference chapters within this paper. J. I. Serrano (B) · M. D. del Castillo Consejo Superior de Investigaciones Científicas (CSIC), Ctra. Campo Real km 0.200 - La Poveda, Arganda del Rey, 28500, Spain e-mail: [email protected] M. D. del Castillo e-mail: [email protected] 123 42 J. I. Serrano, M. D. del Castillo effects that the Darwin’s ideas produced (and still do) in some religious concepts place the work at the influential level of the “Holly Bible” or “Coran”. Since the release of the Darwin’s Theory of Evolution many fields of knowledge have suffered a change of paradigm (or a big step ahead, if preferred) due to the consequences extracted from Darwin’s view. The direct influence of a work like “On the Origin of Species” (Darwin 1979) on fields like Biology, Anthropology, Geology, History or even Religion (to mention just a few) (Applebaum 2000) might seem obvious. However, Darwin’s ideas soaked through other not so evident disciplines such as Politics and Economy (Laurent and (Eds.) 2001), Sociology (Ellwood 1909), Psychology (Rowland 1909), Philosophy (Dewey 1965) or Ethics (Hayden 1909). But, who had thought that Computer Science could also be affected by the tentacles (in the positive sense) of the Darwin’s Theory of Evolution? The fact is that the ideas collected in Darwin’s works put the seed to go beyond the previous limitations in Computer Science, and opened a new branch which gave rise to what today is well-known as Evolutionary Computation (EC) (DeJong 2006), an emerging, promising and widely extended research field. The paper is organized as follows: in the next section a little historical survey of the Evolutionary Computation is presented, together with the early influences of the Theory of Evolution. Section 3 introduces the coarse-grained theoretical contributions of Darwin’s theory to Computer Science. Section 4 presents the fine-grained evolutionary aspects of canonical Genetic Algorithms (GAs, the central core of the Evolutionary Computation field), making it clear the computational analogy and the faithful inspiration. Section 5 describes other points of the Theory of Evolution that have being recently incorporated to the Evolutionary Algorithms (EAs), and how these new contributions not only place them closer to theory but also improve their performance. Section 6 enumerates some of the domains where EC has been successfully applied, putting in relevance the indirect influence of the Theory of Evolution on the development of a high number of knowledge areas. Finally, Section 7 sketches the feedback from Computer Science to the evolutionary field and some concluding remarks. 2 A pinch of history It can be stated that the evolutionary theory of Darwin have joined the computation field since the very beginning. The view of the evolution as a computational process took several forms in the first half of the XX century. Likely, the first incursion happened around 1930. The geneticist Wright (1932), pioneer (together with Fisher) of the methods for the computation of the gene frequency distribution among populations as a result of the Darwin’s theory of evolution, used an evolutionary system to explore a multi-peaked fitness landscape and dynamically form demes (clusters) around the best niches (peaks). In this sense, Wright viewed the evolution as an optimization process, which is inherently a goal of computation. Bremermann shared and applied this same idea some decades later from a rather computational point of view (Bremermann 1962). Next, evolutionary systems were considered as complex, adaptive systems that can change the responses and dynamically interact with a non-static environment. This idea immediately evoked the concept of adaptive controller, and gave an alternative to the previous algorithms for the automation of feedback control processes. Friedman put these ideas in practice with the implementation of algorithms for evolving control circuits in robots under the nervous system analogy (Friedman 1956). 123 On the origin of the evolutionary computation species influences 43 In parallel, the idea of the autonomous learning machines, since the beginning of Computer Science and the first breaths of Artificial Intelligence, has encouraged the attempts to the auto-programming of computers. The theory of Natural Selection inspired the automation of this process in the works of Friedberg (1958), Friedberg et al. (1959), who designed and implemented a machine capable of evolve sets of machine language instructions in order to automatically obtain the best correct program. This was the starting point to what is known today as Evolutionary Programming or Genetic Programming Langdon and Poli (2002), Poli et al. (2008), one of the big Evolutionary Computation paradigms currently accepted. Although John Holland is widely considered as the father of the Genetic Algorithms, it was the biologist Alexander S. Fraser who sketched the idea, through the evolution of biological systems in a digital computer (Fraser 1957a,b,c). These works were the inspiration of the GAs. Fraser was likely the first in talking about a binary representation of individuals (first outline of genetic codification), a probabilistic reproduction crossover and a mechanism of reproductive selection. Due to the increasing accessibility and knowledge about computers, the 60’s were a profitable time for the fusion of the evolutionary ideas and machines. By that time, Holland created a function to score the adaptation of an individual interacting with the environment along time. This is known as fitness function. Holland put the computational bases of the artificial adaptation (Holland 1962, 1975) and evolution and opened the line of GAs. From this point, Fogel made a great advance from the work of Friedberg on Evolutionary Programming (Fogel et al. 1966; Fogel 1999) by the evolution of Finite State Automata (FSA), and Rechenberg also significantly contributed to the evolution on difficult optimization problems with real valued parameters (Rechenberg 1973). All these authors focused on the computational aspects of the Darwin’s theory of evolution and they inspired in observations of nature rather than faithfully reproduce the hidden and complex biological aspects of it. Therefore, all the approaches were approximated models. For instance, the populations of individuals were considered fixed in size, the crossover was random and the environments were static (to mention a few simplifications). These details were the key points in the 1970’s. Researchers tried to characterize the behavior of the evolutionary artificial systems by the implementation simplifications. This characterization process splits the field into different paradigms: Evolutionary Programming (EP), Evolutionary Strategies (ES) and Genetic Algorithms. Later, besides the adaptation to a diverse number of applications, the interest focused on the exploitation of the inner parallelism of GAs due to the creation of the first parallel machines (this is still an open line). Finally, the transference of ideas and techniques among the different paradigms led the field to unify under the umbrella of the Evolutionary Computation, establishing as a solid scientific discipline within Computer Science and Artificial Intelligence until nowadays. 3 Contributions to computational theory As said before, Darwin’s theory of evolution was the foundation and origin of the EC field, which is definitely a core part of the modern Computer Science. However, the application of the Natural Selection theory to the computational algorithms produced other indirect effects in theoretical terms. Firstly, the main great contribution of the evolutionary approach to computational theory can be extracted from an intrinsic feature, the inner parallelism (Holland 1975). This property allows algorithms to explore the solution space by several paths at the same time (analogous to the parallel evolution of different variations within species). This implicit par- 123 44 J. I. Serrano, M. D. del Castillo allelism inspired and motivated the development of the parallel machines (at hardware level), in which evolutionary algorithms fit perfectly. Secondly, evolutionary algorithms are not deterministic2 , i.e. they do not necessarily produce the same output from the same input. In theoretical computational terms, a nondeterministic algorithm is unpredictable and therefore not very useful perhaps. Evolutionary algorithms (together with heuristic-based algorithms) have shown that non-determinism can be really useful and applicable, what encouraged the consideration and development of this feature for the computer algorithms. This non-deterministic quality is accompanied by “ignorance” about the problem that the algorithms intend to solve. This is the difference with heuristic-based methods, where the heuristics are a kind of knowledge about the problem. Contrary to what might be thought, the lack of knowledge about the problem is an advantage for the evolutionary algorithms (Goldberg 1989), because they do not depend on the availability of any information and they are not restricted from the beginning by any a priori. They are “blind watchmakers” (Dawkins 1996) in the same way as Evolution is, which has no plan or preconceived idea but just the mechanisms of the four physical forces (gravity, electromagnetism, strong and weak nuclear forces) and the target of achieving individuals perfectly adapted to their environment. Due to this intrinsic parallelism, non-auxiliary information and probabilistic transition rules, it can be stated that the evolutionary approach gave robustness (efficiency and efficacy of solutions) to the previous search and optimization algorithms. Moreover, it extends the capability and scalability of the algorithms, allowing them to deal with complex (non-linear) and large problems, and making feasible the exploration of multiple paths, thus avoiding the local maxima (i.e. relatively well adapted individuals but not the best adapted). From a slightly different point of view, the Darwin’s Theory of Evolution also contributed to Computational Theory in the first approaches of Artificial Intelligence. The view of Cannon (1932) first and Turing (1950) later of the evolution as a learning process, during which the individuals “learns” to adapt and survive, together with the implementation of the evolutionary ideas on computers put the first seeds for the appearance and development of the Machine Learning field. 4 The analogy At this point, a reader non-familiarized with EC might not know yet where is the Darwinist part of the GAs. Darwin stated in the last chapter of “On the Origin of Species” (Darwin 1979) that the laws governing the life are: growth with reproduction, inheritance, variability due to the direct or indirect external conditions, ratio of increase that leads to, struggle for life, natural selection, divergence of character and the extinction of the weakest forms. Accordingly, the Neo-Darwinism (Darwin+Weismann+Mendel) affirms that the life can be explained by four statistical processes that act on and within the populations and species (Hoffman 1989): reproduction, mutation, competition and selection. After superficially reviewing these statements let us shift now to the simplest structure of a canonical Genetic Algorithm: 1. 2. 3. 4. Generate an initial population of individuals. Score each individual according to its fitness(adaptation) to the environment. Select some individuals for reproduction. Mutate some of the selected individuals. 2 If mutation is considered a random procedure, Darwin’s view of Evolution is also non-deterministic. 123 On the origin of the evolutionary computation species influences 45 5. Cross the selected individuals and produce new offspring sharing combined features from the parents (new generation). 6. Replace (kill) individuals of the last generation with new ones. 7. Go to 2 and repeat until an stop criterion is reached. As can be observed, the analogy now emerges from the algorithm. Reproduction is at steps number 3 and 5, inheritance is at step 5, variability at step 4, the ratio of increase is also collected at step 5, struggle for life and competition relies on steps 3 and 6, Natural Selection is comprised among steps 2, 3 and 6, and the extinction is clearly reflected at step 6. The point number 7 just means the course of evolution along time. Under this view, the GAs might look just a nave simulation of the evolution process. However, if the environment is considered as a problem to solve and the individuals are considered as tentative solutions to that problem, the computational and practical utility of the algorithm emerges by itself. Now that the evolutionary inspiration is explicit, the reader might still be wondering why a GA is genetic. The genetic part of the paradigm is contained in another design issue that has been omitted until this section: the representation of the individual’s structure, that is, the coding of the problem’s parameter set over some finite alphabet. In a canonical GA (but not in many other approaches), the structure of a solution for a concrete problem is codified in a “similar” way as genes codify living organisms, and a part of these genes are interchanged between the parents to generate new offspring in the reproduction step. This is the biological/genetic analogy. Of course, there are a great number of variations of this canonical scheme nowadays. They are due to different implementation choices, application scopes, or EC paradigms. Nevertheless, almost all the approaches are analogies for the variation under domestication (Darwin 1979, Chapter 1), since the algorithm designer controls the environment, and selects and accumulates successive variations with profitable features for his/her interest (through the algorithm design), with the difference that all the structure of individuals is visible for him/her. Recently, several approaches closer to variation under Nature (Darwin 1979, Chapter 2) have started appearing. Some of them are mentioned further below. There exist a lot of implementation choices for the different steps in the canonical algorithm that are also influenced by the evolutionary theory. These can be grouped in seven major design aspects: initialization (i.e. the construction and size of the first generation of individuals), scoring (i.e. the fitness function to score the adaptation of the individuals), selection, crossover operator to produce new offspring from the selected parents, mutation operator, replacement (i.e. the struggle and natural selection to decide who lives and who dies in order to conform the next generation), and stop (or termination) criterion to decide when the individuals have reached an acceptable target fitness. The theoretical influences of the Darwin’s view on these issues are discussed next. 4.1 Initialization The step of generating a starting population of individuals could be considered like an artifact. What is wanted to evolve is a species composed of solutions for a problem, so the algorithm must start from a set of individuals belonging to that species. However, the correspondence with evolutionary theory is found in the way by which this initial population is generated. Generally speaking, there exist two methods for generating the initial population of individuals. The trivial one is by a random procedure. The other choice is the semi-automatic selection of initial individuals. In both cases, individuals must fulfill the features and structure of the corresponding species and therefore there exist rules to create them. However, 123 46 J. I. Serrano, M. D. del Castillo the random generation rather corresponds to a “wild” evolution under Nature, in Darwin’s terms, while the other semi-automatic relates to an evolution under domestication, because the designer selects the starting herd. The other aspect concerning initialization is the population size. Population size can be static (under domestication) or dynamic (under Nature). Whichever the option, the selected size is usually high because it means high variation and, according the Darwin’s statement, a greater variation is likely to produce a better adaptation. Nonetheless, the generation of the initial population contradicts the Darwin’s argument that human breeders cannot produce variability but just expose individuals to new conditions of life, and then Nature acts and produces variability. This is the main reason why the initialization step may be considered as an artifact, as stated at the beginning of this subsection. 4.2 Scoring The step of scoring is determined by the design of fitness function, i.e. the expression that quantifies the level of adaptation of each individual to the environment or, in computational terms, the performance of each solution when solving the target problem. Generally, the fitness function is either an utility function or a cost function. In the first case, a good individual maximizes the function as Natural Selection tends to maximize the adaptation of the individuals. In the other case, a good individual minimizes the function. Anyway, this fitness function will decide the reproduction and survival capacity of the individuals and therefore it can be viewed as a measure of perpetuation. Once again, the step of the design of the fitness function clearly places the GAs in a paradigm of variation under domestication because this function allows the designer to select individuals with interesting features. 4.3 Selection In Darwin’s terms, this step is related to sexual selection rather than Natural Selection. According to Darwin’s theory, the strongest dominant individuals have a higher probability for reproduction. ’Strong’ means here not just better adapted but rather more capable of beating other individuals when fighting for reproduction. In the case of GAs, the same measure, the fitness function, is used both to quantify the level of adaptation and the strength for the struggle for reproduction. Several selection mechanisms have been proposed although the most popular and used are basically the following four. The roulette selection method gives each individual a chance for reproduction proportional to its fitness value. So this mechanism fits very well with the Darwin’s ideas. However, if the fitness values differences are significant, the best individuals will be always selected, closing the path to tentative better solutions by the reproduction of some worse individuals. The mechanism of tournament selection avoids the latter problem by randomly selecting a certain number of individuals among the entire population in an iterative way, thus creating subsets. The best individuals of each subset are the ones selected for reproduction. This latter method adds selective pressure over the roulette selection. Another popular mechanism is the top percent selection. By this method, individuals are randomly selected (with equal probability) among the top K percent of the population. This method also fits with the idea of the survival of the strongest, although it does not overvalue the fitness. Finally, the other most used method stands for the pure random selection so that all the individuals have the same probability for reproduction. This latter mechanism gets away from the evolutionary theory but it has shown to be useful in certain problems. 123 On the origin of the evolutionary computation species influences 47 4.4 Crossover This step of the GAs’ design is more inspired in biology and genetics of haploid organisms than in evolution theory. The crossover mechanism determines the way by which the offspring is created from the selected parents. Given that the individuals are represented as a string, the most common crossover operator interchanges some segments of the two parents’ strings to produce two offspring. There exist different versions of the operator that interchanges upper or lower segments of the parents, or intermediate sequences of the parents. In some of them the sequences are randomly selected. In other approaches, the sequence that each parent transfers to the offspring is selected according to their fitness value. Another aspect concerning the crossover step is the number of offspring produced from each parent. Generally, this decision is characteristic of the different EC paradigms. For instance, in the Evolutionary Programming (EP) algorithm each parent produces just one offspring. However, in the Evolutionary Strategies algorithm each parent generates h offspring, and in the GAs two parents produces two offspring, as described before. Nonetheless, due to its randomness and blindness, the crossover method mentioned does not guarantee the preservation of the features previously useful, contrary to what Darwin thought (Darwin 1979, Chapter 2). 4.5 Mutation The mutation operator corresponds to the Darwin’s argument that the reproductive system is susceptible to changes in the conditions of life, and its functional alteration produces the plastic condition of the offspring, giving the variation the chance to appear (Darwin 1979, Chapter 5). Thus, the mutation operator slightly changes some part of the offspring string. Most of the versions of this operator differ in the way of selecting the part to change and the quantity of the change to apply to the selected part. However, the conditions of life are not here the causes that alter the reproductive system to induce variation but the probability of application of the operator, which is in hands of the designer. Note also that mutation is applied directly on the offspring and not on the reproductive system of the parents. 4.6 Replacement In this case, replacement means Natural Selection, i.e. the selection of the individuals that will survive, at least until the next generation. According to Darwin, Natural Selection acts in populations when available resources are not enough, and then Struggle for Life comes into play. This aspect is modeled in GAs by establishing a maximum number of individuals in the population. Since the population tends to increase in GAs (sometimes in geometric progression, as Darwin stated), some individuals must be removed (i.e. they die) if the total number exceeds the imposed limit. Again, there are different ways of implementing this kind of selection. The most Darwinist method is preserving the N individuals with best fitness, so the most adapted ones survive. Another option involves preserving the parents plus their best single offspring. This allows the parents to survive for two generations at least, giving the process a little bit more of realism and creating a competition among offspring. These two latter approaches are called overlapping-generation models (DeJong 2006) and they tend to amplify the survival selection pressure. A third common option is to entirely replace the parents by their offspring (non-overlapping-generation model). This latter mechanism keeps on the population size stable over time, but it does not take into account the Struggle for Life. 123 48 J. I. Serrano, M. D. del Castillo It is worth mentioning here a popular and commonly used artifact called elitism. When elitism is applied, the best individual of the population is faithfully copied to the next generation. Of course, this does not happen in Nature but it assures the preservation of a good solution/individual until the end of the algorithm. 4.7 Termination This step is intended to determine the criterion to stop evolving the population. There is no theoretical claim about this matter because evolution and Natural Selection will keep running while life exists. However, there exist different popular criteria. Perhaps, the closest to Darwin’s theory criterion is stabilization of fitness. By this means, the algorithm stops when the fitness of the individuals in the last N populations has not changed significantly. In this sense, this stabilization means that the current population has reached a level of adaptation enough to keep the balance with the environment. Other typical implementation options are related to the Variation under Domestication view. For instance, the algorithm stops when either the best individual’s fitness, a certain number of generation or a computational cost ratio has been reached. All these latter criteria are decided by the algorithm designer. 5 Other evolutionary add-ons Due to the increment of the popularity and the numbers of works on EC, more and more aspects of the evolutionary theory have been included in the algorithms. Some of them correspond to points not considered yet. Others try to remove simplifications previously adopted by the designers, which limited the capabilities of the algorithms, thus proving that the more faithful the algorithms to evolution theory the better their performance. The first point that deserves to be mentioned is about the environment. It has been told, from the very beginning, that one of the best features of GAs is that they can get adapted individuals in a changeable environment. However, most of the implementations put the changeability away and define an absolutely static environment by a fixed fitness function. From the beginning of the current decade, more interest has been put in the immersion of EC algorithms in dynamic contexts (Morrison and DeJong 1999; Morrison 2004). In this sense, some types of non-stationary environments have been defined. Thus, there exists a category of drifting contexts that do not significantly change their topology. A second category corresponds to environments that dynamically suffer great morphological changes. A third one refers to contexts that show cyclic patterns of change and, finally, a fourth category describes environments that can suffer chaotic and discontinuous variations. Of course, this classification is artificial, since Darwin did not categorize the environments in any way, but it has been established in order to adapt traditional EC algorithms to the different specific challenges that each type of environment presents. Consequently, the type of change influences some aspects to be considered by the designers at the time to adapt the algorithms. One of these aspects is the rate of change, i.e. the time that the change consumes. Another important point is the diversity of the population. In this case, the dynamics of the context determine the maintenance of the diversity. In this sense, there exist two options: keeping the diversity more o less constant (Spears 1994) or just producing diversity on demand (Cobb and Grefenstette 1993; Bäck 1998). The profit of each option depends on the environmental rate of change (DeJong 2006). Another important theoretical topic is the inner parallelism of the EC algorithms. In order to exploit this parallelism the algorithms must be adapted to parallel hardware architectures. 123 On the origin of the evolutionary computation species influences 49 If it is intended more than just speeding up the algorithm (simply splitting the GA processing into the different processors), this adaptation implies changes in the execution semantic of it. These changes lead to the well known island models that execute different algorithms in parallel for populations living in different islands (Skolicki and DeJong 2004). The interesting point is that there exists migration of individuals between islands. Consequently, the designers have to question some points already discussed by Darwin about geographical distribution and migration (Darwin 1979, Chapters 11 and 12), such as the sources, destinations and frequencies of migrations and the selection of individuals to migrate (Cantú-Paz 2001; Skolicki and DeJong 2004). The island model is considered as coarse-grained parallelism. Besides, GAs have been also applied to fine-grained parallelism, in which single individual populations are evolved in parallel. The most popular approaches are called cellular architectures (Sarma 1998), composed of an array of interconnected cells. In this case, the single cells are individually evolved. The individuals of the EC algorithms are usually static forms. However, living beings are active organism and show some kind of behavior. This aspect has been also considered in the design of the algorithms by the inclusion of individuals that can produce behavior (produce an output from an input)3 . The advantage of this inclusion is that the individuals can learn to modify their behavior. However, the difficulties focus on the mapping of the individual representation to behavior, and the implications that the operators have on it. Another of the most controversial simplifications of the standard evolutionary algorithms concerns to mating. Ordinary algorithms implements random mating, which causes a quick lost of diversity in the population. Although this effect might be profitable if a fast convergence is desired, the fact is that it negatively affects dynamic robustness. Several approaches of non-random mating have been proposed. As representative, it must be cited the distance bias on mate selection (Sarma 1998), the multi-population island models in which the reproduction is only carried out among members of the same island (Whitley et al. 1999) and finally, speciation, i.e. the definition of species by a set of characteristic tags (Spears 1994). In this latter approach, the reproduction among individuals within the same species is the only allowed. In the Evolutionary Algorithms (any kind of the EC algorithms), the individuals do not change in the sense that they do not suffer variations during their lives (they do not grow). The representations of the individuals are phenotypic or they can be directly mapped into genotypic representations, thus limiting the complexity the algorithms are capable to deal with DeJong (2006). According Darwin, Evolution operates at the genotypic level and the phenotypic consequences appear by development and maturation (Darwin 1979, Chapter 13). Consequently, some generative representation formalisms, such as Neural Networks, and mechanisms of morphogenesis have been proposed for the GAs (Stanley 2004). Among these approaches, it is worth to mention the idea of an interpreter that can transform the genotypic representation into the phenotypic one (Hornby 2003). It is also remarkable the generative representations of Cellular Automata Systems (Kicinger et al. 2004). The two latter approaches generate the desired phenotypes from a set of rules and an initial state. By evolving them, the tractable complexity of the individuals significantly increases. To conclude this little review of evolutionary add-ons, it cannot be kept out the consideration of Lamarckian aspects in the Evolutionary Algorithms. Although the biological intersection between Darwin’s and Lamarck’s theories is small (perhaps just the inheritance 3 Evolutionary Programming is the representative paradigm of this consideration, since programs are indi- viduals that behave in some manner. However there exist other approaches. 123 50 J. I. Serrano, M. D. del Castillo of the effects of the structure disuse, Darwin 1979, Chapter 5), it is interesting to take the latter into account for the algorithms in terms of Cultural Evolution, where Lamarck’s ideas make sense. Consequently, some approaches, where the individuals can learn something from the environment and transfer this new knowledge to the offspring, have been proposed. The “memetic algorithms” (for ’memes’) Ong et al. 2006 and the “cultural algorithms” Reynolds 1999 are among the most popular. Although only some of the most developed points have been cited here, there is a great number of other evolutionary theoretical considerations in GAs. They all serve to prove that Darwin’s arguments are still influencing Computation, and this closer inspiration is leading the EC field not just to faithfully simulate Evolution, but also to largely extend the performance and capabilities of the algorithms. 6 Indirect achievements: applications The contribution of the Natural Selection Theory to computation has produced indirect effects other than the theoretical issues described above and the development of EC. They are mainly related to the achievements of Evolutionary Algorithms in different application fields. In this respect, the Evolutionary Theory has allowed computers (by GAs) to be applied in a vast number of complex problems of diverse nature. As a consequence, the use of these algorithms has made the solution of such complex problems feasible, thus contributing to the development of the areas of knowledge involved. The slight review of EC applications next presented puts in relevance the importance of the influences of Darwin on Computation. Let us begin with the Engineering application field, because it is likely the area in which EC has been used the most. For instance, GAs has been applied to evolve wire antennas which solved complex reception problems (Altshuler and Linden 1977). They were also applied in the design of windmills for the production of electrical energy (Benini and Toffolo 2002), obtaining solutions competitive with commercial designs. Evolutionary Algorithms have been used to optimize the features of X-ray in radiotherapy, thus incrementing the protection of the healthy organs during the exploration (Haas et al. 1997). Within this engineering field, GAs have been shown specially profitable in the motor area, for obtaining optimum control of the Anti-lock Breaking System (ABS) (Lee and Zak 2002), for the improvement of the efficiency of the diesel engines (Schechter 2000) and other types of industrial devices (Ashley 1992). Besides, Evolutionary Algorithms have had a wide use on the aerospace field, from the design of wings of supersonic aircrafts (Sasaki et al. 2001) to the placement of satellites in orbit for minimizing the effects of power cuts (Williams et al. 2001). Related to the material engineering, GAs have contributed to the design of new materials, such as polymers that conduct electricity (Giro et al. 2002) or multilayer optical sheathings (Weismann et al. 1998), which overcame some previous industrial and technological limitations. Evolutionary Computation has been also helpful for basic sciences, such as Acoustics, Astrophysics, Chemistry, Geophysics, Mathematics or Biology (among many others). For instance, GAs have been used to design a concert room with optimum acoustical features (Sato et al. 2002). They have also achieved acceptable solutions for the production of the rotation curve of a galaxy or the determination of the pulse frequency of a variable star (Charbonneau 1995). They have been also used to solve partial derivative equations (Haupt and Haupt 1998) and localize the hypocenter of an earthquake (Sambridge and Gallagher 1993). The design of new molecules from scratch (Glen and Payne 1995) or the identification of the trans-membrane domain of a protein (Koza et al. 1999) have been successful applications of the evolutionary algorithms too. 123 On the origin of the evolutionary computation species influences 51 The contributions of EC to Economy are noteworthy. It can be stated that these contributions started in the Game Theory. Evolutionary algorithms were applied to solve game problems such as the “prisoner problem” (Axelrod 1984) or “the ultimatum game” (Duffy and Feltovich 1999). Since Economy (and particularly the stock market) is a really dynamic environment, GAs are absolutely suitable to solve problems in this domain. Thus, EC has been largely used to simulate artificial market agents (Arifovic 2001; Fogel et al. 2002) as well as to solve theoretical matters of the Financial Engineering, such as Econometry (Koza 1992), Commercial Strategies (Pereira 2002) or the volatility of price selection (Keber 2002) or stock selection in extreme environments (Yan and Clark 2007). The results have been so satisfactory that EC has been applied even for the forecasting of financial systems (Li 2006). As a kind of feedback, Evolutionary Algorithms have also helped to solve problems of algorithmic nature. For instance, they have been used to efficiently sort a list (a typical task in Computer Science) (Koza et al. 1999), to evolve a complex pattern recognition system (Rizki et al. 2002), to optimize fuzzy membership in fuzzy control systems (Castillo et al. 1993) or to automatically assign categories to documents in Natural Language (Serrano and del Castillo 2007). The application to path finding and time scheduling is really wide too. GAs have been used in the calculation of optimum paths in telecommunication networks (He and Mort 2000) and in the construction of track maps for autonomous vehicles (Serrano et al. 2005). They have been also applied, for example, in the generation of programs for manufacturing lines (Jensen 2003), in the design of the event schedule of the Paralympic Games (1992) (Naik 1996) and in the scheduling of landings in London Heathrow airport (Beasley et al. 2001). Evolutionary Computation has been also applied to other domains such as army, for evolving tactics in military battles (Kewley and Embrechts 2002), laws, for the assistance in the identification and description of criminals by witnesses (Naik 1996), and even art, for automatically creating either graphical or musical artwork (Todd and Latham 1992). This small sample of applications shows the importance of the Darwin’s Theory of Evolution (through the EC) for a vast number of areas of knowledge. Consequently, the inspiration on Darwin has lead computer algorithms to be seriously taken into account as an opportunity to go a step ahead in the development of any science. 7 Conclusions As claimed along this paper, the ideas contained in “On the Origins of Species” has greatly contributed to Computer Science, being the core seed of the Evolutionary Computation as well as helping to overcome some previous algorithmic limitations. Besides, the successful application of EC to a wide range of domains shows an indirect influence of the evolutionary theory on all the fields to which the application domains belong. For this reason, it can be stated that the contributions of the Darwin’s Theory of Evolution to Computation are among the most important ones for the current development of the society. By this time, Computer Science is starting thanking the Evolutionary Theory with some feedback contributions. On one hand, the computational models of Evolution are helping to develop new evolutionary ideas and concepts, as well as to assess new hypothesis (Banzhaf and Eeckman 1995). On the other hand, EC is being showed as a new source of arguments against Creationism, which has also criticized GAs mainly through Dembski (2002) and Batten (2008). In certain sense, these critics constitute one more proof to show that EC, and therefore Computer Science, is faithfully impregnated with the Evolution Theory. 123 52 J. I. Serrano, M. D. del Castillo References Altshuler E, Linden D (1977) Design of a wire antenna using a genetic algorithm. J Electron Def 20(7):50–52 Applebaum P (2000) Darwin. Norton, W. W. & Company, New York Arifovic J (2001) Evolutionary dynamics of currency substitution. J Econ Dyn Control 25:395–417 Ashley S (1992) Engineous explores the design space. Mechanical Engineering, pp 49–52 Axelrod R (1984) The evolution of cooperation. Basic Books, New York Bäck T (1998) On the behavior of evolutionary algorithms in dynamic fitness landscapes. In: Proceedings of IEEE international conference on evolutionary computation, IEEE Press, pp 446–451 Banzhaf W, Eeckman FH (1995) Evolution and biocomputation, Lecture notes on computer science, vol 899. Springer, Berlin Batten D (2008) Genetic algorithms—do they show that evolution works? Available via http:// creationontheweb.com/content/view/2431. Accessed 12 Dec 2008 Beasley JE, Sonander J, Havelock P (2001) Scheduling aircraft landings at london heathrow using a population heuristic. J Oper Res Soc 52(5):483–493 Benini E, Toffolo A (2002) Optimal design of horizontal-axis wind turbines using blade-element theory and evolutionary computation. J Sol Energy Eng 124(4):357–363 Bremermann J (1962) Optimization through evolution and recombination. Spartan Books, Washinton D.C. 93–106 Cannon W (1932) The wisdom of the body. Norton and Company, New York Cantú-Paz E (2001) Migration policies, selection pressure, and parallel evolutionary algorithms. J Heuristics 7(4):311–334 Castillo MDD, Gasós J, García-Alegre M (1993) Genetic processing of the sensorial information. Sens Actuators A 37-38:255–259 Charbonneau P (1995) Genetic algorithms in astronomy and astrophysics. Astrophys J Suppl Ser 101:309–334 Cobb H, Grefenstette J (1993) Genetic algorithms for tracking changing environments. In: Proceedings of the fifth international conference on genetic algorithms. Morgan Kaufman, San Francisco, pp 523–530 Darwin CR (1979) The origin of species, reprint of the 1976 issue of the 1968 edition published by penguin books edn. Gramercy Books, USA Dawkins R (1996) The blind watchmaker: why the evidence of evolution reveals a universe without design. W.W. Norton, New York DeJong KA (2006) Evolutionary computation: a unified approach. MIT Press, Cambridge, MA Dembski W (2002) No free lunch: why specified complexity cannot be purchased without intelligence. Rowman & Littlefield, Lanham, Maryland Dewey J (1965) The influence of Darwin on philosophy: and other essays in contemporary thought. H. Holt and Company, Bloomintong Duffy J, Feltovich N (1999) Observation of others affect learning in strategic environments? an experimental study. Int J Game Theory 28:131–152 Ellwood CA (1909) The influence of darwin on sociology. Psychol Rev 16:188–194 Fogel DB, Chellapilla K, Angeline P (2002) Evolutionary computation and economic models: sensitivity and unintended consequences. Physica-Verlag, New York 245–269 Fogel LJ (1999) Artificial intelligence through simulated evolution: forty years of evolutionary programming. John Wiley & Sons, New York Fogel LJ, Owens AJ, Walsh MJ (1966) Artificial intelligence through simulated evolution. Wiley, Chichester, WS, UK Fraser AS (1957) Simulation of genetic systems by automatic digital computers i: introduction. Aust J Biol Sci 10:484–491 Fraser AS (1957) Simulation of genetic systems by automatic digital computers ii: Effects of linkage on rates of advance under selection. Aust J Biol Sci 10:492–499 Fraser AS (1957) Simulation of genetic systems by automatic digital computers vi: epistasis. Aust J Biol Sci 13:150–162 Friedberg RM (1958) A learning machine: Part i. IBM J Res Dev 2(1):2–13 Friedberg RM, Dunham B, North JH (1959) A learning machine: part ii. IBM J Res Dev 3(3):282–287 Friedman G (1956) Select feedback computers for engineering synthesis and nervous system analogy. Master’s thesis, UCLA, Los Angeles Giro R, Cyrillo M, Galvão DS (2002) Designing conducting polymers using genetic algorithms. Chem Phys Lett 366(1–2):170–175 Glen RC, Payne AWR (1995) A genetic algorithm for the automated generation of molecules within constraints. J Comput Aided Mol Des 9:181–202 123 On the origin of the evolutionary computation species influences 53 Goldberg D (1989) Genetic algorithms in search, optimization, and machine learning. Addison Wesley, Reading Haas OCL, Bumham KJ, Mills JA (1997) On improving physical selectivity in the treatment of cancer: A systems modelling and optimisation approach. Control Eng Pract 5(12):1739–1745 Haupt R, Haupt SE (1998) Practical genetic algorithms. Wiley, New York Hayden J (1909) Darwin and evolutionary ethics. Psychol Rev 16:195–206 Hoffman A (1989) Arguments on evolution: a paleontologist’s perspective. Oxford University Press, New York Holland JH (1962) Outline for a logical theory of adaptive systems. J ACM 9(3):279–314 Holland JH (1975) Adaptation in natural and artificial systems. The University of Michigan Press, Ann Arbor Hornby G (2003) Generative representations for evolving families of designs. In: Proceedings of Genetic and Evolutionary Computation Conference 2003. Springer, Berlin, pp 1678–1689 Jensen M (2003) Generating robust and flexible job shop schedules using genetic algorithms. IEEE Trans Evol Comput 7(3):275–288 Keber C (2002) Evolutionary computation in option pricing: determining implied volatilities based on american put options. Physica-Verlag, New York 399–415 Kewley R, Embrechts M (2002) Computational military tactical planning system. IEEE Trans Syst Man Cybern Part C Appl Rev 32(2):161–171 Kicinger R, Arciszewski T, DeJong K (2004) Morphogenesis and structural design: Cellular automata representations of steel structures in tall buildings. In: Proceedings of the congress of evolutionary computation 2004. IEEE Press, pp 41–418 Koza J (1992) A genetic approach to econometric modeling. Pergamon Press, Oxford, UK 57–75 Koza J, Bennett F, Andre D, Keane MA (1999) Genetic programming III: Darwinian invention and problem solving. Morgan Kaufmann Publishers, San Francisco Langdon WB, Poli R (2002) Foundations of genetic programming. Springer, Berlin Laurent J, Nightingale J (eds) (2001) Darwinism and evolutionary economics. Edward Elgar Publishing Lee Y, Zak SH (2002) Designing a genetic neural fuzzy antilock-brake-system controller. IEEE Trans Evol Comput 6(2):198–211 Li J (2006) Enhancing financial decision making using multi-objective financial genetic programming. In: Proceedings of the IEEE congress on evolutionary computation (CEC 2006). Vancouver, Canada, pp 7935–7942 Morrison R (2004) Designing evolutionary algorithms for dynamic environments. Springer, Berlin Morrison R, DeJong K (1999) A test problem generator for non-stationary environments. In: Michalewicz Z, Shoenauer M, Yao Z, Zalzala A (eds) Proceedings of the 1999 congress on evolutionary computation. IEEE Press, New York, pp 7935–7942 Naik G (1996) Back to darwin: In sunlight and cells, science seeks answers to high-tech puzzles. The Wall Street Journal January(16th):A1 Ong YS, Lim MH, Zhu N, Wong KW (2006) Classification of adaptive memetic algorithms: a comparative study. IEEE Trans Syst Man Cybern Part B Cybern 366(1):141 Pereira R (2002) Forecasting ability but no profitability: an empirical evaluation of genetic algorithm-optimised technical trading rules. Physica-Verlag, New York 287–309 Poli R, Langdon WB, McPhee NF (2008) A field guide to genetic programming. www.Lulu.com Rechenberg I (1973) Evolutionsstrategie—optimierung technischer systeme nach prinzipien der biologischen evolution. PhD thesis, reprinted by Fromman-Holzboog Reynolds RG (1999) An overview of cultural algorithms: advances in evolutionary computation. McGraw Hill Press, New York Rizki M, Zmuda M, Tamburino L (2002) Evolving pattern recognition systems. IEEE Trans Evol Comput 6(6):594–609 Rowland J (1909) The influence of darwin on psychology. Psychol Rev 16:152–169 Sambridge M, Gallagher K (1993) Earthquake hypocenter location using genetic algorithms. Bull Seismol Soc Am 83(5):1467–1491 Sarma J (1998) An analysis of decentralized and spatially distributed genetic algorithms. PhD thesis, George Mason University, Virginia Sasaki D, Morikawa M, Obayashi S, Nakahashi K (2001) Aerodynamic shape optimization of supersonic wings by adaptive range multiobjective genetic algorithms. In: Zitzler E, Deb K, Thiele L, Coello CA, Corne DW (eds) Evolutionary multi-criterion optimization: proceedings of the first international conference EMO 2001. Springer, Zurich, Switzerland, pp 639–652 Sato S, Otori K, Takizawa A, Sakai H, Ando Y, Kawamura H (2002) Applying genetic algorithms to the optimum design of a concert hall. J Sound Vib 258(3):517–526 Schechter B (2000) Putting a darwinian spin on the diesel engine. The New York Times September(19th):F3 123 54 J. I. Serrano, M. D. del Castillo Serrano JI, del Castillo MD (2007) Evolutionary learning of document categories. Inf Retr 10(1):69–83 Serrano JI, Alonso J, del Castillo MD, Naranjo JE (2005) Evolutionary optimization of autonomous vehicle tracks. In: Proceedings of the IEEE congress on evolutionary computation (CEC) 2005. IEEE Computer Society Press, Edinburgh, UK, pp 1332–1339 Seymour-Smith M (1998) 100 most influential books ever written. Citadel Press, Secaucus Skolicki Z, DeJong K (2004) Improving evolutionary algorithms with multi-representation island models. In: Proceedings of parallel problem solving from nature VIII, Springer, pp 420–429 Spears W (1994) Simple subpopulation schemes. In: Sebald A (ed) Proceedings of the third conference on evolutionary programming. World Scientific Publisher, pp 297–307 Stanley K (2004) Efficient evolution of neural networks through complexification. PhD thesis, University of Texas, Austin Todd S, Latham W (1992) Evolutionary art and computers. Academic Press, Orlando Turing A (1950) Computing machinery and intelligence. Mind 59:94–101 Weismann D, Hammel U, Bäck T (1998) Robust design of multilayer optical coatings by means of evolutionary algorithms. IEEE Trans Evol Comput 2(4):162–167 Whitley D, Rana S, Hechendom R (1999) The island model genetic algorithm: on separability, population size and convergence. J Comput Inf Technol 2(1):33–47 Williams E, Crossley W, Lang T (2001) Average and maximum revisit time trade studies for satellite constellations using a multiobjective genetic algorithm. J Astronaut Sci 49(3):385–400 Wright S (1932) The roles of mutation, inbreeding, crossbreeding and selection in evolution. In: Proceedings of the 6th international congress on genetics, pp 356–366 Yan W, Clark CD (2007) Evolving robust gp solutions for hedge fund stock selection in emerging markets. In: Proceedings of the genetic and evolutionary computation conference GECCO’07. ACM Press, New York, pp 2234–2241 123