# Defuzzification methods

## Type-1 defuzzifiers

FuzzyLogic.BisectorDefuzzifierType
struct BisectorDefuzzifier <: FuzzyLogic.AbstractDefuzzifier

Bisector defuzzifier. Given the aggregated output function $f$ and the output variable domain $[a, b]$ the defuzzified output is the value $t ∈ [a, b]$ that divides the area under $f$ into two equal parts. That is

$$$∫_a^tf(x)\textrm{d}x = ∫_t^af(x)\textrm{d}x.$$$

Parameters

• N::Int64: number of subintervals for integration, default 100.

Algorithm

The domain is partitioned into N equal subintervals. For each subinterval endpoint, the left and right area are approximated using the trapezoidal rule. The end point leading to the best approximation is the final result.

FuzzyLogic.CentroidDefuzzifierType
struct CentroidDefuzzifier <: FuzzyLogic.AbstractDefuzzifier

Centroid defuzzifier. Given the aggregated output function $f$ and the output variable domain $[a, b]$ the defuzzified output is the centroid computed as

$$$\frac{∫_a^bxf(x)\textrm{d}x}{∫_a^bf(x)\textrm{d}x}.$$$

Parameters

• N::Int64: number of subintervals for integration, default 100.

Algorithm

The integrals are computed numerically using the trapezoidal rule.

FuzzyLogic.LeftMaximumDefuzzifierType
struct LeftMaximumDefuzzifier <: FuzzyLogic.AbstractDefuzzifier

Left maximum defuzzifier. Returns the smallest value in the domain for which the membership function reaches its maximum.

Parameters

• N::Int64: number of subintervals, default 100.

• tol::Float64: absolute tolerance to determine if a value is maximum, default eps(Float64).

FuzzyLogic.MeanOfMaximaDefuzzifierType
struct MeanOfMaximaDefuzzifier <: FuzzyLogic.AbstractDefuzzifier

Mean of maxima defuzzifier. Returns the mean of the values in the domain for which the membership function reaches its maximum.

Parameters

• N::Int64: number of subintervals, default 100.

• tol::Float64: absolute tolerance to determine if a value is maximum, default eps(Float64).

FuzzyLogic.RightMaximumDefuzzifierType
struct RightMaximumDefuzzifier <: FuzzyLogic.AbstractDefuzzifier

Right maximum defuzzifier. Returns the largest value in the domain for which the membership function reaches its maximum.

Parameters

• N::Int64: number of subintervals, default 100.

• tol::Float64: absolute tolerance to determine if a value is maximum, default eps(Float64).

## Type-2 defuzzifiers

FuzzyLogic.EIASCDefuzzifierType
struct EIASCDefuzzifier <: FuzzyLogic.Type2Defuzzifier

Defuzzifier for type-2 inference systems using Iterative Algorithm with Stopping Condition (IASC).

PARAMETERS

• N::Int64: number of subintervals for integration, default 100.

Extended help

The algorithm was introduced in

• Wu, D. and M. Nie, "Comparison and practical implementations of type-reduction algorithms for type-2 fuzzy sets and systems," Proceedings of FUZZ-IEEE, pp. 2131-2138 (2011)
FuzzyLogic.EKMDefuzzifierType
struct EKMDefuzzifier <: FuzzyLogic.Type2Defuzzifier

Enhanced Karnik-Mendel type-reduction/defuzzification algorithm for Type-2 fuzzy systems.

Parameters

• N::Int64: number of subintervals for integration, default 100.

• maxiter::Int64: maximum number of iterations, default 100.

Extended help

The algorithm was introduced in

• Wu, D. and J.M. Mendel, "Enhanced Karnik-Mendel algorithms," IEEE Transactions on Fuzzy Systems, vol. 17, pp. 923-934. (2009)
FuzzyLogic.IASCDefuzzifierType
struct IASCDefuzzifier <: FuzzyLogic.Type2Defuzzifier

Defuzzifier for type-2 inference systems using Iterative Algorithm with Stopping Condition (IASC).

PARAMETERS

• N::Int64: number of subintervals for integration, default 100.

Extended help

The algorithm was introduced in

• Duran, K., H. Bernal, and M. Melgarejo, "Improved iterative algorithm for computing the generalized centroid of an interval type-2 fuzzy set," Annual Meeting of the North American Fuzzy Information Processing Society, pp. 190-194. (2008)
FuzzyLogic.KarnikMendelDefuzzifierType
struct KarnikMendelDefuzzifier <: FuzzyLogic.Type2Defuzzifier

Karnik-Mendel type-reduction/defuzzification algorithm for Type-2 fuzzy systems.

Parameters

• N::Int64: number of subintervals for integration, default 100.

• maxiter::Int64: maximum number of iterations, default 100.

• atol::Float64: absolute tolerance for stopping iterations

Extended help

The algorithm was introduced in

• Karnik, Nilesh N., and Jerry M. Mendel. ‘Centroid of a Type-2 Fuzzy Set’. Information Sciences 132, no. 1–4 (February 2001): 195–220