cs0511004/cs0511004
1: \documentclass[twoside]{article}
2: \usepackage{isolatin1}   % necessary for accents in Thomas' name!
3: \usepackage{fleqn,espcrc2}
4: \usepackage[dvips]{graphicx}
5: 
6: % change this to the following line for use with LaTeX2.09
7: % \documentstyle[twoside,fleqn,espcrc2]{article}
8: 
9: % if you want to include PostScript figures
10: \usepackage{graphicx}
11: % if you have landscape tables
12: \usepackage[figuresright]{rotating}
13: 
14: % put your own definitions here:
15: %   \newcommand{\cZ}{\cal{Z}}
16: %   \newtheorem{def}{Definition}[section]
17: %   ...
18: \newcommand{\mscomment}[1]{{\bf #1}}
19: 
20: \newcommand{\ttbs}{\char'134}
21: \newcommand{\AmS}{{\protect\the\textfont2
22:   A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
23: 
24: % add words to TeX's hyphenation exception list
25: \hyphenation{author another created financial paper recommended Post-Script}
26: 
27: % declarations for front matter
28: \title{Evolutionary Computing}
29: 
30: \author{A.E. Eiben
31: \address{Free University Amsterdam -- The Netherlands\\
32: http://www.cs.vu.nl/$_{\tilde{~}}$gusz/} and 
33: M. Schoenauer
34: \address{INRIA Rocquencourt -- France\\
35: http://www-rocq.inria.fr/fractales/Staff/Schoenauer}
36: }
37:        
38: \begin{document}
39: 
40: \begin{abstract}
41: Evolutionary computing (EC) is an exciting development in Computer
42: Science. It amounts to building, applying and studying algorithms
43: based on the Darwinian principles of natural selection. In this paper
44: we briefly introduce the main concepts behind evolutionary
45: computing. We present the main components all evolutionary algorithms
46: (EA), sketch the differences between different types of EAs and survey
47:  application areas ranging from optimization,
48: modeling and simulation to entertainment. 
49: \vspace{1pc}
50: \end{abstract}
51: 
52: % typeset front matter (including abstract)
53: \maketitle
54: 
55: \section{Introduction}
56: %%%%%%%%%%%%%%%%%%%%%%
57:  Surprisingly enough, the idea to apply Darwinian principles to
58: automated problem solving originates from the fifties, long before the
59: breakthrough of computers \cite{Fogel:Fossile:98}. During the sixties three
60: different implementations of this idea have been developed at three
61: different places. In the USA  Fogel introduced evolutionary
62: programming \cite{Fogel-pere,DFogel}, while Holland called his
63: method a genetic algorithm \cite{Holland,Goldberg89}. In Germany
64: Rechenberg and Schwefel invented evolution strategies
65: \cite{Rechenberg,Schwefel}. For about 15 years these areas developed
66: separately; it is 
67: since the early nineties that they are envisioned as different
68: representatives (``dialects'') of one technology, called evolutionary
69: computing. It was also in the early nineties that a fourth stream
70: following the general ideas has emerged -- genetic programming
71: \cite{Koza,Banzhaf:book}. The contemporary terminology denotes
72: the whole field by evolutionary computing and considers evolutionary
73: programming, evolution strategies, genetic  
74: algorithms, and genetic programming as sub-areas.    
75: 
76: 
77: \section{What is an evolutionary algorithm?}
78: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
79: \label{EA}
80: 
81: The common underlying idea behind all these techniques is the same:
82: given a population of individuals, the environmental pressure causes
83: natural selection (survival of the fittest) and hereby the fitness of
84: the population is growing. It is easy to see such a process as
85: optimization. Given an objective function to be maximized we can
86: randomly create a set of candidate solutions and use the objective
87: function as an abstract fitness measure (the higher the better). Based
88: on this fitness, some of the better candidates are chosen to seed the
89: next generation by applying recombination and/or
90: mutation. Recombination is applied to two selected candidates, the
91: so-called parents, and results one or two new candidates, the
92: children. Mutation is applied to one candidate and results in one new
93: candidate. Applying recombination and mutation leads to a set of new
94: candidates, the offspring. Based on their fitness these offspring
95: compete with the old candidates for a place in the next generation. 
96: This process can
97: be iterated until a solution is found or a previously set time limit
98: is reached. Let us note that many components of such an evolutionary
99: process are stochastic. According to Darwin, the emergence of new
100: species, adapted to their environment, is a consequence of the
101: interaction between the survival of the fittest mechanism and undirected
102: variations. Variation operators must be stochastic, the choice on
103: which pieces of information will be exchanged during recombination, as
104: well as the changes in a candidate solution during mutation, are random.
105: On the other hand, selection operators can be either deterministic, or
106: stochastic. In the latter case fitter individuals have 
107: a higher chance to be selected than less fit ones, but typically even
108: the weak individuals have a chance to become a parent or to
109: survive. The general scheme of an evolutionary algorithm can
110: be given as follows. \\
111: 
112: \noindent
113: {\tt
114: {\bf Initialize} population with random \\
115: \indent{\bf individuals} (candidate solutions)\\
116: {\bf Evaluate} (compute fitness of) all individuals\\
117: WHILE not stop DO \\      
118: \indent{\bf Select} genitors from parent population\\
119: \indent Create offspring using \\
120: \indent \indent {\bf variation} operators on genitors\\
121: \indent {\bf Evaluate} newborn offspring\\
122: \indent {\bf Replace} some parents by some offspring\\
123: OD
124: }\\
125: 
126: Let us note that this scheme falls in the category of
127: generate-and-test, also known as trial-and-error, algorithms. The
128: fitness function represents a heuristic estimation of solution quality
129: and the search process is driven by the variation operators
130: (recombination and mutation creating new candidate solutions) and the
131: selection operators. Evolutionary algorithms (EA) are distinguished
132: within in the family of generate-and-test methods by being population
133: based, i.e. process a whole set of candidate 
134: solutions and by the use of recombination to mix information of two candidate
135: solutions. 
136: 
137: The aforementioned ``dialects'' of evolutionary computing follow the
138: above general outlines and differ only in technical details. 
139: 
140: \section{Critical issues}
141: %%%%%%%%%%%%%%%%%%%%%%%%%
142: \label{issues}
143: There are some issues that one should keep in mind when designing and
144: running an evolutionary algorithm. These considerations concern all of
145: the ``dialects'', 
146: and will be discussed here in general, without a specific type of evolutionary
147: algorithm in mind.
148: 
149: One crucial issue when running an EA is to try to preserve the 
150: {\em genetic diversity} of the population as long as possible. 
151: Opposite to many other optimization methods, EAs use a whole
152: population of individuals -- and this is one of the reasons for their
153: power. However, if that populations starts to concentrate in a very
154: narrow region of the search space, all advantages of handling many
155: different individuals vanish, while the burden of computing their
156: fitnesses remains. This phenomenon is known as premature convergence.
157: There are two main directions to prevent this: a priori ensuring
158: creation of new material, for instance by using a high level of
159: mutation (see section \ref{mutation}); or a posteriori manipulating
160: the fitnesses of all individuals to create a bias against being
161: similar, or close to, existing candidates. A well-known technique is
162: the so-called  niching mechanism. 
163: 
164: {\em Exploration and exploitation} are two terms often used in EC. Although
165: crisp definitions are lacking \cite{Eiben:ES98} there has been a lot
166: of discussion 
167: about them. The dilemma within an optimization procedure is whether to
168: search around the best-so-far solutions (as their neighborhood
169: hopefully contains even better points) or explore some totally
170: different regions of the search space 
171: (as the best-so-far solutions might only be local optima). An EA must
172: be set up in such a way that it solves this dilemma without 
173: a priori knowledge of the kind of landscape it will have to explore.
174: The exploitation phase can sometimes be ``delegated'' to some local
175: optimization procedure, whether called as a mutation operator, or
176: systematically applied to all newborn individuals, moving them to the
177: nearest local optimum. In the latter case,
178: the resulting hybrid algorithm is called a memetic algorithm. 
179: 
180: In general, there are two driving forces behind an EA: selection and variation.
181: The first one represents a push toward quality and is reducing the genetic
182: diversity of the population. The second one, implemented by
183: recombination and mutation operators, represents a push toward
184: novelty and is increasing genetic diversity. To have an EA work
185: properly, an appropriate balance between these two forces has to be
186: maintained. At the moment, however, there is not much theory
187: supporting practical EA design.  
188: 
189: \section{ Components of evolutionary algorithms}
190: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
191: %This section will discuss the components of an EA sketched in
192: %section\ref{EA}, trying to underline which are responsible for making
193: %EAs successful.
194: 
195: \subsection{Representation}
196: %--------------------------
197: \label{representation}
198: Solving a given problem with an EA starts with specifying a
199: representation of the candidate solutions. Such candidate solutions
200: are seen as phenotypes that can have very complex structures. Applying
201: variation operators directly to these structures might not be
202: possible, or easy. Therefore these {\em phenotypes} are represented by
203: corresponding {\em genotypes}. The standard EC machinery
204: consists of many off-the-shelf variation operators acting on a
205: specific genotype space, for instance bit-strings, real-valued
206: vectors, permutations of integers, or trees. Designing an
207: EA thus often amounts to choosing one of the standard representations
208: with the corresponding variation operators in mind. 
209: However, one strength of EAs is their ability to 
210: tackle any search space provided that 
211: initialization and variation operators are available. 
212: Choosing a
213: standard option is, therefore, not necessary. 
214: 
215: 
216: \subsection{Fitness or evaluation function}
217: %--------------------------------------------------------
218: Fitness-based selection is the force that represents the drive toward
219: quality improvements in an EA. Designing the fitness function (or
220: evaluation function) is therefore crucial. 
221: 
222: The first important feature about fitness computation is that it
223: represents  99\% of the total computational cost
224: of evolution in most real-world problems. 
225: Second, the fitness function very often is the only information about
226: the problem in the algorithm:  Any available
227: and usable knowledge about the problem domain
228: should be used.
229: 
230: 
231: \subsection{Representation dependent}
232: %----------------------------------------------
233: \label{rep-dep}
234: 
235: \subsubsection{Initialization} 
236: \label{init}
237: %...........................
238: The initial population is usually created by some
239: random sampling of the search space, generally performed as uniformly
240: as possible. However, in some cases, uniform sampling might not be
241: well-defined, e.g. on parse-tree spaces, or on unbounded intervals for
242: floating-point numbers. 
243: 
244: A common practice also is to {\em
245:   inoculate} some known good solutions into the initial
246: population. But beware that no bias is better than a wrong bias!
247: 
248: %In general, the issue of initialization is
249: %poorly documented and its role and effect on algorithm performance is
250: %poorly understood.
251: 
252: \subsubsection{Crossover}
253: %.......................
254: \label{crossover}
255: Crossover operators take two (or more) parents and generate 
256: offspring by exchange of information between the parents.
257: The underlying idea to explain crossover performance is that 
258: the good fitness of the parents is somehow due to precise parts
259: of their genetic material (termed {\em building blocks}), and the
260: recombining those building blocks will result in an increase in
261: fitness.
262: 
263: Nevertheless, there are numerous other ways to perform crossover.
264: For instance, crossing over
265: two vectors of floating-points values 
266: can be done by linear combination (with uniformly
267: drawn weights) of the parents values.
268: The  idea is that information pertaining to the problem at hand
269: should be somehow exchanged.
270: 
271: Note that the effect of crossover varies from exploration
272: when the population is highly diversified to exploitation when it
273: starts to collapse into a small region of the search space.
274: 
275: \subsubsection{Mutation}
276: %.......................
277: \label{mutation}
278: Mutation operators are stochastic transformations of an individual.
279: The usual compromise between  exploration and exploitation must be
280: maintained: large mutations are necessary from theoretical
281: reasons (it ensures the {\em ergodicity} of the underlying stochastic
282: process), that translate practically
283: (it is the only way to reintroduce genetic diversity in the end of
284: evolution); but of course too much too large mutation transform the
285: algorithm into a random walk -- so most mutations should generate
286: offspring close to their parents.
287: There is no standard general mutation, but general trends are 
288: to modify the value of a component of the genotype with a
289: small probability (e.g. flip one bit of a bitstring, or, in case of
290: real-valued components, add zero-mean Gaussian noise with carefully tuned
291: standard deviation).
292: 
293: \subsubsection{The historical debate}
294: %.......................
295: \label{debate}
296: There has long been a strong debate about the usefulness of crossover.
297: The GA community considers crossover to be the essential
298: variation operator \cite{Holland,Goldberg89}, 
299: %recombining useful
300: %{\em building blocks} that will be gradually assemble into a good
301: %solution of the problem at hand, 
302: while mutation is only a background
303: necessity. On the other hand, the historical ES
304: \cite{Rechenberg,Schwefel} and EP \cite{Fogel-pere} researchers did
305: not use any crossover at all, and 
306: even claimed later that it could be harmful \cite{Fogel-Stayton}.
307: 
308: The general agreement nowadays is that the answer is  problem-dependent: 
309: If there exists a ``semantically meaningful'' crossover for
310: the problem at hand, it is probably a good idea to use it. But
311: otherwise mutation alone might be sufficient to find good solutions --
312: and the resulting algorithm can still be called an Evolutionary
313: Algorithm. 
314: 
315: \subsection{Representation-independent}
316: %-----------------------------------------------
317: 
318: \subsubsection{Artificial Darwinism}
319: %........................................
320: \label{darwinism}
321: Darwin's theory states that {\em the fittest individuals reproduce and
322:   survive}. The {\em evolution engine}, i.e. the two steps of {\bf
323:   selection} (of some parents to become 
324: genitors) and {\bf replacement} (of some parents by newborn offspring) are
325: the artificial implementations of these two selective processes. 
326: They differ in an essential way:
327: during selection step, the same parent can be selected many times; during
328: replacement step, each individual (among parents and offspring) either is
329: selected, or disappears for ever.
330: 
331: Proportional selection (aka
332: {\em roulette-wheel}) has long been the most popular selection
333: operator: each parent has a probability to be 
334: selected that is proportional to its fitness. However, the difficulty
335: is to scale the fitness to tune the selection pressure:
336: even the greatest care will not prevent some super-individual to take
337: over the population in a very short time. Hence the most widely used
338: today is tournament selection: to select one individual, $T$
339: individuals are uniformly chosen, and the best of these $T$ is
340: returned. Of course, both roulette-wheel and tournament repeatedly act
341: on the 
342: same current population, to allow for multiple selection of the very
343: best individuals.
344: 
345: There are two broad categories of replacement methods: either
346: the parents and the offspring ``fight'' for survival, or only some
347: offspring are allowed to survive. Denoting by $\mu$ (resp. $\lambda$)
348: the number of parents (resp. offspring) as in ES history (section
349: \ref{ES}), the former strategy is called $(\mu + \lambda)$ and the
350: latter $(\mu , \lambda)$.
351: When $\mu=\lambda$, the comma strategy is also known as  {\em generational
352:   replacement}: all offspring simply replace all parents.
353: When $\lambda=1$, the (plus!) strategy is then termed
354: {\em steady-state} and amounts to choosing one parent to be replaced. 
355: 
356: An important point about the evolution engine is the monotonicity of
357: the best fitness 
358: along evolution: for instance, ES plus strategies are {\em elitist},
359: i.e. ensure that the best fitness can only increase from one generation
360: to another, while the comma strategies are not elitist -- though
361: elitism can be a posteriori added by retaining the best parent when a
362: decrease of fitness is foreseen.
363: 
364: 
365: \subsubsection{Termination criterion}
366: %...............................
367: \label{stopping}
368: There has been very few theoretical studies about when to stop an
369: Evolutionary Algorithm. 
370: The usual stopping criterion is a fixed amount of computing time (or,
371: almost equivalently, of fitness computations). A slightly more subtle
372: criterion is to stop when a user-defined amount of time has passed
373: without improvement of the best fitness in the population.
374: 
375: \subsection{Setting the parameters}
376: %---------------------------
377: \label{parameters}
378: 
379: EAs typically have a large number of parameters (e.g.
380: population size, frequency of 
381: recombination, mutation step-size,  selective pressure,
382: \ldots). 
383: %Despite of claims from the dawn of EC stating that evolution
384: %is very robust,  it is today widely acknowledged that the parameter
385: %setting can have a great influence of algorithm performance. 
386: The main
387: problem in this respect is that even the individual effect of one
388: parameter is often unpredictable, let alone the combined influence of
389: all parameters. Most authors rely on
390: intensive trials (dozens of independent runs for each possible
391: parameter setting) to calibrate their algorithms -- an option that is
392: clearly very time consuming. Another possibility is to use
393: long-existing statistical techniques like ANOVA.
394: A specific evolutionary  trend is to let
395:  the EA calibrate itself to a given problem, while solving
396: that problem (see section \ref{ES}).  
397: 
398: \subsection{Result analysis}
399: %...............................
400: \label{result}
401: As with any randomized algorithm, the results of a single run of an EA
402: are meaningless.
403: %, and only statistical analyses should be provided,
404: %especially when comparing two different kinds of EAs, or when studying
405: %the robustness of some particular setting.
406: A typical experimental analysis will run say 
407: over more than 15 independent runs (everything equal except the
408: initial population), and present averages, standard deviations, and
409: T-test in case of comparative experiments.
410:  
411: However, one should distinguish {\em design problems}, where the
412: goal is to find at least one very good solution once,
413: from {\em day-to-day optimization} (e.g. control, scheduling,\ldots),
414: where the  
415: goal is to consistently find a good solution for different inputs.
416: In the design context, a high standard deviation is desirable provided
417: the average result is not too bad. In the optimization context, 
418:  a good average and a small standard
419: deviation are mandatory.
420: 
421: 
422: \section{Historical dialects}
423: %%%%%%%%%%%%%%%%%%%%%%%%%%%%
424: As already quoted, EC arose from independent sources. Of course,
425: each dialect exhibits a large variety in itself; the short
426: descriptions here are necessarily restricted to one or two main
427: variants. 
428: 
429: \subsection{Genetic Algorithms}
430: %----------------------------------
431: \label{GA}
432: The standard GA \cite{Holland,Goldberg89}
433: can be seen as the combination of bit-string
434: representation, with bit-exchange crossover (applied with given
435: probability $p_c$) and bit-flip mutation (applied to every bit with
436: probability $p_m$),
437: roulette-wheel selection plus generational replacement (though
438: steady-state replacement can also be used).  
439: 
440: Note that other versions of EAs using the same evolution engine with
441: different genotypes (and hence variation operators) are often called
442: GA. 
443: 
444: 
445: \subsection{Evolution Strategies}
446: %----------------------------------
447: \label{ES}
448: Evolution strategies (ES) \cite{Rechenberg,Schwefel}
449: are typically applied to real-valued
450: parameter optimization problems (historically discretized). 
451: ES apply to real-valued vectors using Gaussian mutation, no selection
452: and $(\mu \stackrel{+}{,} \lambda)$ replacement strategies. 
453: Crossover (historically absent)  is performed either by exchanging
454: components, or by doing a linear recombination on some components. 
455: 
456: The characteristic feature of ES lies in the 
457: self-adaptation of the standard deviation
458: of the Gaussian distribution used in the mutation \cite{Baeck-Schwefel}. 
459: The basic idea is to add these parameters to
460: the genotypes, and have them  undergo evolution themselves. 
461: 
462: 
463: \subsection{Evolutionary Programming}
464: %----------------------------------
465: \label{EP}
466: %It is hard to say what evolutionary programmming (EP) is because EP
467: %mutated during the last decade. 
468: Traditional EP \cite{Fogel-pere} was concerned with
469: evolving finite state automata for machine learning
470: tasks. Representation and operators were specialized for this
471: application area. Each parent gave birth by mutation only to one
472: offspring, and a plus replacement strategy was used to remove half of
473: the individuals.
474: Contemporary EP, however, \cite{DFogel} 
475: has evolved to using any representation and
476: different evolution engines, and nowadays differs from ES by using
477: a stochastic form of the plus replacement strategy, and by never using
478: crossover  (EP also uses self-adaptation of Gaussian mutation in the
479: case of real-valued genotypes).
480: 
481: \subsection{Genetic Programming}
482: %----------------------------------
483: \label{GP}
484: The youngest brother of the family \cite{Koza,Banzhaf:book}
485: has a specific application area in
486: machine learning and modeling tasks. A natural representation is that
487: of parse-trees of formal logical expressions describing a model or
488: procedure. Crossover and mutation operators are adapted so that they
489: work on trees (with varying sizes). 
490: Evolution engine is "inherited" from GAs (GP has long been seen as
491: GA with tree representation). On the other hand, syntactic expressions
492: -- for instance LISP --
493: can be viewed as programs, which makes GP the branch concerned with
494: automatic evolution of programs.  
495: 
496: \section{Application areas}
497: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
498: \label{applications}
499: 
500: Although it is often stressed that an evolutionary algorithm is not an
501: optimizer in the strict sense \cite{DeJong:PPSN92}, optimization
502: problems form the most important application area of EAs. Within this
503: field further distinctions can be made, 
504: combinatorial optimization, continuous parameter optimization, or
505: mixed discrete-continuous optimization. 
506: 
507: In the framework of {\bf combinatorial optimization}, it is now recognized
508: that EC alone is not competitive \cite{HEC} compared to classical
509: Operational Research heuristics. However, hybridization of EC with those
510: specialized OR heuristics gave tremendous results, on benchmark
511: problems (e.g. best-to-date results on some difficult {\em graph coloring},
512: {\em quadratic assignment}, or {\em constraint satisfaction}
513: instances) as well as on many real-world problems 
514: (e.g. {\em time-tabling} in universities, {\em crew scheduling} in big
515:   companies, multiple tours with time-windows in {\em distribution
516:     applications},
517: \ldots). It is worth mentioning here that combinatorial problems is
518: today the most profitable application domain for EC.
519: 
520: When it comes to {\bf continuous parametric optimization}, the mistake
521: to avoid is to 
522: try to compete with highly performing numerical methods. However, in
523: many cases such methods do not apply (lack of regularity) or fail
524: (high multi-modularity). In such contexts, EC has been successfully
525: used for {\em control, electromagnetism, fluid mechanics, structural
526: analysis, \ldots }
527: 
528: The flexibility of EC allows one to handle representations (section
529: \ref{representation}) that are out of reach of any other method. This
530: is the case for mixed search spaces (with both discrete and
531: continuous variables), and even more for {\bf variable length
532: representations} (e.g. parse trees of Genetic Programming, see section
533: \ref{GP}). And this opens up the possibility for huge improvements in
534: areas such as {\em Machine Learning}
535: (e.g. by evolving sets of rules, cellular automata rules, \ldots), 
536: {\em modeling} (in the general framework of function identification),
537: {\em design} and {\em art} \cite{Bentley:book:99},
538: where restricting the representation of the 
539: solutions to a fixed set of parameters definitely bias the search
540: toward poo regions in terms of diversity.
541: 
542: 
543: Finally, let us stress that one domain where Evolutionary Algorithms
544: encounter an increasing attention is that of {\bf multi-objective
545: optimization}: specific selection  methods \cite{Deb:EMO:book} 
546: allow one to
547: spread the population of an EA over the {\em Pareto front} of a
548: multi-objective problem (the set of the best compromises between
549: the objectives), requiring only a fraction of
550: computing time more than the optimization of a single objective.
551: 
552: 
553: \section{Concluding remarks}
554: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
555: \label{conclusion}
556: Natural evolution can be considered as a powerful problem solver
557: achieving Homo Sapiens from chaos in only a couple of billion
558: years. Computer-based evolutionary processes can also be used as
559: efficient problem solvers for optimization, constraint handling,
560: machine learning and modeling tasks. Furthermore, many real-world
561: phenomena from the study of life, economy, and society can be
562: investigated by simulations based on evolving systems. Last but not
563: least, evolutionary art and design form an emerging field of
564: applications of  the Darwinian ideas. We expect that computer
565: applications based on evolutionary principles will gain popularity in
566: the coming years in science, business, and entertainment.  
567: 
568: {\small
569: % \bibliographystyle{plain}
570: % \bibliography{LA_TOTALE}
571: % \bibliography{../Bib/LA_TOTALE}
572: 
573: \begin{thebibliography}{10}
574: 
575: \bibitem{Baeck-Schwefel}
576: Th. Bäck and H.-P. Schwefel.
577: \newblock An overview of evolutionary algorithms for parameter optimization.
578: \newblock {\em Evolutionary Computation}, 1(1):1--23, 1993.
579: 
580: \bibitem{Banzhaf:book}
581: W.~Banzhaf, P.~Nordin, R.E. Keller, and F.D. Francone.
582: \newblock {\em Genetic Programming --- An Introduction}.
583: \newblock Morgan Kaufmann, 1998.
584: 
585: \bibitem{HEC}
586: Th. Bäck, D.B. Fogel, and Z.~Michalewicz, editors.
587: \newblock {\em Handbook of Evolutionary Computation}.
588: \newblock Oxford University Press, 1997.
589: 
590: \bibitem{Bentley:book:99}
591: P.~J. Bentley, editor.
592: \newblock {\em Evolutionary Design by Computers}.
593: \newblock Morgan Kaufman, 1999.
594: 
595: \bibitem{Deb:EMO:book}
596: K.~Deb.
597: \newblock {\em Multi-Objective Optimization Using Evolutionary Algorithms}.
598: \newblock John Wiley, 2001.
599: 
600: \bibitem{DeJong:PPSN92}
601: K.~A. DeJong.
602: \newblock Are genetic algorithms function optimizers?
603: \newblock In R.~Manner and B.~Manderick, editors, {\em Proc. PPSN II}, 
604: pages 3--13.  North Holland, 1992.
605: 
606: \bibitem{Eiben:ES98}
607: A.E. Eiben and A.~Schippers.
608: \newblock On evolutionary exploration and exploitation.
609: \newblock {\em Fundamenta Informaticae}, 35(1-4):35--50, 1998.
610: 
611: \bibitem{DFogel}
612: D.~B. Fogel.
613: \newblock {\em Evolutionary Computation. Toward a New Philosophy of Machine
614:   Intelligence}.
615: \newblock IEEE Press, Piscataway, NJ, 1995.
616: 
617: \bibitem{Fogel:Fossile:98}
618: D.B. Fogel.
619: \newblock {\em Evolutionary Computing: The Fossile Record}.
620: \newblock IEEE Press, 1998.
621: 
622: \bibitem{Fogel-Stayton}
623: D.B. Fogel and L.C. Stayton.
624: \newblock On the effectiveness of crossover in simulated evolutionary
625:   optimization.
626: \newblock {\em BioSystems}, 32:171--182, 1994.
627: 
628: \bibitem{Fogel-pere}
629: L.~J. Fogel, A.~J. Owens, and M.~J. Walsh.
630: \newblock {\em Artificial Intelligence through Simulated Evolution}.
631: \newblock New York: John Wiley, 1966.
632: 
633: \bibitem{Goldberg89}
634: D.~E. Goldberg.
635: \newblock {\em Genetic algorithms in search, optimization and machine
636:   learning}.
637: \newblock Addison Wesley, 1989.
638: 
639: \bibitem{Holland}
640: J.~H. Holland.
641: \newblock {\em Adaptation in natural and artificial systems}.
642: \newblock University of Michigan Press, Ann Arbor, 1975.
643: 
644: \bibitem{Koza}
645: J.~R. Koza.
646: \newblock {\em Genetic Programming: On the Programming of Computers by means of
647:   Natural Evolution}.
648: \newblock MIT Press, Massachusetts, 1992.
649: 
650: \bibitem{Rechenberg}
651: I.~Rechenberg.
652: \newblock {\em Evolutionstrategie: Optimierung Technisher Systeme nach
653:   Prinzipien des Biologischen Evolution}.
654: \newblock Fromman-Hozlboog Verlag, Stuttgart, 1973.
655: 
656: \bibitem{Schwefel}
657: H.-P. Schwefel.
658: \newblock {\em Numerical Optimization of Computer Models}.
659: \newblock John Wiley \& Sons, New-York, 1981.
660: \newblock 1995 -- 2$^{nd}$ edition.
661: 
662: \end{thebibliography}
663: 
664: }
665: \end{document}
666: 
667: 
668: %%% Local Variables: 
669: %%% mode: latex
670: %%% TeX-master: t
671: %%% End: 
672: