Selection (genetic algorithm)

From HandWiki

Selection is the stage of a genetic algorithm or more general evolutionary algorithm in which individual genomes are chosen from a population for later breeding (e.g., using the crossover operator).

A selection procedure used early on[1] may be implemented as follows:

  1. The fitness values that have been computed (fitness function) are normalized, such that the sum of all resulting fitness values equals 1.
  2. Accumulated normalized fitness values are computed: the accumulated fitness value of an individual is the sum of its own fitness value plus the fitness values of all the previous individuals; the accumulated fitness of the last individual should be 1, otherwise something went wrong in the normalization step.
  3. A random number R between 0 and 1 is chosen.
  4. The selected individual is the first one whose accumulated normalized value is greater than or equal to R.

For many problems the above algorithm might be computationally demanding. A simpler and faster alternative uses the so-called stochastic acceptance.

If this procedure is repeated until there are enough selected individuals, this selection method is called fitness proportionate selection or roulette-wheel selection. If instead of a single pointer spun multiple times, there are multiple, equally spaced pointers on a wheel that is spun once, it is called stochastic universal sampling. Repeatedly selecting the best individual of a randomly chosen subset is tournament selection. Taking the best half, third or another proportion of the individuals is truncation selection.

There are other selection algorithms that do not consider all individuals for selection, but only those with a fitness value that is higher than a given (arbitrary) constant. Other algorithms select from a restricted pool where only a certain percentage of the individuals are allowed, based on fitness value.

Selection mechanisms are also used to choose candidate solutions (individuals) for the next generation. Retaining the best individuals in a generation unchanged in the next generation, is called elitism or elitist selection. It is a successful (slight) variant of the general process of constructing a new population.

Methods of Selection (Evolutionary Algorithm)

The listed methods differ mainly in the selection pressure,[2][3] which can be set by a strategy parameter in the rank selection described below. The higher the selection pressure, the faster a population converges against a certain solution and the search space may not be explored sufficiently. For more selection methods and further detail see.[4][5]

Roulette Wheel Selection

In the roulette wheel selection, the probability of choosing an individual for breeding of the next generation is proportional to its fitness, the better the fitness is, the higher chance for that individual to be chosen. Choosing individuals can be depicted as spinning a roulette that has as many pockets as there are individuals in the current generation, with sizes depending on their probability. Probability of choosing individual [math]\displaystyle{ i }[/math] is equal to [math]\displaystyle{ p_i = \frac{f_i}{\Sigma_{j=1}^{N} f_j} }[/math], where [math]\displaystyle{ f_i }[/math] is the fitness of [math]\displaystyle{ i }[/math] and [math]\displaystyle{ N }[/math] is the size of current generation (note that in this method one individual can be drawn multiple times).

Rank Selection

In rank selection, the selection probability does not depend directly on the fitness, but on the fitness rank of an individual within the population. This puts large fitness differences into perspective; moreover, the exact fitness values themselves do not have to be available, but only a sorting of the individuals according to quality.

Linear ranking, which goes back to Baker,[6][7] is often used. It allows the selection pressure to be set by the parameter [math]\displaystyle{ sp }[/math], which can take values between 1.0 (no selection pressure) and 2.0 (high selection pressure). The probability [math]\displaystyle{ P }[/math] for rank positions [math]\displaystyle{ R_i }[/math] is obtained as follows:

[math]\displaystyle{ P(R_i) =\frac{1}{n}\Bigl(sp-(2sp-2)\frac{i-1}{n-1}\Bigr) \quad \quad 1\leq i \leq n ,\quad 1 \leq sp \leq 2 \quad \mathsf{with} \quad P(R_i) \ge 0, \quad \sum_{i=1}^nP(R_i)=1 }[/math]

In addition to the adjustable selection pressure, an advantage of rank-based selection can additionally be seen in the fact that it also gives worse individuals a chance to reproduce and thus to improve.[8] This can be particularly helpful in applications with restrictions, since it facilitates the overcoming of a restriction in several intermediate steps, i.e. via a sequence of several individuals rated poorly due to restriction violations.

Steady State Selection

In every generation few are selected (good - with high fitness) chromosomes for creating a new offspring. Then some (bad - with low fitness) chromosomes are removed and the new offspring is placed in their place. The rest of population survives to new generation.

Tournament Selection

Tournament Selection is a method of choosing the individual from the set of individuals. The winner of each tournament is selected to perform crossover.

Elitist Selection

Often to get better parameters, strategies with partial reproduction are used. One of them is elitism, in which a small portion of the best individuals from the last generation is carried over (without any changes) to the next one.

Boltzmann Selection

In Boltzmann selection, a continuously varying temperature controls the rate of selection according to a preset schedule. The temperature starts out high, which means that the selection pressure is low. The temperature is gradually lowered, which gradually increases the selection pressure, thereby allowing the GA to narrow in more closely to the best part of the search space while maintaining the appropriate degree of diversity.[9]

See also


  1. Holland, John H. (1992). Adaptation in natural and artificial systems. PhD thesis, The University of Michigan, 1975. Cambridge, Mass.: MIT Press. ISBN 0-585-03844-9. OCLC 42854623. 
  2. Back, T. (1994). "Selective pressure in evolutionary algorithms: a characterization of selection mechanisms". Proceedings of the First IEEE Conference on Evolutionary Computation. IEEE World Congress on Computational Intelligence (Orlando, FL, USA: IEEE): 57–62. doi:10.1109/ICEC.1994.350042. ISBN 978-0-7803-1899-1. 
  3. Goldberg, David E.; Deb, Kalyanmoy (1991), "A Comparative Analysis of Selection Schemes Used in Genetic Algorithms" (in en), Foundations of Genetic Algorithms (Elsevier) 1: pp. 69–93, doi:10.1016/b978-0-08-050684-5.50008-2, ISBN 978-0-08-050684-5,, retrieved 2023-01-09 
  4. Eiben, A.E.; Smith, J.E. (2015). "Fitness, Selection, and Population Management". Introduction to Evolutionary Computing. Natural Computing Series. Berlin, Heidelberg: Springer. pp. 79–98. doi:10.1007/978-3-662-44874-8. ISBN 978-3-662-44873-1. 
  5. De Jong, Kenneth A. (2006). Evolutionary computation : a unified approach. Cambridge, Mass.: MIT Press. ISBN 978-0-262-25598-1. OCLC 69652176. 
  6. Baker, James E. (1985), Grefenstette, John J., ed., "Adaptive Selection Methods for Genetic Algorithms", Conf. Proc. of the 1st Int. Conf. on Genetic Algorithms and Their Applications (ICGA) (Hillsdale, New. Jersey: L. Erlbaum Associates): pp. 101–111, ISBN 0-8058-0426-9 
  7. Baker, James E. (1987), Grefenstette, John J., ed., "Reducing Bias and Inefficiency in the Selection Algorithm", Conf. Proc. of the 2nd Int. Conf. on Genetic Algorithms and Their Applications (ICGA) (Hillsdale, New. Jersey: L. Erlbaum Associates): pp. 14–21, ISBN 0-8058-0158-8 
  8. Whitley, Darrell (1989), Schaffer, J.D., ed., "The GENITOR Algorithm and Selection Pressure: Why Rank-Based Allocation of Reproductive Trials is Best", Proceedings of the Third International Conference on Genetic Algorithms (ICGA) (San Francisco, CA, USA: Morgan Kaufmann Publishers Inc.): pp. 116–121 
  9. Sivanandam, S. N. (2013). Principles of soft computing. Deepa, S. N.. New Delhi: Wiley. ISBN 978-1-118-54680-2. OCLC 891566849. 

External links

nl:Genetisch algoritme#Selectie