selection


Genetic Programming : Difference between Roulette Rank and Tournament Selection


I'm reading a slide about Genetic Programming. In this slide, it said that there are some methods at selection phase such as Roulette, Rank or Tournament without any explanation. I tried Google but nowhere says clearly about these terms.
Please tell me what is the difference between them.
Roulette wheel selection (aka Fitness proportionate selection)
The fitness is used to associate a probability of selection to each individual.
If fi is the fitness of individual i in the population, its probability of being selected is:
pi = fi / Σ j(fj) for j = 1 … N (N is the number of individuals in the population)
It's called roulette wheel because it can be seen as a roulette wheel in a casino:
This can be simulated by the following (naive) algorithm:
Calculate the sum of all fitnesses in population (sum S).
Generate a random number r in the interval [0; S].
Go through the population and sum fitnesses. When the sum s is greater than r, stop and return the individual where you are.
For possible implementations see:
Roulette wheel selection algorithm
Roulette Selection in Genetic Algorithms
Rank Selection is similar to roulette wheel selection except that selection probability is proportional to relative fitness rather than absolute fitness.
It doesn't make any difference whether the fittest candidate is ten times fitter than the next fittest or 0.001% fitter. In both cases the selection probabilities would be the same.
All that matters is the ranking relative to other individuals.
Rank selection is easy to implement when you already know on roulette
wheel selection. Instead of using the fitness as probability for
getting selected you use the rank. So for a population of N solutions
the best solution gets rank N, the second best rank N-1, etc. The
worst individual has rank 1.
(Ranking Selection in Genetic Algorithm code)
Tournament selection
Choose few individuals at random from the population (a tournament).
The individual with the best fitness (the winner) is selected for crossover.
As you can see it's efficient to code. It also works on parallel architectures and allows the selection pressure to be easily adjusted (changing the number of individuals in a tournament).
Of course there are many variants of these algorithms.
For a comparison you could read:
Comparison of Performance between Different Selection Strategies on Simple Genetic Algorithms (Jinghui Zhong , Xiaomin Hu , Min Gu , Jun Zhang - 2005)

Related Links

Disable Text Selection in Chromium Embedded?
Retrieving Selection Data from Applications other than xterm
How to activate selected text replacement when typing new text?
GIMP: Subtract overlapping selections
Opencart: Add extra features under the same product
AQGridView Selection and Deselection
make 2 different selection-tools coexist in pyside
Swapping text selections in Sublime Text 2
Selecting text with Sublime Text 2
Stata: Lag length criteria: How can I explain the results?
jquery-autocomplete default selection
Zend Studio selecting full Block
Genetic Algorithm - producing a new generation
UICollectionView shouldSelectItemAtIndexPath=NO does not avoid deselecting old selection?
UICollectionView Tap Selects More Than One Cell
Should this be selection or projection

Categories

HOME
php
rust
visual-studio
plesk
tomcat
windows-8.1
yii
applescript
bots
dafny
website
fogbugz
google-sheets-query
swift2
azure-data-lake
wagtail
pyresttest
phpseclib
tfs2010
jpa-criteria
hspi
driver
solution
twitter-oauth
xamarin-zebble
fasm
match
nexus3
orc
outlook-restapi
webstore
xbox360
texas-instruments
sonicwall
asciimath
jitsi
altium-designer
gollum-wiki
vuforia
dragula
plyr
unrar
crud
ccavenue
materialize
dnsmasq
guice
appcode
xmlunit
cloveretl
image-optimization
rails-postgresql
assertions
forms-authentication
mv
django-smart-selects
virtual-memory
type-inference
nomad
comm
redisson
skip-lists
mobile-angular-ui
dtd
email-forwarding
apache-modules
dymola
sidewaffle
petsc
yui3
gravatar
android-expansion-files
juniper-network-connect
featuretoggle
vdm-sl
abstract-factory
fuseesb
rfc5545
sql-processor
configurable-product
flurry-analytics
ildasm
image-rotation
coding-efficiency
thruway
miglayout
pageviews
preorder
ivalueconverter
stty
chefspec
django-filebrowser
contextswitchdeadlock
wndproc
workflow-manager-1.x
getopt-long
uipangesturerecognizer
mkannotation
data-dump
database-deadlocks
nosetests
startupscript
rtd
mongrel2
pyjamas
getimagesize
browser-based
yahoo-maps
inversion
database-cloning
twitter-feed
jvm-bytecode
synthesizer

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App