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

Copy-paste of selections with Xlib in X11: XA_TARGETS array of atoms
Selecting who should breed with whom from a list of qualified parents?
programmatically change selected rows in a slickgrid
dgrid selection- select row only when I click on check box
Getting the Root-Element of an EObject which is being listened in a Tree-/Tableviewer
Rangy expands for cyrillic
Couldn't find box selection in Jdeveloper
In SAS, calculate value using conditional logic with different variables
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

Categories

HOME
cocoapods
weblogic12c
cucumber
iverilog
google-play-services
elisp
dependencies
google-sheets-query
angular-meteor
sharepoint-online
msmq
elastic-load-balancer
clickable-image
solution
nexus3
nsstring
responsivevoice
django-rq
closures
asciimath
http-authentication
renderscript
infrared
pe
sqlplus
fido-u2f
liferay-6.2
rxjs5
device
sybase-ase
ava
android-cardview
jackrabbit-oak
basex
django-import-export
ninject
tsung
sparkle
guice
intune
matlab-app-designer
memory-fences
snap-framework
seafile-server
express-session
rails-postgresql
jslint
love2d
cargo
best-buy-api
hypothesis-test
raytracing
dagger
sendinput
aws-kinesis-firehose
libreoffice-writer
sony-future-lab-n
beeline
iptv
punctuation
webvtt
email-forwarding
deviare
clp
fragmentstatepageradapter
android-async-http
fdt
myfaces
stack-smash
lowercase
blockquote
unhandled
roxygen2
swagger-maven-plugin
whitespace-language
mxe
mod-auth-openidc
jquery-mobile-flipswitch
box2dweb
treeline
maven-central
jms-serializer
iosched
non-ascii-characters
disjoint-union
quickgraph
pacman
insertion
delphi-xe4
proc-open
xmlwriter
user-forums
clrprofiler
image-formats
websphere-6.1
trialware
flymake
prototypal-inheritance
type-safety
wiktionary
kolite
haiku
mediacontroller
libxslt
pyjamas
ccnet-config
odac
eventaggregator
mysqli-multi-query
html-components
accumulator
downloadfile
error-detection

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