Learn R Programming

lfl (version 1.0)

defuzz: Convert fuzzy set into a crisp numeric value

Description

Take a fuzzy set in the form of a vector of membership degrees and a vector of numeric values that correspond to that degrees and perform a selected type of defuzzification, i.e. conversion of the fuzzy set into a single crisp value.

Usage

defuzz(degrees,
       values,
       type=c('mom', 'fom', 'lom', 'dee'))

Arguments

degrees
A fuzzy set in the form of a numeric vector of membership degrees. Membership degrees must correspond to crisp values in the values argument.
values
Crisp values that correspond to memberhsip degrees in the degrees vector. Function assumes that the values are sorted in the ascending order.
type
Type of requested defuzzification method. The possibilities are:
  • 'mom'
{Mean of Maxima - maximum membership degrees are found and a mean of values that correspond to that degrees is returned;}

Value

  • A crisp value computed from values with respect to degrees and a type of defuzzification.

Details

Function converts input fuzzy set into a crisp value. The definition of input fuzzy set is provided by the arguments degrees and values. These arguments should be numeric vectors of the same length, the former containing memberhsip degrees in the interval $[0, 1]$ and the latter containing the corresponding crisp values; the fuzzy set is interpreted as values[i] to have the memberhsip degree degrees[i]. The values vector is assumed to be sorted in ascending order.

See Also

fire, aggregate, perceive, pbld, fcut, lcut

Examples

Run this code
defuzz(c(0, 0, 0, 0.1, 0.3, 0.9, 0.9, 0.9, 0.2, 0), 1:10, type='mom')

Run the code above in your browser using DataLab