The XFL3 specification language allows the user to define its own membership
functions, families of membership functions, crisp functions, defuzzification
methods, and functions related with fuzzy connectives
and linguistic hedges. In order to ease the use of XFL3, the most well-known
functions have been included in a standard package called xfl.
The binary functions included are the following:
Name |
Type |
Java description |
min |
T-norm |
(a<b? a : b)
| prod |
T-norm |
(a*b)
| bounded_prod |
T-norm |
(a+b-1>0? a+b-1: 0)
| drastic_prod |
T-norm |
(a==1? b: (b==1? a : 0) )
| max |
S-norm |
(a>b? a : b)
| sum |
S-norm |
(a+b-a*b)
| bounded_sum |
S-norm |
(a+b<1? a+b: 1)
| drastic_sum |
S-norm |
(a==0? b : (b==0? a : 0) )
| dienes_resher |
Implication |
(b>1-a? b : 1-a)
| mizumoto |
Implication |
(1-a+a*b)
| lukasiewicz |
Implication |
(b<a? 1-a+b : 1)
| dubois_prade |
Implication |
(b==0? 1-a : (a==1? b : 1) )
| zadeh |
Implication |
(a<0.5 || 1-a>b? 1-a : (a<b? a : b))
| goguen |
Implication |
(a<b? 1 : b/a)
| godel |
Implication |
(a<=b? 1 : b)
| sharp |
Implication |
(a<=b? 1 : 0)
|
The unary functions included in the package xfl are:
Name |
Parameter |
Java description
|
---|
not |
- |
(1-a)
| sugeno |
l |
(1-a)/(1+a*l)
| square |
- |
(a*a)
| cubic |
- |
(a*a*a)
| sqrt |
- |
Math.sqrt(a)
| yager |
w |
Math.pow( ( 1 - Math.pow(a,w) ) , 1/w )
| pow |
w |
Math.pow(a,w)
| parabola |
- |
4*a*(1-a)
| edge |
- |
(a<=0.5? 2*a : 2*(1-a) )
|
The crisp functions included in the package xfl are:
Name |
Parameter |
Description
|
---|
add2 |
- |
Sum of two variables
| addN |
N |
Sum of N variables
| addDeg |
- |
Sum of two angular variables (in degrees)
| addRad |
- |
Sum of two angular variables (in radians)
| diff2 |
- |
Difference of two variables
| diffDeg |
- |
Difference of two angular variables (in degrees)
| diffRad |
- |
Difference of two angular variables (in radians)
| prod |
- |
Product of two variables
| div |
- |
Division of two variables
| select |
N |
Selection between N variables
|
The membership functions defined in the package xfl are the following:
Name |
Parameters |
Description |
triangle |
a,b,c |
|
trapezoid |
a,b,c,d |
|
isosceles |
a,b |
|
slope |
a,m |
|
bell |
a,b |
|
sigma |
a,b |
|
rectangle |
a,b |
|
singleton |
a |
|
parametric |
unlimited |
-
|
The families of membership functions defined in the package xfl are the following:
Name |
Parameters |
Description |
rectangular |
p[] |
|
triangular |
p[] |
|
sh_triangular |
p[] |
|
spline |
p[] |
|
The defuzzification methods defined in the standard package are:
Name |
Type |
Defined for |
CenterOfArea |
Conventional |
any function |
FirstOfMaxima |
Conventional |
any function |
LastOfMaxima |
Conventional |
any function |
MeanOfMaxima |
Conventional |
any function |
FuzzyMean |
Simplified |
triangle, isosceles, trapezoid, bell, rectangle, singleton |
WeightedFuzzyMean |
Simplified |
triangle, isosceles, trapezoid, bell, rectangle |
Quality |
Simplified |
triangle, isosceles, trapezoid, bell, rectangle |
GammaQuality |
Simplified |
triangle, isosceles, trapezoid, bell, rectangle |
MaxLabel |
Simplified |
singleton |
TakagiSugeno |
Simplified |
parametric |
|