home › Forums › # Technical Support › An acumulation method › Reply To: An acumulation method

Hi jark,

thank you for your kind words and for your question.

The typical operation of WeightedDefuzzifiers is obtained by setting the Accumulation operator to `fl::null`

(i.e., empty combobox). The typical operation of a weighted average (or sum) utilizes the weights (or activation degrees) of the terms in the fuzzy output value: $\dfrac{\sum w_i x_i}{\sum w_i}$. However, if you change the accumulation operator, the repeated terms in the fuzzy output value will be first aggregated utilizing the given accumulation operator. For example, if the term A is in the fuzzy output value multiple times with different activation degrees, these activation degrees will be aggregated utilizing the Accumulation operator. The same operation occurs for every term in the fuzzy output value, and finally the weighted defuzzifier is computed as usual $\dfrac{\sum w_i’ x_i}{\sum w_i’}$, where $w_i’$ refers to the aggregated activation degrees. Depending on the fuzzy logic controller, the difference in results between using `fl::null`

and other accumulation operator may be negligible (if any). In terms of performance, it is better to utilize `fl::null`

.

You may find more information here: http://fuzzylite.github.io/fuzzylite/d7/dde/classfl_1_1_weighted_average.html

Importantly, please notice that the operation of the weighted defuzzifiers under accumulation operators different from `fl::null`

was inspired only on the principles of software design. In Mamdani models, the SNorm representing the accumulation operator in the output variable is compulsory to aggregate the fuzzy output. In Takagi-Sugeno models, the accumulation operator is still available, but generally not used in other libraries (such as Matlab, I think), for which I wanted to explore its reusability.

I hope this answers your question. Any feedback on this would be appreciated, if any.

Cheers.