Genetic algorithm explained

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. Some examples of GA applications include optimizing decision trees for better performance, solving sudoku puzzles,[1] hyperparameter optimization, causal inference,[2] etc.

Methodology

Optimization problems

In a genetic algorithm, a population of candidate solutions (called individuals, creatures, organisms, or phenotypes) to an optimization problem is evolved toward better solutions. Each candidate solution has a set of properties (its chromosomes or genotype) which can be mutated and altered; traditionally, solutions are represented in binary as strings of 0s and 1s, but other encodings are also possible.

The evolution usually starts from a population of randomly generated individuals, and is an iterative process, with the population in each iteration called a generation. In each generation, the fitness of every individual in the population is evaluated; the fitness is usually the value of the objective function in the optimization problem being solved. The more fit individuals are stochastically selected from the current population, and each individual's genome is modified (recombined and possibly randomly mutated) to form a new generation. The new generation of candidate solutions is then used in the next iteration of the algorithm. Commonly, the algorithm terminates when either a maximum number of generations has been produced, or a satisfactory fitness level has been reached for the population.

A typical genetic algorithm requires:

  1. a genetic representation of the solution domain,
  2. a fitness function to evaluate the solution domain.

A standard representation of each candidate solution is as an array of bits (also called bit set or bit string). 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 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 or the distribution of the sampling probability tuned to focus in those areas of greater interest.[3]

Selection

See main article: Selection (genetic algorithm). During each successive generation, a portion of the existing population is selected to reproduce for 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

See main article: Crossover (genetic algorithm) and Mutation (genetic algorithm).

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 building block hypothesis

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:

  1. A description of a heuristic that performs adaptation by identifying and recombining "building blocks", i.e. low order, low defining-length schemata with above average fitness.
  2. A hypothesis that a genetic algorithm performs adaptation by implicitly and efficiently implementing this heuristic.

Goldberg describes the heuristic as follows:

"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."

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.[8] [9] 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.[10] [11] [12]

Limitations

The practical use of a genetic algorithm has limitations, especially as compared to alternative optimization algorithms:

Variants

Chromosome representation

See main article: genetic 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.[15] [16]

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.[17] 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.[18]

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. Researchers have analyzed GA convergence analytically.[19] [20]

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),[21] the adjustment of pc and pm depends on the fitness values of the solutions. There are more examples of AGA variants: Successive zooming method is an early example of improving convergence.[22] In CAGA (clustering-based adaptive genetic algorithm),[23] 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. Recent approaches use more abstract variables for deciding pc and pm. Examples are dominance & co-dominance principles[24] and LIGA (levelized interpolative genetic algorithm), which combines a flexible GA with modified A* search to tackle search space anisotropicity.[25]

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.[26]

A variation, where the population as a whole is evolved rather than its individual members, is known as gene pool recombination.

A number of variations have been developed to attempt to improve performance of GAs on problems with a high degree of fitness epistasis, i.e. where the fitness of a solution consists of interacting subsets of its variables. Such algorithms aim to learn (before exploiting) these beneficial phenotypic interactions. As such, they are aligned with the Building Block Hypothesis in adaptively reducing disruptive recombination. Prominent examples of this approach include the mGA,[27] GEMGA[28] and LLGA.[29]

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.[30] 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,[31] antennae designed to pick up radio signals in space, walking methods for computer figures,[32] optimal design of aerodynamic bodies in complex flowfields[33]

In his Algorithm Design Manual, Skiena advises against genetic algorithms for any task:

History

In 1950, Alan Turing proposed a "learning machine" which would parallel the principles of evolution.[34] 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.[35] [36] His 1954 publication was not widely noticed. Starting in 1957,[37] 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)[38] and Crosby (1973).[39] 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.[40] Other noteworthy early pioneers include Richard Friedberg, George Friedman, and Michael Conrad. Many early papers are reprinted by Fogel (1998).[41]

Although Barricelli, in work he reported in 1963, had simulated the evolution of ability to play a simple game,[42] 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.[43] [44] [45] [46] 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.[47] 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[48] about Evolver in 1990, and it remained the only interactive commercial genetic algorithm until 1995.[49] Evolver was sold to Palisade in 1997, translated into several languages, and is currently in its 6th version.[50] 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).[51]

Related techniques

See also: List of genetic algorithm applications.

Parent fields

Genetic algorithms are a sub-field:

Related fields

Evolutionary algorithms

See main article: Evolutionary algorithm. Evolutionary algorithms is a sub-field of evolutionary computing.

Swarm intelligence

See main article: Swarm intelligence. Swarm intelligence is a sub-field of evolutionary computing.

Other evolutionary computing algorithms

Evolutionary computation is a sub-field of the metaheuristic methods.

Other metaheuristic methods

Metaheuristic methods broadly fall within stochastic optimisation methods.

Other stochastic optimisation methods

See also

Bibliography

External links

Resources

Tutorials

Notes and References

  1. Book: Gerges. Firas. Zouein. Germain. Azar. Danielle. Proceedings of the 2018 International Conference on Computing and Artificial Intelligence . Genetic Algorithms with Local Optima Handling to Solve Sudoku Puzzles . 2018-03-12. https://doi.org/10.1145/3194452.3194463. ICCAI 2018. New York, NY, USA. Association for Computing Machinery. 19–22. 10.1145/3194452.3194463. 978-1-4503-6419-5. 44152535 .
  2. Burkhart . Michael C. . Ruiz . Gabriel . Neuroevolutionary representations for learning heterogeneous treatment effects . Journal of Computational Science . 2023 . 71 . 102054 . 10.1016/j.jocs.2023.102054 . 258752823 . free .
  3. Luque-Rodriguez . Maria . Molina-Baena . Jose . Jimenez-Vilchez . Alfonso . Arauzo-Azofra . Antonio . Initialization of Feature Selection Search for Classification (sec. 3) . Journal of Artificial Intelligence Research . 2022 . 75 . 953–983 . 10.1613/jair.1.14015 . free .
  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. .
  5. Ting, Chuan-Kang (2005). "On the Mean Convergence Time of Multi-parent Genetic Algorithms Without Selection". Advances in Artificial Life: 403 - 412. .
  6. Book: Handbook of Evolutionary Computation. Deb. Kalyanmoy. Spears. William M.. 3547258. Institute of Physics Publishing. 1997. C6.2: Speciation methods.
  7. Book: Shir, Ofer M.. Handbook of Natural Computing. 2012. Springer Berlin Heidelberg. 9783540929093. Rozenberg. Grzegorz. 1035–1069. en. Niching in Evolutionary Algorithms. 10.1007/978-3-540-92910-9_32. Bäck. Thomas. Kok. Joost N..
  8. Book: Harik. Georges R.. Lobo. Fernando G.. Sastry. Kumara. Scalable Optimization via Probabilistic Modeling . Linkage Learning via Probabilistic Modeling in the Extended Compact Genetic Algorithm (ECGA) . 33. 1 January 2006. 39–61. 10.1007/978-3-540-34954-9_3. en. Studies in Computational Intelligence. 978-3-540-34953-2.
  9. Book: Pelikan. Martin. Goldberg. David E.. Cantú-Paz. Erick. BOA: The Bayesian Optimization Algorithm. Proceedings of the 1st Annual Conference on Genetic and Evolutionary Computation - Volume 1. 1 January 1999. 525–532. 9781558606111. Gecco'99.
  10. Book: Coffin. David. Smith. Robert E.. Linkage in Evolutionary Computation . Linkage Learning in Estimation of Distribution Algorithms . 157. 1 January 2008. 141–156. 10.1007/978-3-540-85068-7_7. en. Studies in Computational Intelligence. 978-3-540-85067-0.
  11. Echegoyen. Carlos. Mendiburu. Alexander. Santana. Roberto. Lozano. Jose A.. On the Taxonomy of Optimization Problems Under Estimation of Distribution Algorithms. Evolutionary Computation. 8 November 2012. 21. 3. 471–495. 10.1162/EVCO_a_00095. 23136917. 26585053. 1063-6560.
  12. Book: Sadowski. Krzysztof L.. Bosman. Peter A.N.. Thierens. Dirk. Proceedings of the 15th annual conference on Genetic and evolutionary computation . On the usefulness of linkage processing for solving MAX-SAT . 1 January 2013. 853–860. 10.1145/2463372.2463474. 9781450319638. Gecco '13. 1874/290291. 9986768.
  13. Taherdangkoo. Mohammad. Paziresh . Mahsa . Yazdi . Mehran . Bagheri . Mohammad Hadi . An efficient algorithm for function optimization: modified stem cells algorithm. Central European Journal of Engineering. 19 November 2012. 3. 1. 36–50. 10.2478/s13531-012-0047-8. free.
  14. Wolpert, D.H., Macready, W.G., 1995. No Free Lunch Theorems for Optimisation. Santa Fe Institute, SFI-TR-05-010, Santa Fe.
  15. Book: Goldberg, David E.. Parallel Problem Solving from Nature. The theory of virtual alphabets. Parallel Problem Solving from Nature, Lecture Notes in Computer Science. 1991. 496. 13–22. 10.1007/BFb0029726. Lecture Notes in Computer Science. 978-3-540-54148-6.
  16. Janikow. C. Z.. Z. . Michalewicz . An Experimental Comparison of Binary and Floating Point Representations in Genetic Algorithms. Proceedings of the Fourth International Conference on Genetic Algorithms. 1991. 31–36. https://ghostarchive.org/archive/20221009/http://www.cs.umsl.edu/~janikow/publications/1991/GAbin/text.pdf . 2022-10-09 . live. 2 July 2013.
  17. Patrascu. M.. Stancu. A.F.. Pop. F.. HELGA: a heterogeneous encoding lifelike genetic algorithm for population evolution modeling and simulation. Soft Computing. 2014. 18. 12. 2565–2576. 10.1007/s00500-014-1401-y. 29821873.
  18. Baluja . Shumeet . Rich . Caruana . Removing the genetics from the standard genetic algorithm . . 1995 . https://ghostarchive.org/archive/20221009/http://www.ri.cmu.edu/pub_files/pub2/baluja_shumeet_1995_1/baluja_shumeet_1995_1.pdf . 2022-10-09 . live.
  19. Stannat . W. . On the convergence of genetic algorithms – a variational approach . Probab. Theory Relat. Fields . 129 . 113–132 . 2004 . 10.1007/s00440-003-0330-y. 121086772 . free .
  20. Sharapov . R.R. . Lapshin . A.V. . Convergence of genetic algorithms . Pattern Recognit. Image Anal. . 16 . 392–397 . 2006 . 3 . 10.1134/S1054661806030084. 22890010 .
  21. Srinivas . M. . Patnaik . L. . Adaptive probabilities of crossover and mutation in genetic algorithms . IEEE Transactions on Systems, Man, and Cybernetics . 24 . 4 . 656–667 . 1994 . 10.1109/21.286385 . https://ghostarchive.org/archive/20221009/http://eprints.iisc.ac.in/6971/2/adaptive.pdf . 2022-10-09 . live .
  22. Kwon . Y.D. . Kwon . S.B. . Jin . S.B. . Kim . J.Y. . Convergence enhanced genetic algorithm with successive zooming method for solving continuous optimization problems . Computers & Structures . 81 . 17 . 1715–1725 . 2003 . 10.1016/S0045-7949(03)00183-4.
  23. Zhang . J. . Chung . H. . Lo, W. L. . Clustering-Based Adaptive Crossover and Mutation Probabilities for Genetic Algorithms . IEEE Transactions on Evolutionary Computation . 11 . 3 . 326 - 335 . 2007 . 10.1109/TEVC.2006.880727 . 2625150 .
  24. Pavai . G. . Geetha . T.V. . New crossover operators using dominance and co-dominance principles for faster convergence of genetic algorithms. Soft Comput . 23 . 3661–3686 . 2019 . 11 . 10.1007/s00500-018-3016-1. 254028984 .
  25. Li . J.C.F. . Zimmerle . D. . Young . P. . Flexible networked rural electrification using levelized interpolative genetic algorithm . Energy & AI . 10 . 100186 . 2022 . 10.1016/j.egyai.2022.100186. 250972466 . free . 2022EneAI..1000186L .
  26. See for instance Evolution-in-a-nutshell or example in travelling salesman problem, in particular the use of an edge recombination operator.
  27. Messy Genetic Algorithms : Motivation Analysis, and First Results . D. E. . Goldberg . B. . Korb . K. . Deb . Complex Systems . 5 . 3 . 493–530 . 1989 .
  28. https://www.osti.gov/servlets/purl/524858 Gene expression: The missing link in evolutionary computation
  29. Harik . G. . 1997 . Learning linkage to efficiently solve problems of bounded difficulty using genetic algorithms . PhD . Dept. Computer Science, University of Michigan, Ann Arbour .
  30. Tomoiagă B, Chindriş M, Sumper A, Sudria-Andreu A, Villafafila-Robles R. Pareto Optimal Reconfiguration of Power Distribution Systems Using a Genetic Algorithm Based on NSGA-II. Energies. 2013; 6(3):1439-1455.
  31. Web site: Gross. Bill. A solar energy system that tracks the sun. TED. 2 February 2009 . 20 November 2013.
  32. Web site: Flexible Muscle-Based Locomotion for Bipedal Creatures.
  33. 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. Applied Mathematical Modelling. 52. 215–240. 10.1016/j.apm.2017.07.024. 0307-904X. free.
  34. Turing. Alan M.. Computing machinery and intelligence. Mind. LIX. 238. 433–460. 10.1093/mind/LIX.236.433. October 1950.
  35. Barricelli. Nils Aall. 1954. Nils Aall Barricelli. Esempi numerici di processi di evoluzione. Methodos. 45–68.
  36. Barricelli. Nils Aall. 1957. Nils Aall Barricelli. Symbiogenetic evolution processes realized by artificial methods. Methodos. 143–182.
  37. Fraser. Alex. Alex Fraser (scientist). 1957. Simulation of genetic systems by automatic digital computers. I. Introduction. Aust. J. Biol. Sci.. 10. 4. 484–491. 10.1071/BI9570484. free.
  38. Book: Fraser. Alex. Alex Fraser (scientist). Donald . Burnell. 1970. Computer Models in Genetics. McGraw-Hill. New York. 978-0-07-021904-5.
  39. Book: Crosby, Jack L.. 1973. Computer Simulation in Genetics. John Wiley & Sons. London. 978-0-471-18880-3.
  40. http://berkeley.edu/news/media/releases/96legacy/releases.96/14319.html 02.27.96 - UC Berkeley's Hans Bremermann, professor emeritus and pioneer in mathematical biology, has died at 69
  41. Book: Fogel. David B. . 1998. Evolutionary Computation: The Fossil Record. IEEE Press. New York. 978-0-7803-3481-6.
  42. 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. 10.1007/BF01556602. 86717105.
  43. Book: Rechenberg, Ingo. 1973. Evolutionsstrategie. Stuttgart. Holzmann-Froboog. 978-3-7728-0373-4.
  44. Book: Schwefel, Hans-Paul. 1974. Numerische Optimierung von Computer-Modellen (PhD thesis).
  45. Book: 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. 978-3-7643-0876-6.
  46. Book: Schwefel, Hans-Paul. 1981. Numerical optimization of computer models (Translation of 1977 Numerische Optimierung von Computor-Modellen mittels der Evolutionsstrategie. Chichester; New York. Wiley. 978-0-471-09988-8.
  47. Book: Aldawoodi, Namir. An Approach to Designing an Unmanned Helicopter Autopilot Using Genetic Algorithms and Simulated Annealing. 2008. 978-0549773498. 99. Google Books.
  48. News: Markoff. John. What's the Best Answer? It's Survival of the Fittest. New York Times. 2016-07-13. 29 August 1990.
  49. Ruggiero, Murray A.. (1 August 2009) Fifteen years and counting . Futuresmag.com. Retrieved on 2013-08-07.
  50. http://www.palisade.com/evolver/ Evolver: Sophisticated Optimization for Spreadsheets
  51. 10.1109/ACCESS.2019.2923092 . Benchmarks for Evaluating Optimization Algorithms and Benchmarking MATLAB Derivative-Free Optimizers for Practitioners' Rapid Access . 2019 . Li . Lin . Saldivar . Alfredo Alan Flores . Bai . Yun . Chen . Yi . Liu . Qunfeng . Li . Yun . IEEE Access . 7 . 79657–79670 . 195774435 . free . 2019IEEEA...779657L .
  52. Book: Cohoon, J. etal. Evolutionary algorithms for the physical design of VLSI circuits. https://ghostarchive.org/archive/20221009/https://www.ifte.de/mitarbeiter/lienig/cohoon.pdf . 2022-10-09 . live. Advances in Evolutionary Computing: Theory and Applications. Springer, pp. 683-712, 2003. 978-3-540-43330-9. 2002.
  53. Book: Pelikan. Martin. Goldberg. David E.. Cantú-Paz. Erick. BOA: The Bayesian Optimization Algorithm. Proceedings of the 1st Annual Conference on Genetic and Evolutionary Computation - Volume 1. 1 January 1999. 525–532. 9781558606111. Gecco'99.
  54. Book: Pelikan. Martin. Hierarchical Bayesian optimization algorithm : toward a new generation of evolutionary algorithms. 2005. Springer. Berlin [u.a.]. 978-3-540-23774-7. 1st.
  55. Book: Thierens. Dirk. Parallel Problem Solving from Nature, PPSN XI . The Linkage Tree Genetic Algorithm. 11 September 2010. 264–273. 10.1007/978-3-642-15844-5_27. en. 978-3-642-15843-8.
  56. Ferreira. C. Gene Expression Programming: A New Adaptive Algorithm for Solving Problems. https://ghostarchive.org/archive/20221009/http://www.gene-expression-programming.com/webpapers/GEP.pdf . 2022-10-09 . live. Complex Systems . 2001. 13 . 2 . 87–129. cs/0102027. 2001cs........2027F.
  57. Book: Falkenauer, Emanuel. Emanuel Falkenauer. 1997. Genetic Algorithms and Grouping Problems. John Wiley & Sons Ltd. Chichester, England. 978-0-471-97150-4.
  58. Zlochin. Mark. Birattari. Mauro. Meuleau. Nicolas. Dorigo. Marco. Model-Based Search for Combinatorial Optimization: A Critical Survey. Annals of Operations Research. 1 October 2004. 131. 1–4. 373–395. 10.1023/B:ANOR.0000039526.52305.af. en. 0254-5330. 10.1.1.3.427. 63137.
  59. Rania Hassan, Babak Cohanim, Olivier de Weck, Gerhard Venter (2005) A comparison of particle swarm optimization and the genetic algorithm
  60. Automatic Test Case Optimization: A Bacteriologic Algorithm. https://ghostarchive.org/archive/20221009/http://www.irisa.fr/triskell/publis/2005/Baudry05d.pdf . 2022-10-09 . live. Benoit. Baudry . Franck Fleurey . Jean-Marc Jézéquel. Jean-Marc Jézéquel . Yves Le Traon. March–April 2005. 76–82. IEEE Software. 2. 10.1109/MS.2005.30. 22. 3559602. 9 August 2009.
  61. Civicioglu. P.. Transforming Geocentric Cartesian Coordinates to Geodetic Coordinates by Using Differential Search Algorithm. Computers &Geosciences. 2012. 46. 229–247. 10.1016/j.cageo.2011.12.011. 2012CG.....46..229C.
  62. Kjellström. G.. On the Efficiency of Gaussian Adaptation. Journal of Optimization Theory and Applications. 71. 3. 589–597. December 1991. 10.1007/BF00941405. 116847975.