Notebooks
http://bactra.org/notebooks
Cosma's NotebooksenEvolutionary computation
http://bactra.org/notebooks/1998/05/13#evol-comp
<P>There are lots of ways of getting a computer to mimic <a
href="evolution.html">evolution</a>, but the one I like best, and has the
cleanest conceptual lines, is the "genetic algorithm" invented by <a
href="john-holland.html">John Holland</a>. Take a population of strings, and
measure their "fitness" against some criterion. Each string has a random
number of descendants, i.e. gets copied a random number of times; the expected
number of descendants of a string is proportional to its fitness. These
descendants can be mutants, or swap part of their length with another
descendant string. (Oral tradition says that this "cross-over" is usually more
useful than mutation; when and how much, nobody really knows.) Repeat as
needed. For this basic version of the genetic algorithm, Holland proved what
is called the "schema theorem", showing that, if certain patterns of
strings are fitter than others, then, in the long run, the GA can't help but
find them, and the average number of strings in the population matching those
patterns will increase exponentially. (This result is a relative, and quite
consciously so, of Fisher's "Fundamental Theorem of Natural Selection.") In
retrospect, it's an almost obvious idea, and utter idiots can write a workable
GA in Fortran. (I have.)
<P>In the normal computer-science manner, this has of course been tweaked and
elaborated in hundreds, and by now probably literally thousands, of different
ways. John Koza's technique of "genetic programming" replaces the simple
strings with a clever technique for only encoding syntactically correct (though
possibly useless) programs. (It works best in languages with a very regular
syntax, like Lisp or, Heaven help us, Forth.) There are even variants where
the fitness is determined (more or less) endogenously, i.e. which use something
more like natural than artificial selection. (Obviously, though, artificial
selection is the way to go if you want to solve a particular problem.) It's
neat, it's significant, and if I here it described once more as "teaching
computers how to have sex" or "the merging of life and the machine," I believe
I'll scream. Of course it <em>is</em> used in <a href="alife.html">artificial
life</a> and <a href="learning-inference-induction.html">machine learning</a>,
but if Holland had just picked some dull, boring name, like "stochastic
combinatory optimization", nobody would babble about it at all.
<P>See also:
<a href="optimization.html">Optimization</a>
<ul>Recommended:
<li><a href="john-holland.html">John Holland</a>, <cite>Adaptation in
Natural and Artificial Systems</cite> [One of the best scientific books I've
ever read]
<li><a href="http://www.santafe.edu/~mm/">Melanie Mitchell</a>,
<cite>Introduction to Genetic Algorithms</cite> [I read this and came to the
conclusion it's the best intro. book on GAs <em>before</em> I went to work for
Melanie, honest.]
</ul>
<ul>To read:
<li>Thomas Bäck, <cite><a href="https://doi.org/10.1093/oso/9780195099713.001.0001
">Evolutionary Algorithms in Theory and Practice: Evolution Strategies, Evolutionary Programming, Genetic Algorithms</a></cite> [1996]
<li>J. Berard and A. Bienvenue, "Sharp Asymptotic Results for
Simplified Mutation-Selection Algorithms", <cite>The Annals of Applied
Probability</cite> <strong>13</strong> (2003): 1534--1568
<li>Volkhard Buchholtz and Thorsten Poeschel, "Adaptive Evolutionary
Optimization of Team Work," <a
href="http://arxiv.org/abs/cond-mat/0203412">cond-mat/0203412</a>
<li>Philippe Collard, Sebastien Verel, Manuel Clergue, "Local search
heuristics: Fitness Cloud versus Fitness
Landscape", <a href="http://arxiv.org/abs/0709.4010">arxiv:0709.4010</a>
<li>Kenneth A. De Jong, <cite>Evolutionary Computation: A Unified
Approach</cite> [<a href="http://mitpress.mit.edu/0262041944">Blurb</a>]
<li>Fogel, <cite>Evolutionary Computation</cite>
<li>Goldberg, <cite>Genetic algorithms</cite>
<li>Hughes Juillé, <cite>Methods for Statistical Inference:
Extending the Evolutionary Computation Paradigm</cite> [Ph.D. dissertation,
Brandeis University, 1999; <a
href="http://www.demo.cs.brandeis.edu/papers/long.html#hugues_thesis">online</a>]
<li>Hillol Kargupta, "Information Transmission in Genetic Algorithm
and Shannon's Second Theorem", <cite>Proceedings of the 5th International Conference on Genetic Algorithms</cite> (1993) [<a href="http://illigal.org/pub/papers/IlliGALs/93003.ps.Z">Compressed Postscript</a>]
<li>Koza, <cite>Genetic Programming</cite>
<li>Laura Landweber and Erik Winfree (ed.), <cite>Evolution as
Computation</cite> [The dual subject, as were]
<li>Tyler Millhouse, Melanie Moses, Melanie Mitchell, "Frontiers in Evolutionary Computation: A Workshop Report", <a href="http://arxiv.org/abs/2110.10320">arxiv:2110.10320</a>
<li>Heinz Mühlenbein [<a
href="http://set.gmd.de/AS/ga/publi-neu.html">Website for papers</a>]
<ul>
<li>HM, "The Equation for the Response to Selection and Its
Use for Prediction," <cite>Evolutionary Computation</cite> <strong>5</strong>
(1998): 303--346
<li>HM and Thilo Mahnig, "The Exact Equation for the Response
to Selection for Multiple Alleles and Its Application"
<li>HM and Alberto Ochoa Rodriguez, "Schemata, Distributions
and Graphical Models in Evolutionary Optimization"
</ul>
<li>Juan Pablo Neirotti and Nestor Caticha, "Dynamics of the evolution
of learning algorithms by selection", <cite>Physical Review
E</cite> <strong>67</strong> (2003): 041912
<li>Luca Scrucca, "GA: A Package for Genetic Algorithms in R",
<a href="http://www.jstatsoft.org/v53/i04"><cite>Journal of Statistical Software</cite>
<strong>53:4</strong> (2013)</a>
<li>David Shilane, Richard H. Liang and Sandrine Dudoit, "Loss-Based
Estimation with Evolutionary Algorithms and Cross-Validation",
UC Berkeley Biostatistics Working Paper 227 [<a href="http://www.bepress.com/ucbbiostat/paper227/">Abstract, PDF</a>]
<li>Wilhelm Stannat, "On the Convergence of Genetic Algorithms --- A
Variational Approach", <a
href="http://dx.doi.org/doi:10.1007/s00440-003-0330-y"><citE>Probability Theory
and Related Fields</cite> <strong>129</strong> (2004): 113--132</a>
<li>Joe Suzuki, "A Markov chain analysis of genetic algorithms: large deviation principle approach", <a href="http://projecteuclid.org/euclid.jap/1294170512"><cite>Journal of Applied
Probability</cite> <strong>47</strong> (2010): 967--975</a>
<li>Marc Toussaint, "Self-adaptive exploration in evolutionary
search," <a href="http://arxiv.org/abs/physics/0102009">physics/0102009</a>
<li>Sebastien Verel, Philippe Collard, Manuel Clergue, "Measuring the Evolvability Landscape to study Neutrality", <a href="http://arxiv.org/abs/0709.4011">arxiv:0709.4011</a>
</ul>