Stochastic universal sampling


Stochastic universal sampling is a technique used in genetic algorithms for selecting potentially useful solutions for recombination. It was introduced by James Baker.
SUS is a development of fitness proportionate selection which exhibits no bias and minimal spread. Where FPS chooses several solutions from the population by repeated random sampling, SUS uses a single random value to sample all of the solutions by choosing them at evenly spaced intervals. This gives weaker members of the population a chance to be chosen.
FPS can have bad performance when a member of the population has a really large fitness in comparison with other members. Using a comb-like ruler, SUS starts from a small random number, and chooses the next candidates from the rest of population remaining, not allowing the fittest members to saturate the candidate space.
Described as an algorithm, pseudocode for SUS looks like:
SUS
F := total fitness of Population
N := number of offspring to keep
P := distance between the pointers
Start := random number between 0 and P
Pointers :=
for P in Points
i := 0
while fitness sum of Population < P
i++
add Population to Keep
return Keep
Where Population is the set of individuals with array-index 0 to i.
Here RWS describes the bulk of fitness proportionate selection – in true fitness proportional selection the parameter Points is always a list of random numbers from 0 to F. The algorithm above is intended to be illustrative rather than canonical.