Tournament Selection is a Selection Strategy used for selecting the fittest candidates from the current generation in a Genetic Algorithm. These selected candidates are then passed on to the next generation. In a K-way tournament selection, we select k-individuals and run a tournament among them. Only the fittest candidate amongst those selected candidates is chosen and is passed on to the next generation. In this way many such tournaments take place and we have our final selection of candidates who move on to the next generation. It also has a parameter called the selection pressure which is a probabilistic measure of a candidate’s likelihood of participation in a tournament. If the tournament size is larger, weak candidates have a smaller chance of getting selected as it has to compete with a stronger candidate. The selection pressure parameter determines the rate of convergence of the GA. More the selection pressure more will be the Convergence rate. GAs are able to identify optimal or near-optimal solutions over a wide range of selection pressures. Tournament Selection also works for negative fitness values.
Algorithm -- 1.Select k individuals from the population and perform a tournament amongst them 2.Select the best individual from the k individuals 3. Repeat process 1 and 2 until you have the desired amount of population
Let us have a 3-way tournament selection and our desired population size is 6 and the initial population with their fitness scores is [1, 2, 3, 4, 5, 6]. Our first tournament will look something like this (see the diagram) and the winner candidate with fitness value 6 moves on to the next generation.
After the first tournament we have our selected population as .
After a few such tournaments, we might have a selected population as [6, 6, 6, 5, 4, 3]. It might even be [6, 6, 5, 4, 3, 2]. Hence the fittest candidate is more likely to be selected for the next generation.
If the best candidate is selected with probability p
then the next best candidate will be selected with a probability of p*(1-p)
and the next one with p*(1-p)2
and so on …
- Live Classes for Data Structures and Algorithms: Interview Preparation Focused Course
- 10 Node.js Framework to be used in 2019
- Git-Checkout And Merge
- How to Get Started with Game Development?
- Overriding Accessors and Mutators in Scala
- 5 Most Difficult Programming Languages of the World
- Configure Passwordless Sudo For A Specific User in Linux
- Containerization using Docker
- Is Testing on Internet Explorer Still Relevant?
- Configuring and Accessing Google Drive Account in Ubuntu
- Random-Scan Dispaly
- Raster-Scan Displays
- Why Programmers Should Have a Youtube Channel?
- How to Start Learning Machine Learning?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.