Evolutionary Computation is, like neural networks, an example par excellence for an information processing paradigm that was originally developed and exhibited by nature and later discovered by man who subsequently transformed the general principle into computational algorithms to be put to work on computers. Nature makes in an impressive way use of the principle of genetic heritage and evolution. Application of the simple concept of performance based reproduction of individuals („survival of the fittest“) led to the rise of well adapted organisms that can endure in a potentially adverse environment. Mutually beneficial interdependencies, co-operation and even apparently altruistic behaviour can emerge solely by evolution. The investigation of those phenomena is part of research in artificial life but cannot be dealt with in this book.
Evolutionary computation comprises the four main areas of Genetic Algorithms [1], Evolution Strategies [2], Genetic Programming [3]and Simulated Annealing [4]. Genetic algorithms and evolution strategies emerged at about the same time in the United States of America and Germany. Both techniques model the natural evolution process in order to optimise either a fitness function (evolution strategies) or the effort of generating subsequent, well-adapted individuals in successive generations (genetic algorithms). Evolution strategies in their original form were basically stochastic hill-climbing algorithms and used for optimisation of complex, multi-parameter objective functions that in practise cannot be treated analytically. Genetic algorithms in their original form were not primarily designed for function optimisation but to demonstrate the efficiency of genetic crossover in assembling successful candidates over complicated search spaces. Genetic programming takes the idea of solving an optimisation problem by evolution of potential candidates one step further in that not only the parameters of a problem but also the structure of a solution is subject to evolutionary change. Simulated Annealing is mathematically similar to evolution strategies. It was originally derived from a physical model of crystallisation. Only two individuals compete for the highest rank according to a fitness function and the decision about accepting suboptimal candidates is controlled stochastically.
All methods presented in this chapter are heuristic, i.e. they contain a random component. As a consequence (and in contrast to deterministic methods) it can never be guaranteed that the algorithm will find an optimal solution or even any solution at all. Evolutionary algorithms are therefore used preferably for applications were deterministic or analytic methods fail, for example, because the underlying mathematical model is not well defined or the search space is too large for systematic, complete search (n.-p. completeness). Another application area for evolutionary algorithms that is rapidly growing is the simulation of living systems starting with single cells and proceeding to organisms, societies or even whole economic systems [5], [6]. The goal of artificial life is not primarily to model biological life as accurately as possible but to investigate how our life or other, presumably different forms of life could have emerged from non-living components.
Work with evolutionary algorithms bears the potential for a philosophically and epistemologically interesting recursion. At the beginning, evolution emerged spontaneously in nature. Next, man discovers the principle of evolution and acquires knowledge on its mathematical properties. He defines genetic algorithms for computers. To complete the recursive cycle, computational genetic algorithms are applied to the very objects (DNA, proteins) of which they had been derived in the beginning. A practical example of such a meta-recursive application will be given below in the sections on protein folding. Figure 1 illustrates this interplay of natural and simulated evolution.
