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: