class Operator::Selector::TournamentSelection

Public Class Methods

new(size) click to toggle source

Initialize informing the tournament size.

# File lib/opt_alg_framework/operator/selector/tournament_selection.rb, line 7
def initialize(size)
  @size = size
end

Public Instance Methods

select(population) click to toggle source

Main method.

# File lib/opt_alg_framework/operator/selector/tournament_selection.rb, line 12
def select(population)
  best_individual = population[Random.rand(0...population.size)]
  0.upto(@size) do
    individual = population[Random.rand(0...population.size)]
    best_individual = individual if individual[:fitness] < best_individual[:fitness]
  end
  best_individual
end