Class: SmartSample::FitnessProportionateSelector

Inherits:
Object
  • Object
show all
Defined in:
lib/smart_sample/fitness_proportionate_selector.rb

Instance Method Summary collapse

Constructor Details

#initialize(weights) ⇒ FitnessProportionateSelector

Returns a new instance of FitnessProportionateSelector.



4
5
6
7
# File 'lib/smart_sample/fitness_proportionate_selector.rb', line 4

def initialize(weights)
  @weights = adjust_weights(weights)
  @size = weights.size
end

Instance Method Details

#select(num = 1) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/smart_sample/fitness_proportionate_selector.rb', line 9

def select(num=1)
  1.upto(num).map do
    begin
      index = (rand * @size).to_i
    end while(rand >= @weights[index])
    index
  end
end