Simulating Evolution With Mathematica
Christian J. Jacob · WIT transactions on engineering sciences · 1970
Evolutionary mechanisms as observed in nature are successfully used in evolutionary algorithms (EA) in order to solve complex optimization tasks or to mimick natural evolution processes. We present a collection of evolutionary algorithms which we have implemented in Mathematica together with some visualization examples and applications. The three major EA-classes are discussed: Evolution Strategies (ES), Genetic Algorithms (GA), and Genetic Programming (GP). Interactive evolution is demonstrated by the breeding of biomorphs, recursively branched line drawings. Multi-modal ESand GAexperiments are demonstrated for a parameter optimization task. The evolution of robot control programs shows a simple GP-application. The article concludes with a more sophisticated GP-example: the breeding of developmental programs for artificial plantlike structures encoded on the basis of Lindenmayer systems. 1 Evolutionary algorithms a short introduction Evolution in nature provides fascinating mechanisms for adapting living species to their environments. It is somewhat remarkable that such complex adaptations, taking place over huge time spans (from hundreds to millions of years) are essentially driven by a strikingly simple principle: iterated selection and mutations, as originally formulated by Charles Darwin (Darwin [2]). All organisms that are able to reproduce, thus transmitting their specific genes to their descendants, have won nature's implicit »struggle-of-survival« test. The genes are passed on to the next generation, however, with some minor mutations, either due to imperfect copying of the genetic information or due to recombination effects observable among sexually reproducing individuals. With this natural scenario of adaptation in mind, why shouldn't evolutionaTransactions on Engineering Sciences vol 15, © 1997 WIT Press, www.witpress.com, ISSN 1743-3533