Class: Fuzzyrb::TakagiSugenoImplication

Inherits:
FuzzyImplication show all
Defined in:
lib/fuzzy_implication.rb

Overview

Uses Takegi-Sugeno system to compute implication. Each rule’s conclusion is a function of rule’s arguments.

Instance Method Summary collapse

Methods inherited from FuzzyImplication

#initialize

Constructor Details

This class inherits a constructor from Fuzzyrb::FuzzyImplication

Instance Method Details

#evaluate(values, params) ⇒ Object

Evaluates the rule. Params are the same as for FuzzyRule



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fuzzy_implication.rb', line 15

def evaluate(values, params)
# puts "\nEvaluating ts implication"
total_membership = 0
params[:implication] = :takagiSugeno
total_value = @rules.map { |rule|
  rule.evaluate(values, params)
  }.inject(0) { |s, rv| total_membership += rv[1]; s + rv[0]*rv[1]}
  # puts "TM: #{total_membership}, TV: #{total_value}"
  return 0 if total_membership == 0
  total_value/total_membership
end