Class: Panini::DerivationStrategy::DampenedProbabilityProductionChoiceProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/derivation_strategy/random_dampened.rb

Instance Method Summary collapse

Constructor Details

#initialize(nonterminal, damping = 0.25) ⇒ DampenedProbabilityProductionChoiceProxy

Returns a new instance of DampenedProbabilityProductionChoiceProxy.



8
9
10
11
12
13
14
# File 'lib/derivation_strategy/random_dampened.rb', line 8

def initialize(nonterminal, damping=0.25)
  @nonterminal = nonterminal
  @damping = damping
  @production_counts = @nonterminal.productions.map do
    0
  end
end

Instance Method Details

#dump_weightsObject



49
50
51
52
53
54
# File 'lib/derivation_strategy/random_dampened.rb', line 49

def dump_weights
  puts "production_counts:"
  @weights.each do |weight|
    puts "#{weight} "
  end
end

#initialize_copy(source) ⇒ Object



16
17
18
19
20
21
# File 'lib/derivation_strategy/random_dampened.rb', line 16

def initialize_copy(source)
  super
  @production_counts = @production_counts.map do |production_count|
    production_count
  end
end

#productionObject



23
24
25
26
27
# File 'lib/derivation_strategy/random_dampened.rb', line 23

def production
  i = find_index
  @production_counts[i] += 1
  @nonterminal.productions[i]
end