Class: Panini::DerivationStrategy::DampenedProbabilityProductionChoiceProxy
- Inherits:
-
Object
- Object
- Panini::DerivationStrategy::DampenedProbabilityProductionChoiceProxy
- Defined in:
- lib/derivation_strategy/random_dampened.rb
Instance Method Summary collapse
- #dump_weights ⇒ Object
-
#initialize(nonterminal, damping = 0.25) ⇒ DampenedProbabilityProductionChoiceProxy
constructor
A new instance of DampenedProbabilityProductionChoiceProxy.
- #initialize_copy(source) ⇒ Object
- #production ⇒ Object
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_weights ⇒ Object
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 |
#production ⇒ Object
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 |