1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Creates a selector using tournament selection return Proc.new {|pop, count| newPop = [] while newPop.length < count do pool = pop.random_elements(tournamentSize) fitnesses = pool.collect {|i| getFitness.call(i) } newPop.push(pool[fitnesses.max_index()]) end newPop } end |

