Genetic Algorithm - Wikipedia
Genetic Algorithm - Wikipedia
Genetic Algorithm - Wikipedia
In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired
by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA).
Genetic algorithms are commonly used to generate high-quality solutions to optimization and
search problems by relying on biologically inspired operators such as mutation, crossover and
selection.[1] Some examples of GA applications include optimizing decision trees for better
performance, solving sudoku puzzles,[2] hyperparameter optimization, etc.
Methodology
Optimization problems
A standard representation of each candidate solution is as an array of bits (also called bit set or bit
string).[3] Arrays of other types and structures can be used in essentially the same way. The main
property that makes these genetic representations convenient is that their parts are easily aligned
due to their fixed size, which facilitates simple crossover operations. Variable length
representations may also be used, but crossover implementation is more complex in this case.
Tree-like representations are explored in genetic programming and graph-form representations are
explored in evolutionary programming; a mix of both linear chromosomes and trees is explored in
gene expression programming.
Once the genetic representation and the fitness function are defined, a GA proceeds to initialize a
population of solutions and then to improve it through repetitive application of the mutation,
crossover, inversion and selection operators.
Initialization
The population size depends on the nature of the problem, but typically contains several hundreds
or thousands of possible solutions. Often, the initial population is generated randomly, allowing the
entire range of possible solutions (the search space). Occasionally, the solutions may be "seeded" in
areas where optimal solutions are likely to be found.
Selection
During each successive generation, a portion of the existing population is selected to breed a new
generation. Individual solutions are selected through a fitness-based process, where fitter solutions
(as measured by a fitness function) are typically more likely to be selected. Certain selection
methods rate the fitness of each solution and preferentially select the best solutions. Other
methods rate only a random sample of the population, as the former process may be very time-
consuming.
The fitness function is defined over the genetic representation and measures the quality of the
represented solution. The fitness function is always problem dependent. For instance, in the
knapsack problem one wants to maximize the total value of objects that can be put in a knapsack
of some fixed capacity. A representation of a solution might be an array of bits, where each bit
represents a different object, and the value of the bit (0 or 1) represents whether or not the object is
in the knapsack. Not every such representation is valid, as the size of objects may exceed the
capacity of the knapsack. The fitness of the solution is the sum of values of all objects in the
knapsack if the representation is valid, or 0 otherwise.
In some problems, it is hard or even impossible to define the fitness expression; in these cases, a
simulation may be used to determine the fitness function value of a phenotype (e.g. computational
fluid dynamics is used to determine the air resistance of a vehicle whose shape is encoded as the
phenotype), or even interactive genetic algorithms are used.
Genetic operators
The next step is to generate a second generation population of solutions from those selected,
through a combination of genetic operators: crossover (also called recombination), and mutation.
For each new solution to be produced, a pair of "parent" solutions is selected for breeding from the
pool selected previously. By producing a "child" solution using the above methods of crossover and
mutation, a new solution is created which typically shares many of the characteristics of its
"parents". New parents are selected for each new child, and the process continues until a new
population of solutions of appropriate size is generated.
Although reproduction methods that are
based on the use of two parents are more "biology inspired", some research[4][5] suggests that more
than two "parents" generate higher quality chromosomes.
These processes ultimately result in the next generation population of chromosomes that is
different from the initial generation. Generally, the average fitness will have increased by this
procedure for the population, since only the best organisms from the first generation are selected
for breeding, along with a small proportion of less fit solutions. These less fit solutions ensure
genetic diversity within the genetic pool of the parents and therefore ensure the genetic diversity of
the subsequent generation of children.
Opinion is divided over the importance of crossover versus mutation. There are many references in
Fogel (2006) that support the importance of mutation-based search.
Although crossover and mutation are known as the main genetic operators, it is possible to use
other operators such as regrouping, colonization-extinction, or migration in genetic algorithms.
It is worth tuning parameters such as the mutation probability, crossover probability and population
size to find reasonable settings for the problem class being worked on. A very small mutation rate
may lead to genetic drift (which is non-ergodic in nature). A recombination rate that is too high may
lead to premature convergence of the genetic algorithm. A mutation rate that is too high may lead
to loss of good solutions, unless elitist selection is employed. An adequate population size ensures
sufficient genetic diversity for the problem at hand, but can lead to a waste of computational
resources if set to a value larger than required.
Heuristics
In addition to the main operators above, other heuristics may be employed to make the calculation
faster or more robust. The speciation heuristic penalizes crossover between candidate solutions
that are too similar; this encourages population diversity and helps prevent premature convergence
to a less optimal solution.[6][7]
Termination
This generational process is repeated until a termination condition has been reached. Common
terminating conditions are:
The highest ranking solution's fitness is reaching or has reached a plateau such that successive
iterations no longer produce better results
Manual inspection
Genetic algorithms are simple to implement, but their behavior is difficult to understand. In
particular, it is difficult to understand why these algorithms frequently succeed at generating
solutions of high fitness when applied to practical problems. The building block hypothesis (BBH)
consists of:
"Short, low order, and highly fit schemata are sampled, recombined [crossed over], and resampled
to form strings of potentially higher fitness. In a way, by working with these particular schemata
[the building blocks], we have reduced the complexity of our problem; instead of building high-
performance strings by trying every conceivable combination, we construct better and better
strings from the best partial solutions of past samplings.
"Because highly fit schemata of low defining length and low order play such an important role in
the action of genetic algorithms, we have already given them a special name: building blocks.
Just as a child creates magnificent fortresses through the arrangement of simple blocks of wood,
so does a genetic algorithm seek near optimal performance through the juxtaposition of short,
low-order, high-performance schemata, or building blocks."[8]
Despite the lack of consensus regarding the validity of the building-block hypothesis, it has been
consistently evaluated and used as reference throughout the years. Many estimation of distribution
algorithms, for example, have been proposed in an attempt to provide an environment in which the
hypothesis would hold.[9][10] Although good results have been reported for some classes of
problems, skepticism concerning the generality and/or practicality of the building-block hypothesis
as an explanation for GAs efficiency still remains. Indeed, there is a reasonable amount of work that
attempts to understand its limitations from the perspective of estimation of distribution
algorithms.[11][12][13]
Limitations
There are limitations of the use of a genetic algorithm compared to alternative optimization
algorithms:
Repeated fitness function evaluation for complex problems is often the most prohibitive and
limiting segment of artificial evolutionary algorithms. Finding the optimal solution to complex
high-dimensional, multimodal problems often requires very expensive fitness function
evaluations. In real world problems such as structural optimization problems, a single function
evaluation may require several hours to several days of complete simulation. Typical optimization
methods cannot deal with such types of problem. In this case, it may be necessary to forgo an
exact evaluation and use an approximated fitness that is computationally efficient. It is apparent
that amalgamation of approximate models may be one of the most promising approaches to
convincingly use GA to solve complex real life problems.
Genetic algorithms do not scale well with complexity. That is, where the number of elements
which are exposed to mutation is large there is often an exponential increase in search space
size. This makes it extremely difficult to use the technique on problems such as designing an
engine, a house or a plane. In order to make such problems tractable to evolutionary search, they
must be broken down into the simplest representation possible. Hence we typically see
evolutionary algorithms encoding designs for fan blades instead of engines, building shapes
instead of detailed construction plans, and airfoils instead of whole aircraft designs. The second
problem of complexity is the issue of how to protect parts that have evolved to represent good
solutions from further destructive mutation, particularly when their fitness assessment requires
them to combine well with other parts.
The "better" solution is only in comparison to other solutions. As a result, the stop criterion is not
clear in every problem.
In many problems, GAs have a tendency to converge towards local optima or even arbitrary points
rather than the global optimum of the problem. This means that it does not "know how" to
sacrifice short-term fitness to gain longer-term fitness. The likelihood of this occurring depends
on the shape of the fitness landscape: certain problems may provide an easy ascent towards a
global optimum, others may make it easier for the function to find the local optima. This problem
may be alleviated by using a different fitness function, increasing the rate of mutation, or by using
selection techniques that maintain a diverse population of solutions,[14] although the No Free
Lunch theorem[15] proves that there is no general solution to this problem. A common technique
to maintain diversity is to impose a "niche penalty", wherein, any group of individuals of sufficient
similarity (niche radius) have a penalty added, which will reduce the representation of that group
in subsequent generations, permitting other (less similar) individuals to be maintained in the
population. This trick, however, may not be effective, depending on the landscape of the problem.
Another possible technique would be to simply replace part of the population with randomly
generated individuals, when most of the population is too similar to each other. Diversity is
important in genetic algorithms (and genetic programming) because crossing over a
homogeneous population does not yield new solutions. In evolution strategies and evolutionary
programming, diversity is not essential because of a greater reliance on mutation.
Operating on dynamic data sets is difficult, as genomes begin to converge early on towards
solutions which may no longer be valid for later data. Several methods have been proposed to
remedy this by increasing genetic diversity somehow and preventing early convergence, either by
increasing the probability of mutation when the solution quality drops (called triggered
hypermutation), or by occasionally introducing entirely new, randomly generated elements into the
gene pool (called random immigrants). Again, evolution strategies and evolutionary programming
can be implemented with a so-called "comma strategy" in which parents are not maintained and
new parents are selected only from offspring. This can be more effective on dynamic problems.
GAs cannot effectively solve problems in which the only fitness measure is a single right/wrong
measure (like decision problems), as there is no way to converge on the solution (no hill to climb).
In these cases, a random search may find a solution as quickly as a GA. However, if the situation
allows the success/failure trial to be repeated giving (possibly) different results, then the ratio of
successes to failures provides a suitable fitness measure.
For specific optimization problems and problem instances, other optimization algorithms may be
more efficient than genetic algorithms in terms of speed of convergence. Alternative and
complementary algorithms include evolution strategies, evolutionary programming, simulated
annealing, Gaussian adaptation, hill climbing, and swarm intelligence (e.g.: ant colony
optimization, particle swarm optimization) and methods based on integer linear programming.
The suitability of genetic algorithms is dependent on the amount of knowledge of the problem;
well known problems often have better, more specialized approaches.
Variants
Chromosome representation
The simplest algorithm represents each chromosome as a bit string. Typically, numeric parameters
can be represented by integers, though it is possible to use floating point representations. The
floating point representation is natural to evolution strategies and evolutionary programming. The
notion of real-valued genetic algorithms has been offered but is really a misnomer because it does
not really represent the building block theory that was proposed by John Henry Holland in the
1970s. This theory is not without support though, based on theoretical and experimental results
(see below). The basic algorithm performs crossover and mutation at the bit level. Other variants
treat the chromosome as a list of numbers which are indexes into an instruction table, nodes in a
linked list, hashes, objects, or any other imaginable data structure. Crossover and mutation are
performed so as to respect data element boundaries. For most data types, specific variation
operators can be designed. Different chromosomal data types seem to work better or worse for
different specific problem domains.
When bit-string representations of integers are used, Gray coding is often employed. In this way,
small changes in the integer can be readily affected through mutations or crossovers. This has been
found to help prevent premature convergence at so-called Hamming walls, in which too many
simultaneous mutations (or crossover events) must occur in order to change the chromosome to a
better solution.
Other approaches involve using arrays of real-valued numbers instead of bit strings to represent
chromosomes. Results from the theory of schemata suggest that in general the smaller the
alphabet, the better the performance, but it was initially surprising to researchers that good results
were obtained from using real-valued chromosomes. This was explained as the set of real values in
a finite population of chromosomes as forming a virtual alphabet (when selection and
recombination are dominant) with a much lower cardinality than would be expected from a floating
point representation.[16][17]
An expansion of the Genetic Algorithm accessible problem domain can be obtained through more
complex encoding of the solution pools by concatenating several types of heterogenously encoded
genes into one chromosome.[18] This particular approach allows for solving optimization problems
that require vastly disparate definition domains for the problem parameters. For instance, in
problems of cascaded controller tuning, the internal loop controller structure can belong to a
conventional regulator of three parameters, whereas the external loop could implement a linguistic
controller (such as a fuzzy system) which has an inherently different description. This particular
form of encoding requires a specialized crossover mechanism that recombines the chromosome by
section, and it is a useful tool for the modelling and simulation of complex adaptive systems,
especially evolution processes.
Elitism
A practical variant of the general process of constructing a new population is to allow the best
organism(s) from the current generation to carry over to the next, unaltered. This strategy is known
as elitist selection and guarantees that the solution quality obtained by the GA will not decrease
from one generation to the next.[19]
Parallel implementations
Parallel implementations of genetic algorithms come in two flavors. Coarse-grained parallel genetic
algorithms assume a population on each of the computer nodes and migration of individuals
among the nodes. Fine-grained parallel genetic algorithms assume an individual on each processor
node which acts with neighboring individuals for selection and reproduction.
Other variants, like
genetic algorithms for online optimization problems, introduce time-dependence or noise in the
fitness function.
Adaptive GAs
Genetic algorithms with adaptive parameters (adaptive genetic algorithms, AGAs) is another
significant and promising variant of genetic algorithms. The probabilities of crossover (pc) and
mutation (pm) greatly determine the degree of solution accuracy and the convergence speed that
genetic algorithms can obtain. Instead of using fixed values of pc and pm, AGAs utilize the
population information in each generation and adaptively adjust the pc and pm in order to maintain
the population diversity as well as to sustain the convergence capacity. In AGA (adaptive genetic
algorithm),[20] the adjustment of pc and pm depends on the fitness values of the solutions. In CAGA
(clustering-based adaptive genetic algorithm),[21] through the use of clustering analysis to judge the
optimization states of the population, the adjustment of pc and pm depends on these optimization
states.
It can be quite effective to combine GA with other optimization methods. A GA tends to be
quite good at finding generally good global solutions, but quite inefficient at finding the last few
mutations to find the absolute optimum. Other techniques (such as simple hill climbing) are quite
efficient at finding absolute optimum in a limited region. Alternating GA and hill climbing can
improve the efficiency of GA while overcoming the lack of robustness of hill climbing.
This means that the rules of genetic variation may have a different meaning in the natural case. For
instance – provided that steps are stored in consecutive order – crossing over may sum a number
of steps from maternal DNA adding a number of steps from paternal DNA and so on. This is like
adding vectors that more probably may follow a ridge in the phenotypic landscape. Thus, the
efficiency of the process may be increased by many orders of magnitude. Moreover, the inversion
operator has the opportunity to place steps in consecutive order or any other suitable order in
favour of survival or efficiency.[22]
A variation, where the population as a whole is evolved rather than its individual members, is known
as gene pool recombination.
Problem domains
Problems which appear to be particularly appropriate for solution by genetic algorithms include
timetabling and scheduling problems, and many scheduling software packages are based on GAs.
GAs have also been applied to engineering.[26] Genetic algorithms are often applied as an approach
to solve global optimization problems.
As a general rule of thumb genetic algorithms might be useful in problem domains that have a
complex fitness landscape as mixing, i.e., mutation in combination with crossover, is designed to
move the population away from local optima that a traditional hill climbing algorithm might get
stuck in. Observe that commonly used crossover operators cannot change any uniform population.
Mutation alone can provide ergodicity of the overall genetic algorithm process (seen as a Markov
chain).
Examples of problems solved by genetic algorithms include: mirrors designed to funnel sunlight to
a solar collector,[27] antennae designed to pick up radio signals in space,[28] walking methods for
computer figures,[29] optimal design of aerodynamic bodies in complex flowfields[30]
In his Algorithm Design Manual, Skiena advises against genetic algorithms for any task:
[...]
— Steven Skiena[31]: 267
History
In 1950, Alan Turing proposed a "learning machine" which would parallel the principles of
evolution.[32] Computer simulation of evolution started as early as in 1954 with the work of Nils Aall
Barricelli, who was using the computer at the Institute for Advanced Study in Princeton, New
Jersey.[33][34] His 1954 publication was not widely noticed. Starting in 1957,[35] the Australian
quantitative geneticist Alex Fraser published a series of papers on simulation of artificial selection
of organisms with multiple loci controlling a measurable trait. From these beginnings, computer
simulation of evolution by biologists became more common in the early 1960s, and the methods
were described in books by Fraser and Burnell (1970)[36] and Crosby (1973).[37] Fraser's simulations
included all of the essential elements of modern genetic algorithms. In addition, Hans-Joachim
Bremermann published a series of papers in the 1960s that also adopted a population of solution to
optimization problems, undergoing recombination, mutation, and selection. Bremermann's research
also included the elements of modern genetic algorithms.[38] Other noteworthy early pioneers
include Richard Friedberg, George Friedman, and Michael Conrad. Many early papers are reprinted
by Fogel (1998).[39]
Although Barricelli, in work he reported in 1963, had simulated the evolution of ability to play a
simple game,[40] artificial evolution only became a widely recognized optimization method as a
result of the work of Ingo Rechenberg and Hans-Paul Schwefel in the 1960s and early 1970s –
Rechenberg's group was able to solve complex engineering problems through evolution
strategies.[41][42][43][44] Another approach was the evolutionary programming technique of Lawrence
J. Fogel, which was proposed for generating artificial intelligence. Evolutionary programming
originally used finite state machines for predicting environments, and used variation and selection
to optimize the predictive logics. Genetic algorithms in particular became popular through the work
of John Holland in the early 1970s, and particularly his book Adaptation in Natural and Artificial
Systems (1975). His work originated with studies of cellular automata, conducted by Holland and
his students at the University of Michigan. Holland introduced a formalized framework for
predicting the quality of the next generation, known as Holland's Schema Theorem. Research in GAs
remained largely theoretical until the mid-1980s, when The First International Conference on
Genetic Algorithms was held in Pittsburgh, Pennsylvania.
Commercial products
In the late 1980s, General Electric started selling the world's first genetic algorithm product, a
mainframe-based toolkit designed for industrial processes.[45] In 1989, Axcelis, Inc. released
Evolver, the world's first commercial GA product for desktop computers. The New York Times
technology writer John Markoff wrote[46] about Evolver in 1990, and it remained the only interactive
commercial genetic algorithm until 1995.[47] Evolver was sold to Palisade in 1997, translated into
several languages, and is currently in its 6th version.[48] Since the 1990s, MATLAB has built in three
derivative-free optimization heuristic algorithms (simulated annealing, particle swarm optimization,
genetic algorithm) and two direct search algorithms (simplex search, pattern search).[49]
Related techniques
Parent fields
Evolutionary algorithms
Evolutionary computing
Metaheuristics
Stochastic optimization
Optimization
Related fields
Evolutionary algorithms
Evolution strategies (ES, see Rechenberg, 1994) evolve individuals by means of mutation and
intermediate or discrete recombination. ES algorithms are designed particularly to solve
problems in the real-value domain.[50] They use self-adaptation to adjust control parameters of
the search. De-randomization of self-adaptation has led to the contemporary Covariance Matrix
Adaptation Evolution Strategy (CMA-ES).
Evolutionary programming (EP) involves populations of solutions with primarily mutation and
selection and arbitrary representations. They use self-adaptation to adjust parameters, and can
include other variation operations such as combining information from multiple parents.
Estimation of Distribution Algorithm (EDA) substitutes traditional reproduction operators by
model-guided operators. Such models are learned from the population by employing machine
learning techniques and represented as Probabilistic Graphical Models, from which new solutions
can be sampled[51][52] or generated from guided-crossover.[53]
Genetic programming (GP) is a related technique popularized by John Koza in which computer
programs, rather than function parameters, are optimized. Genetic programming often uses tree-
based internal data structures to represent the computer programs for adaptation instead of the
list structures typical of genetic algorithms. There are many variants of Genetic Programming,
including Cartesian genetic programming, Gene expression programming,[54] Grammatical
Evolution, Linear genetic programming, Multi expression programming etc.
Grouping genetic algorithm (GGA) is an evolution of the GA where the focus is shifted from
individual items, like in classical GAs, to groups or subset of items.[55] The idea behind this GA
evolution proposed by Emanuel Falkenauer is that solving some complex problems, a.k.a.
clustering or partitioning problems where a set of items must be split into disjoint group of items
in an optimal way, would better be achieved by making characteristics of the groups of items
equivalent to genes. These kind of problems include bin packing, line balancing, clustering with
respect to a distance measure, equal piles, etc., on which classic GAs proved to perform poorly.
Making genes equivalent to groups implies chromosomes that are in general of variable length,
and special genetic operators that manipulate whole groups of items. For bin packing in
particular, a GGA hybridized with the Dominance Criterion of Martello and Toth, is arguably the
best technique to date.
Interactive evolutionary algorithms are evolutionary algorithms that use human evaluation. They
are usually applied to domains where it is hard to design a computational fitness function, for
example, evolving images, music, artistic designs and forms to fit users' aesthetic preference.
Swarm intelligence
Ant colony optimization (ACO) uses many ants (or agents) equipped with a pheromone model to
traverse the solution space and find locally productive areas.
Memetic algorithm (MA), often called hybrid genetic algorithm among others, is a population-
based method in which solutions are also subject to local improvement phases. The idea of
memetic algorithms comes from memes, which unlike genes, can adapt themselves. In some
problem areas they are shown to be more efficient than traditional evolutionary algorithms.
Cultural algorithm (CA) consists of the population component almost identical to that of the
genetic algorithm and, in addition, a knowledge component called the belief space.
Gaussian adaptation (normal or natural adaptation, abbreviated NA to avoid confusion with GA) is
intended for the maximisation of manufacturing yield of signal processing systems. It may also
be used for ordinary parametric optimisation. It relies on a certain theorem valid for all regions of
acceptability and all Gaussian distributions. The efficiency of NA relies on information theory and
a certain theorem of efficiency. Its efficiency is defined as information divided by the work needed
to get the information.[60] Because NA maximises mean fitness rather than the fitness of the
individual, the landscape is smoothed such that valleys between peaks may disappear. Therefore
it has a certain "ambition" to avoid local peaks in the fitness landscape. NA is also good at
climbing sharp crests by adaptation of the moment matrix, because NA may maximise the
disorder (average information) of the Gaussian simultaneously keeping the mean fitness
constant.
Other metaheuristic methods
Simulated annealing (SA) is a related global optimization technique that traverses the search
space by testing random mutations on an individual solution. A mutation that increases fitness is
always accepted. A mutation that lowers fitness is accepted probabilistically based on the
difference in fitness and a decreasing temperature parameter. In SA parlance, one speaks of
seeking the lowest energy instead of the maximum fitness. SA can also be used within a standard
GA algorithm by starting with a relatively high rate of mutation and decreasing it over time along a
given schedule.
Tabu search (TS) is similar to simulated annealing in that both traverse the solution space by
testing mutations of an individual solution. While simulated annealing generates only one
mutated solution, tabu search generates many mutated solutions and moves to the solution with
the lowest energy of those generated. In order to prevent cycling and encourage greater
movement through the solution space, a tabu list is maintained of partial or complete solutions. It
is forbidden to move to a solution that contains elements of the tabu list, which is updated as the
solution traverses the solution space.
Extremal optimization (EO) Unlike GAs, which work with a population of candidate solutions, EO
evolves a single solution and makes local modifications to the worst components. This requires
that a suitable representation be selected which permits individual solution components to be
assigned a quality measure ("fitness"). The governing principle behind this algorithm is that of
emergent improvement through selectively removing low-quality components and replacing them
with a randomly selected component. This is decidedly at odds with a GA that selects good
solutions in an attempt to make better solutions.
Other stochastic optimisation methods
The cross-entropy (CE) method generates candidate solutions via a parameterized probability
distribution. The parameters are updated via cross-entropy minimization, so as to generate better
samples in the next iteration.
Reactive search optimization (RSO) advocates the integration of sub-symbolic machine learning
techniques into search heuristics for solving complex optimization problems. The word reactive
hints at a ready response to events during the search through an internal online feedback loop for
the self-tuning of critical parameters. Methodologies of interest for Reactive Search include
machine learning and statistics, in particular reinforcement learning, active or query learning,
neural networks, and metaheuristics.
See also
Genetic programming
Universal Darwinism
Metaheuristics
References
2. Gerges, Firas; Zouein, Germain; Azar, Danielle (12 March 2018). "Genetic Algorithms with Local Optima
Handling to Solve Sudoku Puzzles" (https://doi.org/10.1145/3194452.3194463) . Proceedings of the
2018 International Conference on Computing and Artificial Intelligence. ICCAI 2018. New York, NY, USA:
Association for Computing Machinery: 19–22. doi:10.1145/3194452.3194463 (https://doi.org/10.1145%2
F3194452.3194463) . ISBN 978-1-4503-6419-5. S2CID 44152535 (https://api.semanticscholar.org/Corpu
sID:44152535) .
4. Eiben, A. E. et al (1994). "Genetic algorithms with multi-parent recombination". PPSN III: Proceedings of
the International Conference on Evolutionary Computation. The Third Conference on Parallel Problem
Solving from Nature: 78–87. ISBN 3-540-58484-6.
5. Ting, Chuan-Kang (2005). "On the Mean Convergence Time of Multi-parent Genetic Algorithms Without
Selection". Advances in Artificial Life: 403–412. ISBN 978-3-540-28848-0.
6. Deb, Kalyanmoy; Spears, William M. (1997). "C6.2: Speciation methods". Handbook of Evolutionary
Computation. Institute of Physics Publishing. S2CID 3547258 (https://api.semanticscholar.org/CorpusID:3
547258) .
7. Shir, Ofer M. (2012). "Niching in Evolutionary Algorithms". In Rozenberg, Grzegorz; Bäck, Thomas; Kok,
Joost N. (eds.). Handbook of Natural Computing. Springer Berlin Heidelberg. pp. 1035–1069.
doi:10.1007/978-3-540-92910-9_32 (https://doi.org/10.1007%2F978-3-540-92910-9_32) .
ISBN 9783540929093.
9. Harik, Georges R.; Lobo, Fernando G.; Sastry, Kumara (1 January 2006). Linkage Learning via Probabilistic
Modeling in the Extended Compact Genetic Algorithm (ECGA). Scalable Optimization Via Probabilistic
Modeling. Studies in Computational Intelligence. Vol. 33. pp. 39–61. doi:10.1007/978-3-540-34954-9_3 (ht
tps://doi.org/10.1007%2F978-3-540-34954-9_3) . ISBN 978-3-540-34953-2.
10. Pelikan, Martin; Goldberg, David E.; Cantú-Paz, Erick (1 January 1999). BOA: The Bayesian Optimization
Algorithm (http://dl.acm.org/citation.cfm?id=2933973) . Proceedings of the 1st Annual Conference on
Genetic and Evolutionary Computation - Volume 1. Gecco'99. pp. 525–532. ISBN 9781558606111.
11. Coffin, David; Smith, Robert E. (1 January 2008). Linkage Learning in Estimation of Distribution Algorithms.
Linkage in Evolutionary Computation. Studies in Computational Intelligence. Vol. 157. pp. 141–156.
doi:10.1007/978-3-540-85068-7_7 (https://doi.org/10.1007%2F978-3-540-85068-7_7) . ISBN 978-3-540-
85067-0.
12. Echegoyen, Carlos; Mendiburu, Alexander; Santana, Roberto; Lozano, Jose A. (8 November 2012). "On the
Taxonomy of Optimization Problems Under Estimation of Distribution Algorithms". Evolutionary
Computation. 21 (3): 471–495. doi:10.1162/EVCO_a_00095 (https://doi.org/10.1162%2FEVCO_a_0009
5) . ISSN 1063-6560 (https://www.worldcat.org/issn/1063-6560) . PMID 23136917 (https://pubmed.nc
bi.nlm.nih.gov/23136917) . S2CID 26585053 (https://api.semanticscholar.org/CorpusID:26585053) .
13. Sadowski, Krzysztof L.; Bosman, Peter A.N.; Thierens, Dirk (1 January 2013). On the Usefulness of Linkage
Processing for Solving MAX-SAT. Proceedings of the 15th Annual Conference on Genetic and Evolutionary
Computation. Gecco '13. pp. 853–860. doi:10.1145/2463372.2463474 (https://doi.org/10.1145%2F24633
72.2463474) . hdl:1874/290291 (https://hdl.handle.net/1874%2F290291) . ISBN 9781450319638.
S2CID 9986768 (https://api.semanticscholar.org/CorpusID:9986768) .
14. Taherdangkoo, Mohammad; Paziresh, Mahsa; Yazdi, Mehran; Bagheri, Mohammad Hadi (19 November
2012). "An efficient algorithm for function optimization: modified stem cells algorithm" (https://doi.org/10.
2478%2Fs13531-012-0047-8) . Central European Journal of Engineering. 3 (1): 36–50.
doi:10.2478/s13531-012-0047-8 (https://doi.org/10.2478%2Fs13531-012-0047-8) .
15. Wolpert, D.H., Macready, W.G., 1995. No Free Lunch Theorems for Optimisation. Santa Fe Institute, SFI-TR-
05-010, Santa Fe.
16. Goldberg, David E. (1991). "The theory of virtual alphabets". Parallel Problem Solving from Nature. Parallel
Problem Solving from Nature, Lecture Notes in Computer Science. Lecture Notes in Computer Science.
Vol. 496. pp. 13–22. doi:10.1007/BFb0029726 (https://doi.org/10.1007%2FBFb0029726) . ISBN 978-3-
540-54148-6.
17. Janikow, C. Z.; Michalewicz, Z. (1991). "An Experimental Comparison of Binary and Floating Point
Representations in Genetic Algorithms" (http://www.cs.umsl.edu/~janikow/publications/1991/GAbin/te
xt.pdf) (PDF). Proceedings of the Fourth International Conference on Genetic Algorithms: 31–36.
Retrieved 2 July 2013.
18. Patrascu, M.; Stancu, A.F.; Pop, F. (2014). "HELGA: a heterogeneous encoding lifelike genetic algorithm for
population evolution modeling and simulation". Soft Computing. 18 (12): 2565–2576.
doi:10.1007/s00500-014-1401-y (https://doi.org/10.1007%2Fs00500-014-1401-y) . S2CID 29821873 (htt
ps://api.semanticscholar.org/CorpusID:29821873) .
19. Baluja, Shumeet; Caruana, Rich (1995). Removing the genetics from the standard genetic algorithm (http://
www.ri.cmu.edu/pub_files/pub2/baluja_shumeet_1995_1/baluja_shumeet_1995_1.pdf) (PDF). ICML.
20. Srinivas, M.; Patnaik, L. (1994). "Adaptive probabilities of crossover and mutation in genetic algorithms" (h
ttp://eprints.iisc.ac.in/6971/2/adaptive.pdf) (PDF). IEEE Transactions on System, Man and Cybernetics.
24 (4): 656–667. doi:10.1109/21.286385 (https://doi.org/10.1109%2F21.286385) .
21. Zhang, J.; Chung, H.; Lo, W. L. (2007). "Clustering-Based Adaptive Crossover and Mutation Probabilities for
Genetic Algorithms". IEEE Transactions on Evolutionary Computation. 11 (3): 326–335.
doi:10.1109/TEVC.2006.880727 (https://doi.org/10.1109%2FTEVC.2006.880727) . S2CID 2625150 (http
s://api.semanticscholar.org/CorpusID:2625150) .
23. Goldberg, D. E.; Korb, B.; Deb, K. (1989). "Messy Genetic Algorithms : Motivation Analysis, and First
Results" (http://www.complex-systems.com/issues/03-5.html) . Complex Systems. 5 (3): 493–530.
25. Harik, G. (1997). Learning linkage to efficiently solve problems of bounded difficulty using genetic algorithms
(http://portal.acm.org/citation.cfm?id=269517) (PhD). Dept. Computer Science, University of Michigan,
Ann Arbour.
27. Gross, Bill. "A solar energy system that tracks the sun" (https://www.ted.com/talks/bill_gross_a_solar_ene
rgy_system_that_tracks_the_sun) . TED. Retrieved 20 November 2013.
28. Hornby, G. S.; Linden, D. S.; Lohn, J. D., Automated Antenna Design with Evolutionary Algorithms (http://ti.ar
c.nasa.gov/m/pub-archive/1244h/1244%20(Hornby).pdf) (PDF)
30. Evans, B.; Walton, S.P. (December 2017). "Aerodynamic optimisation of a hypersonic reentry vehicle based
on solution of the Boltzmann–BGK equation and evolutionary optimisation" (https://cronfa.swan.ac.uk/Re
cord/cronfa34688) . Applied Mathematical Modelling. 52: 215–240. doi:10.1016/j.apm.2017.07.024 (http
s://doi.org/10.1016%2Fj.apm.2017.07.024) . ISSN 0307-904X (https://www.worldcat.org/issn/0307-90
4X) .
31. Skiena, Steven (2010). The Algorithm Design Manual (2nd ed.). Springer Science+Business Media.
ISBN 978-1-849-96720-4.
32. Turing, Alan M. (October 1950). "Computing machinery and intelligence". Mind. LIX (238): 433–460.
doi:10.1093/mind/LIX.236.433 (https://doi.org/10.1093%2Fmind%2FLIX.236.433) .
33. Barricelli, Nils Aall (1954). "Esempi numerici di processi di evoluzione". Methodos: 45–68.
34. Barricelli, Nils Aall (1957). "Symbiogenetic evolution processes realized by artificial methods". Methodos:
143–182.
35. Fraser, Alex (1957). "Simulation of genetic systems by automatic digital computers. I. Introduction" (http
s://doi.org/10.1071%2FBI9570484) . Aust. J. Biol. Sci. 10 (4): 484–491. doi:10.1071/BI9570484 (https://
doi.org/10.1071%2FBI9570484) .
36. Fraser, Alex; Burnell, Donald (1970). Computer Models in Genetics. New York: McGraw-Hill. ISBN 978-0-07-
021904-5.
37. Crosby, Jack L. (1973). Computer Simulation in Genetics. London: John Wiley & Sons. ISBN 978-0-471-
18880-3.
38. 02.27.96 - UC Berkeley's Hans Bremermann, professor emeritus and pioneer in mathematical biology, has
died at 69 (http://berkeley.edu/news/media/releases/96legacy/releases.96/14319.html)
39. Fogel, David B., ed. (1998). Evolutionary Computation: The Fossil Record. New York: IEEE Press. ISBN 978-
0-7803-3481-6.
40. Barricelli, Nils Aall (1963). "Numerical testing of evolution theories. Part II. Preliminary tests of
performance, symbiogenesis and terrestrial life". Acta Biotheoretica. 16 (3–4): 99–126.
doi:10.1007/BF01556602 (https://doi.org/10.1007%2FBF01556602) . S2CID 86717105 (https://api.sem
anticscholar.org/CorpusID:86717105) .
42. Schwefel, Hans-Paul (1974). Numerische Optimierung von Computer-Modellen (PhD thesis).
43. Schwefel, Hans-Paul (1977). Numerische Optimierung von Computor-Modellen mittels der
Evolutionsstrategie : mit einer vergleichenden Einführung in die Hill-Climbing- und Zufallsstrategie. Basel;
Stuttgart: Birkhäuser. ISBN 978-3-7643-0876-6.
44. Schwefel, Hans-Paul (1981). Numerical optimization of computer models (Translation of 1977 Numerische
Optimierung von Computor-Modellen mittels der Evolutionsstrategie. Chichester ; New York: Wiley.
ISBN 978-0-471-09988-8.
45. Aldawoodi, Namir (2008). An Approach to Designing an Unmanned Helicopter Autopilot Using Genetic
Algorithms and Simulated Annealing (https://books.google.com/books?id=-MszVdu_PAMC&q=general+ele
ctric+genetic+algorithm+mainframe) . p. 99. ISBN 978-0549773498 – via Google Books.
46. Markoff, John (29 August 1990). "What's the Best Answer? It's Survival of the Fittest" (https://www.nytime
s.com/1990/08/29/business/business-technology-what-s-the-best-answer-it-s-survival-of-the-fittest.ht
ml) . New York Times. Retrieved 13 July 2016.
47. Ruggiero, Murray A.. (1 August 2009) Fifteen years and counting (http://www.futuresmag.com/2009/08/0
1/fifteen-years-and-counting?t=technology&page=2) Archived (https://web.archive.org/web/201601300
54823/http://www.futuresmag.com/2009/08/01/fifteen-years-and-counting?t=technology&page=2) 30
January 2016 at the Wayback Machine. Futuresmag.com. Retrieved on 2013-08-07.
49. Benchmarks for Evaluating Optimization Algorithms and Benchmarking MATLAB Derivative-Free
Optimizers for Practitioners’Rapid Access (https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8
736798&tag=1) , IEEE Access, vol.7, 2019.
50. Cohoon, J; et al. (2002). Evolutionary algorithms for the physical design of VLSI circuits (https://www.ifte.d
e/mitarbeiter/lienig/cohoon.pdf) (PDF). Advances in Evolutionary Computing: Theory and Applications.
Springer, pp. 683-712, 2003. ISBN 978-3-540-43330-9.
51. Pelikan, Martin; Goldberg, David E.; Cantú-Paz, Erick (1 January 1999). BOA: The Bayesian Optimization
Algorithm (http://dl.acm.org/citation.cfm?id=2933973) . Proceedings of the 1st Annual Conference on
Genetic and Evolutionary Computation - Volume 1. Gecco'99. pp. 525–532. ISBN 9781558606111.
52. Pelikan, Martin (2005). Hierarchical Bayesian optimization algorithm : toward a new generation of
evolutionary algorithms (1st ed.). Berlin [u.a.]: Springer. ISBN 978-3-540-23774-7.
53. Thierens, Dirk (11 September 2010). "The Linkage Tree Genetic Algorithm". Parallel Problem Solving from
Nature, PPSN XI. pp. 264–273. doi:10.1007/978-3-642-15844-5_27 (https://doi.org/10.1007%2F978-3-642-
15844-5_27) . ISBN 978-3-642-15843-8. {{cite book}}: Missing or empty |title= (help)
54. Ferreira, C. "Gene Expression Programming: A New Adaptive Algorithm for Solving Problems" (http://www.
gene-expression-programming.com/webpapers/GEP.pdf) (PDF). Complex Systems, Vol. 13, issue 2: 87-
129.
55. Falkenauer, Emanuel (1997). Genetic Algorithms and Grouping Problems. Chichester, England: John Wiley &
Sons Ltd. ISBN 978-0-471-97150-4.
56. Zlochin, Mark; Birattari, Mauro; Meuleau, Nicolas; Dorigo, Marco (1 October 2004). "Model-Based Search
for Combinatorial Optimization: A Critical Survey". Annals of Operations Research. 131 (1–4): 373–395.
CiteSeerX 10.1.1.3.427 (https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.427) .
doi:10.1023/B:ANOR.0000039526.52305.af (https://doi.org/10.1023%2FB%3AANOR.0000039526.5230
5.af) . ISSN 0254-5330 (https://www.worldcat.org/issn/0254-5330) . S2CID 63137 (https://api.semanti
cscholar.org/CorpusID:63137) .
59. Civicioglu, P. (2012). "Transforming Geocentric Cartesian Coordinates to Geodetic Coordinates by Using
Differential Search Algorithm". Computers &Geosciences. 46: 229–247. Bibcode:2012CG.....46..229C (http
s://ui.adsabs.harvard.edu/abs/2012CG.....46..229C) . doi:10.1016/j.cageo.2011.12.011 (https://doi.org/
10.1016%2Fj.cageo.2011.12.011) .
60. Kjellström, G. (December 1991). "On the Efficiency of Gaussian Adaptation". Journal of Optimization
Theory and Applications. 71 (3): 589–597. doi:10.1007/BF00941405 (https://doi.org/10.1007%2FBF009
41405) . S2CID 116847975 (https://api.semanticscholar.org/CorpusID:116847975) .
Bibliography
Banzhaf, Wolfgang; Nordin, Peter; Keller, Robert; Francone, Frank (1998). Genetic Programming – An
Introduction (https://archive.org/details/geneticprogrammi00wolf) . San Francisco, CA: Morgan Kaufmann.
ISBN 978-1558605107.
Bies, Robert R.; Muldoon, Matthew F.; Pollock, Bruce G.; Manuck, Steven; Smith, Gwenn; Sale, Mark E. (2006).
"A Genetic Algorithm-Based, Hybrid Machine Learning Approach to Model Selection". Journal of
Pharmacokinetics and Pharmacodynamics. 33 (2): 196–221. doi:10.1007/s10928-006-9004-6 (https://doi.or
g/10.1007%2Fs10928-006-9004-6) . PMID 16565924 (https://pubmed.ncbi.nlm.nih.gov/16565924) .
S2CID 39571129 (https://api.semanticscholar.org/CorpusID:39571129) .
Cha, Sung-Hyuk; Tappert, Charles C. (2009). "A Genetic Algorithm for Constructing Compact Binary Decision
Trees". Journal of Pattern Recognition Research. 4 (1): 1–13. CiteSeerX 10.1.1.154.8314 (https://citeseerx.ist.
psu.edu/viewdoc/summary?doi=10.1.1.154.8314) . doi:10.13176/11.44 (https://doi.org/10.13176%2F11.
44) .
Eiben, Agoston; Smith, James (2003). Introduction to Evolutionary Computing. Springer. ISBN 978-
3540401841.
Fraser, Alex S. (1957). "Simulation of Genetic Systems by Automatic Digital Computers. I. Introduction" (http
s://doi.org/10.1071%2FBI9570484) . Australian Journal of Biological Sciences. 10 (4): 484–491.
doi:10.1071/BI9570484 (https://doi.org/10.1071%2FBI9570484) .
Goldberg, David (1989). Genetic Algorithms in Search, Optimization and Machine Learning. Reading, MA:
Addison-Wesley Professional. ISBN 978-0201157673.
Goldberg, David (2002). The Design of Innovation: Lessons from and for Competent Genetic Algorithms.
Norwell, MA: Kluwer Academic Publishers. ISBN 978-1402070983.
Fogel, David (2006). Evolutionary Computation: Toward a New Philosophy of Machine Intelligence (3rd ed.).
Piscataway, NJ: IEEE Press. ISBN 978-0471669517.
Hingston, Philip; Barone, Luigi; Michalewicz, Zbigniew (2008). Design by Evolution: Advances in Evolutionary
Design. Springer. ISBN 978-3540741091.
Koza, John (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection.
Cambridge, MA: MIT Press. ISBN 978-0262111706.
Michalewicz, Zbigniew (1996). Genetic Algorithms + Data Structures = Evolution Programs. Springer-Verlag.
ISBN 978-3540606765.
Mitchell, Melanie (1996). An Introduction to Genetic Algorithms. Cambridge, MA: MIT Press.
ISBN 9780585030944.
Poli, R.; Langdon, W. B.; McPhee, N. F. (2008). A Field Guide to Genetic Programming. Lulu.com, freely
available from the internet. ISBN 978-1-4092-0073-4.
Schmitt, Lothar M.; Nehaniv, Chrystopher L.; Fujii, Robert H. (1998). "Linear analysis of genetic algorithms" (ht
tps://www.sciencedirect.com/science/article/pii/S0304397598000048/pdf?md5=28a658a4dc5aef635bbf3c
8560129925&pid=1-s2.0-S0304397598000048-main.pdf&_valck=1) . Theoretical Computer Science. 208:
111–148.
Schmitt, Lothar M. (2004). "Theory of Genetic Algorithms II: models for genetic operators over the string-
tensor representation of populations and convergence to global optima for arbitrary fitness function under
scaling" (https://doi.org/10.1016%2FS0304-3975%2803%2900393-1) . Theoretical Computer Science. 310
(1–3): 181–231. doi:10.1016/S0304-3975(03)00393-1 (https://doi.org/10.1016%2FS0304-3975%2803%2900
393-1) .
Schwefel, Hans-Paul (1974): Numerische Optimierung von Computer-Modellen (PhD thesis). Reprinted by
Birkhäuser (1977).
Vose, Michael (1999). The Simple Genetic Algorithm: Foundations and Theory (https://archive.org/details/The
SimpleG_00_Vose) . Cambridge, MA: MIT Press. ISBN 978-0262220583.
External links
Resources
[1] (https://web.archive.org/web/20160303215222/http://www.geneticprogramming.com/ga/ind
ex.htm) Provides a list of resources in the genetic algorithms field
Tutorials
Genetic Algorithms - Computer programs that "evolve" in ways that resemble natural selection
can solve complex problems even their creators do not fully understand (https://www2.econ.iasta
te.edu/tesfatsi/holland.gaintro.htm) An excellent introduction to GA by John Holland and with
an application to the Prisoner's Dilemma
An online interactive Genetic Algorithm tutorial for a reader to practise or learn how a GA works (h
ttp://www.i4ai.org/EA-demo/) : Learn step by step or watch global convergence in batch, change
the population size, crossover rates/bounds, mutation rates/bounds and selection mechanisms,
and add constraints.
A Genetic Algorithm Tutorial by Darrell Whitley Computer Science Department Colorado State
University (https://web.archive.org/web/20130615042000/http://samizdat.mines.edu/ga_tutoria
l/ga_tutorial.ps) An excellent tutorial with much theory