XFL3: El lenguaje de especificación de Xfuzzy 3

Conjuntos de operadores

Un conjunto de operadores (operator set) en XFL3 es un objeto que contiene las funciones matemáticas asignadas a cada operador difuso. Los operadores difusos pueden ser binarios (como las T-normas y S-normas empleadas para representar conectivos entre variables lingüísticas, implicaciones o agregaciones de reglas), unarios (como las C-normas y los operadores relacionados con los modificadores lingüísticos), o pueden estar asociados con métodos de defuzzificación.

XFL3 define los conjuntos de operadores mediante el siguiente formato:

operatorset identifier {
     operator assigned_function(parameter_list);
     operator assigned_function(parameter_list);
     ........... }
  

No es necesario especificar todos los operadores. Cuando uno de ellos no está definido, su valor por defecto es asumido. La siguiente tabla muestra los operadores (y sus funciones por defecto) actualmente usados en XFL3.

Operador Tipo Función por defecto
and binary xfl.min(a,b)
or binary xfl.max(a,b)
implication, imp binary xfl.min(a,b)
also binary xfl.max(a,b)
not unary xfl.not(a)
very, strongly unary xfl.square(a)
moreorless unary xfl.sqrt(a)
slightly unary xfl.parabola(a)
defuzzification, defuz defuzzification xfl.CenterOfArea

Las funciones asignadas son definidas en ficheros externos a los que llamamos paquetes (packages). El formato para identificar una función es "package.function".

 operatorset systemop {
    and xfl.min();
    or xfl.max();
    imp xfl.min();
    strongly xfl.pow(3);
    moreorless xfl.pow(0.4);
   }

Para comentarios, sugerencias, notificación de bugs, etc. contacte con nosotros en:   xfuzzy-team@imse-cnm.csic.es

©IMSE-CNM 2018