El lenguaje de especificación XFL3 permite al usuario definir sus propias
funciones de pertenencia, familias de funciones de pertenencia, funciones no difusas,
métodos de defuzzificación y funciones relacionadas
con las conectivas difusas y los modificadores lingüísticos. Con objeto de
facilitar el uso de XFL3, las funciones más conocidas han sido incluidas en
un paquete estándar llamado xfl. Las funciones binarias incluidas son
las siguientes:
Nombre |
Tipo |
Descripción
Java |
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)
|
Las funciones unarias incluidas en el paquete xfl son:
Nombre |
Parámetro |
Descripción
Java
|
---|
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) )
|
Las funciones no difusas incluidas en el paquete xfl son:
Nombre |
Parámetro |
Descripción
|
---|
add2 |
- |
Suma de variables
| addN |
N |
Suma de N variables
| addDeg |
- |
Suma de dos variables angulares (en grados)
| addRad |
- |
Suma de dos variables angulares (en radianes)
| diff2 |
- |
Diferencia entre dos variables
| diffDeg |
- |
Diferencia entre dos variables angulares (en grados)
| diffRad |
- |
Diferencia entre dos variables ngulares (en radianes)
| prod |
- |
Producto de dos variables
| div |
- |
División entre dos variables
| select |
N |
Selección entre N variables
|
Las funciones de pertenencia definidas en el paquete xfl son las siguientes:
Nombre |
Parámetros |
Descripción
|
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 |
-
|
Las familias de funciones de pertenencia definidas en el paquete xfl son las siguientes:
Nombre |
Parámetros |
Descripción |
rectangular |
p[] |
|
triangular |
p[] |
|
sh_triangular |
p[] |
|
spline |
p[] |
|
Los métodos de defuzzificación definidos en el paquete estándar son:
Nombre |
Tipo |
Definido
para |
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 |
|