Fitness proportionate selection: Difference between revisions
m Bot: Migrating 1 interwiki links, now provided by Wikidata on d:q5455479 |
expand on implementation |
||
Line 13: | Line 13: | ||
Other selection techniques, such as [[stochastic universal sampling]]<ref>Bäck, Thomas, ''Evolutionary Algorithms in Theory and Practice'' (1996), p. 120, Oxford Univ. Press</ref> or [[tournament selection]], are often used in practice. This is because they have less stochastic noise, or are fast, easy to implement and have a constant selection pressure [Blickle, 1996]. |
Other selection techniques, such as [[stochastic universal sampling]]<ref>Bäck, Thomas, ''Evolutionary Algorithms in Theory and Practice'' (1996), p. 120, Oxford Univ. Press</ref> or [[tournament selection]], are often used in practice. This is because they have less stochastic noise, or are fast, easy to implement and have a constant selection pressure [Blickle, 1996]. |
||
Note performance gains can be achieved by using a [[binary search]] rather than a linear search to find the right pocket. |
|||
The naive implementation is carried out by first generating the [[Cumulative probability distribution function|cumulative probability distribution]] (CDF) over the list of individuals using a probability proportional to the fitness of the individual. A [[Uniform random variable|uniform random]] number from the range [0,1) is chosen and the inverse of the CDF for that number gives an individual. This corresponds to the roullete ball falling in the bin of an individual with a probaility proportional to it's width. The "bin" corresponding to the inverse of the uniform random number can be found most quickly by using a [[Binary search algorithm|binary search]] over the elements of the CDF. It takes in the [[Big O notation|O(logn)]] time to choose and individual. A faster alternative that generates individuals in O(1) time will be to use the [[alias method]]. |
|||
==See also== |
==See also== |
Revision as of 07:02, 25 July 2013
Fitness proportionate selection, also known as roulette wheel selection, is a genetic operator used in genetic algorithms for selecting potentially useful solutions for recombination.
In fitness proportionate selection, as in all selection methods, the fitness function assigns a fitness to possible solutions or chromosomes. This fitness level is used to associate a probability of selection with each individual chromosome. If is the fitness of individual in the population, its probability of being selected is , where is the number of individuals in the population.
This could be imagined similar to a Roulette wheel in a casino. Usually a proportion of the wheel is assigned to each of the possible selections based on their fitness value. This could be achieved by dividing the fitness of a selection by the total fitness of all the selections, thereby normalizing them to 1. Then a random selection is made similar to how the roulette wheel is rotated.
While candidate solutions with a higher fitness will be less likely to be eliminated, there is still a chance that they may be. Contrast this with a less sophisticated selection algorithm, such as truncation selection, which will eliminate a fixed percentage of the weakest candidates. With fitness proportionate selection there is a chance some weaker solutions may survive the selection process; this is an advantage, as though a solution may be weak, it may include some component which could prove useful following the recombination process.
The analogy to a roulette wheel can be envisaged by imagining a roulette wheel in which each candidate solution represents a pocket on the wheel; the size of the pockets are proportionate to the probability of selection of the solution. Selecting N chromosomes from the population is equivalent to playing N games on the roulette wheel, as each candidate is drawn independently.
Other selection techniques, such as stochastic universal sampling[1] or tournament selection, are often used in practice. This is because they have less stochastic noise, or are fast, easy to implement and have a constant selection pressure [Blickle, 1996].
The naive implementation is carried out by first generating the cumulative probability distribution (CDF) over the list of individuals using a probability proportional to the fitness of the individual. A uniform random number from the range [0,1) is chosen and the inverse of the CDF for that number gives an individual. This corresponds to the roullete ball falling in the bin of an individual with a probaility proportional to it's width. The "bin" corresponding to the inverse of the uniform random number can be found most quickly by using a binary search over the elements of the CDF. It takes in the O(logn) time to choose and individual. A faster alternative that generates individuals in O(1) time will be to use the alias method.
See also
External links
- C implementation (.tar.gz; see selector.cxx) WBL
- Example on Roulette wheel selection
References
- ^ Bäck, Thomas, Evolutionary Algorithms in Theory and Practice (1996), p. 120, Oxford Univ. Press