selRoulette

@JvmName(name = "selRouletteFitInt")
fun <V> CellEvolveScope<V, Int>.selRoulette()
@JvmName(name = "selRouletteFitLong")
fun <V> CellEvolveScope<V, Long>.selRoulette()
@JvmName(name = "selRouletteFitShort")
fun <V> CellEvolveScope<V, Short>.selRoulette()
@JvmName(name = "selRouletteFitByte")
fun <V> CellEvolveScope<V, Byte>.selRoulette()
@JvmName(name = "selRouletteFitDouble")
fun <V> CellEvolveScope<V, Double>.selRoulette()
@JvmName(name = "selRouletteFitFloat")
fun <V> CellEvolveScope<V, Float>.selRoulette()

Executes roulette selection step for CellEvolveScope.neighbors:

It is assumed that all individuals are "placed" on the roulette wheel.

For example, if you have 4 individuals with fitness 1, 2, 3, and 4, each of them will have its own "share" of the total 10 (1/10, 2/10, 3/10, and 4/10). A random number is generated between 0 and the total fitness (e.g. 10). The roulette wheel is spun and the random number "falls" on a sector, which corresponds to one of the individuals that will be selected.