Lógica Difusa

La lógica difusa tiene la finalidad de entender los cuantificadores que utilizamos cotidianamente (“muy poco”, “demasiado”) y darles un valor numérico.

La primera aparición del concepto de Lógica Difusa (“Fuzzy logic”) se dio en la obra de Lofti Zadeth (1965). A diferencia de la lógica de Boole, donde se contemplan sólo opciones de verdadero y falso, en este tipo de lógica se puedes observar múltiples variables de respuesta que se encuentran entre ambas.

En la lógica discreta se considera si hay pertenencia o no, en la lógica difusa se evalúa el grado de pertenencia o no pertenencia. La lógica discreta es un caso particular de la lógica difusa cuando la verdad o falsedad son absolutas.

Esta nueva rama de la ciencia ha provocado una renovación en diversos campos de estudio, sobre todo en los que implican el estudio de procesos muy complejos o desordenados. Esto se debe a que los algoritmos convencionales sólo resuelven procesos ordenados, dejando atrás los contextos complejos y caóticos.

La capacidad de la lógica difusa para solucionar situaciones indeterminadas y de hipercomplejidad la ha centrado en campos que requieren toma de decisiones y reconocimiento de patrones. Comenzó siendo utilizada en sistemas expertos de Inteligencia Artificial, pero gracias a sus características se le ha aplicado en economía, finanzas y se están buscando sistemas expertos aplicados a la medicina.

En conclusión, este nuevo tipo de lógica ha aumentado las posibilidades de que una máquina o sistema informático pueda comprender y adoptar el pensamiento humano.

Para consolidar tu entendimiento de la lógica difusa, veamos un ejemplo que se usa en los aires acondicionados (que suele ser el más común para explicar el tema).

Primero examina la siguiente gráfica.

Grado de Pertenencia
Funciones de Grado de Pertenencia para una temperatura T

Lo primero que debes observar son los términos que se usan para describir la temperatura:

  • too-cold: demasiado frío
  • cold: frío
  • warm: templado
  • hot: caluroso
  • too-hot: muy caluroso

Son términos relativos, es decir, no existe una convención de a cuántos grados centígrados (Grados Celsius) es correcto decir que el ambiente es caluroso. Entonces, como se describió al inicio de la entrada, debemos buscar darle un valor numérico a estos “cuantificadores imprecisos”.

Para este ejemplo específico hubo una serie de consideraciones:

  • El eje horizontal va desde los -10 °C hasta 40°C
    • Temperaturas bajo cero son muy frías
    • Temperaturas por encima de los 35°C son muy calientes (recuerda que la temperatura del cuerpo es de 37°C, cualquier temperatura cercana o superior nos provoca una sensación de intenso calor)
  • Solamente muy frío y muy caluroso se prolongan hacia la izquierda y derecha del eje horizontal respectivamente.
  • Los tres estados restantes (frío, templado, caluroso) se modelaron como funciones de pertenencia trapezoidales de mismas dimensiones:
    • Base mayor: intervalo de 15°C
    • Base menor: intervalo de 5°C

Quizá te preguntes cómo fue que se llegó a decidir que eje horizontal fuera de -10°C a 40°C, pues sigue siendo relativo y a convención personal de quien modela el problema, pero piensa ¿qué tan prudebte habría sido tomar valores entre -100°C y 100°C?

Ahora sí, hablemos de lógica difusa con un poco de matemáticas. Analiza las siguientes funciones de pertenencia:

  • F(10°C)
    • = 0.0 = 0% muy frío
    • = 1.0 = 100% frío
    • = 0.0 = 0% templado
    • = 0.0 = 0% caluroso
    • = 0.0 = 0% muy caluroso
  • F(22.5°C)
    • = 0.0 = 0% muy frío
    • = 0.0 = 0% frío
    • = 0.5 = 50% templado
    • = 0.5 = 50% caluroso
    • = 0.0 = 0% muy caluroso

Seguramente ya comienzas a entender un poco más la idea. Lo más interesante es cuando sucede que un trapecio solapa a otro, es decir, una misma temperatura tiene cierto grado de pertenencia (cierta verdad) para dos cuantificadores distintos, por ejemplo, 22.5°C es tanto templado como caluroso pero no en términos absolutos (al 100%), solo en parte es verdad (en 50% cada uno).

Finalmente, la aplicación. En un aire acondicionado se hacen operaciones como la siguiente:

IF (temperatura es fría OR demasiado fría) AND (objetivo es templado) THEN calentar

Lo cual es una condición muy simple de entender, y bastante evidente. Pero quizá te preguntes, ¿cómo se evaluán las operaciones lógicas OR y AND en lógica difusa si no son lógica de Boole?

En lógica de Boole las operaciones lógicas OR y AND se resumen con las siguientes tablas de verdad:

Tabla de Verdad para el operador lógico OR. (V: Verdadero, F:Falso)
Tabla de Verdad para el operador lógico OR. (V: Verdadero, F:Falso)
Tabla de Verdad para el operador lógico AND. (V: Verdadero, F:Falso)
Tabla de Verdad para el operador lógico AND. (V: Verdadero, F:Falso)

Pero en la lógica difusa no tenemos que una variable es totalmente verdad o totalmente falsa, sino que tienen un grado de pertenencia. Es por eso que se deben definir los operadores lógicos AND y OR para lógica difusa. Existen varias maneras de definirlas, para este caso las definimos como sigue (es una forma simplificada, la definición formal la puedes ver aquí):

  • NOT a
    • 1 – a
  • a OR b  (Union)
    • Max{a, b}
  • a AND b  (Intersection)
    • Min{a, b}

Entonces evaluamos la proposición anterior, para 2.5°C:

F(2.5°C)

  • = 0.5 = 50% muy frío
  • = 0.5 = 50% frío
  • = 0.0 = 0% templado
  • = 0.0 = 0% caluroso
  • = 0.0 = 0% muy caluroso

IF (temperatura es fría OR demasiado fría) AND (objetivo es templado) THEN calentar

IF 50% fría OR 50% demasiado frío AND 100% templado THEN calentar

IF 50% AND 100% THEN calentar

IF 50% THEN calentar

Como puedes apreciar, una proposición en lógica difusa no siempre es 100% cierta, solo lo es en cierto grado. Para este caso solo es verdad la proposición en 50%. Aquí es donde uno se da cuenta que se necesita saber cuánto se debe calentar dada una proposición hasta cierto grado cierta. Para ello se suele usar otra función de pertenencia para calentar, pero se necesitar hacer la operación inversa, en vez de hacer difuso (fuzzy) se necesita defuzzificar  (defuzzification). De tal modo que dado cierto grado de pertenencia, se debe obtener un valor nítido (crisp value) para saber exactamente a qué ritmo calentar.

Para ello hay varios métodos que quedan fuera de esta entrada, pero supóngase que si las potencias de calentar son tres:

  • Baja
  • Media
  • Alta

Entonces, lo más seguro (no estamos sustentando con ninguna función de pertenencia, solo mera intuición) es que se deba calentar a potencia “Media”.

Referencias:

A Short Fuzzy Logic Tutorial. (2010), (Figure 2), 1-6. Recuperado a partir de http://www.cs.bilkent.edu.tr/~bulbul/depth/fuzzy.pdf

Colom Cañellas, A. J., & Ballester Brage, L. (2006). Lógica difusa: una nueva epistemología para las Ciencias de la Educación. Revista de educación, (340), 995-1008.

Advertisements