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 …
- Top Programming Languages for Data Science in 2020
- How to Make a Career in Cloud Computing?
- 5 Ways to Make Online Education Effective in 2020
- Competitive Programming vs Software Development - Where Should I Invest My Time?
- Top 5 Most Loved Programming Languages in 2020
- 10 Mac OS Keyboard Shortcuts That You Should Know
- Lifecycle of DevOps
- 3 big changes in GATE 2021
- 10 Tips to Defeat Your Fear of Coding
- Best Tech Movies That Every Programmer Must Watch
- Why Cloud Computing is Important in Data Science?
- 10 Tech Devices that help People with Disabilities
- Competitive Programming Vs Software Development for computer science students
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.