martes, 8 de marzo de 2011

El mundo visto con lógica... difusa - Parte 3 - Variables Lingüísticas

Logica Difusa
En las anteriores partes de este artículo, pudimos ver los conceptos necesarios para entender que es la lógica difusa. Mucha de la gente que halla leído por primera vez puede entender que la lógica difusa tiene poco o nada que ver con el mundo real, sin embargo, es justamente la lógica difusa la que más se acerca a la vida real.

Para entenderlo, podemos utilizar el siguiente ejemplo. Supongamos que estamos en la Subbética Cordobesa, cerca del bello pueblo de Zuheros desde donde se puede ver la vasta extensión de olivares, un domingo de enero a las doce del medio día a unos 1200 metros sobre el nivel del mar. La temperatura es gélida y ronda los cero grados. Si te preguntarán ¿Cuanto frío tienes?, la respuesta más lógica sería Mucho, si se utilizara la lógica tradicional debería de indicarse un porcentaje exacto del nivel de frío que en ese momento tienes, pero la respuesta Mucho es la que nos indica, que estamos utilizando la lógica dífusa, debido a que se está definiendo que dentro de la variable "Tener Frío", tú te hallas en un conjunto definido como Mucho.


Para nosotros, este tipo de respuesta Mucho es una respuesta válida, que nos permite identificar que la persona que ha contestado nos ha sugerido que necesita mucho más calor para estar cómodo.

Sin embargo, una máquina no entendería este concepto, para las máquinas (basadas en lógica tradicional) la palabra mucho sería solamente un dato, carente de información alguna, mientras que si definiéramos que su nivel de calor es de 0.003%, podría entender que esa persona necesita calor, pues carece de él.

A este tipo de variables que serán contestadas con un valor lingüístico son conocidas como Variables Lingüísticas y pueden ser utilizadas con la lógica difusa.
Con estas variables lingüísticas, una máquina podría cuantificar conceptos claros para nosotros, como por ejemplo "Ser amable" o incluso podría cuantificar "La Belleza" de una persona.

Ahora bien, matemáticamente, las variables lingüísticas están definidas como una quíntupla definida como sigue:
Variable Lingüística ={x, T(x), U, G, M}
Donde:
  • X => será el nombre de la variable.
  • T(x) => será el conjunto de nombre que puede tener la variable.
  • U=> Es el universo (entorno) donde será evaluada la variable.
  • G => Es el conjunto de reglas que generan los nombres.
  • M => Conjunto de semánticas, con el que asignamos a cada objeto de X a su significado.
Para poner un ejemplo, vamos a utilizar el concepto de velocidad.
Este concepto, el concepto velocidad, no podría ser entendido por cualquier máquina, entendería que un objeto va a 80 km/h pero no que es rápido.
Para este ejemplo, X sería el nombre de la variable.
T(x) sería el conjunto de nombres que puede tener la variable (alto, medio, bajo), es decir velocidad alta, velocidad media.
Como se puede ver con estos valores un humano saca poca información, ¿podría decirse que la velocidad es alta con 30 km/h cuando hablamos en un concepto de viaje en tren?, sin embargo si se puede decir que la velocidad es alta cuando hablamos de ir corriendo. Aquí es donde entra el universo. Ahora bien, como toda regla semántica, G y M definen que valores son correctos cuando se utiliza esta variable lingüística, estableciendo que "Velocidad alta" es correcta, mientras que "Poca Velocidad" no, aunque para un humano esto es obvio, las máquinas deben de conocer que tipo de lenguaje es aceptado y cual no.

Como se vio en la parte 2, los conjuntos difusos deberán de tener detallados su función de pertenencia, así Velocidad alta tendrá una función de pertenencia, Velocidad media tendrá otra función de pertenencia y Velocidad baja tendrá otra función de pertenencia. Así cuando se pregunta por una velocidad en concreto para el universo "Coche", se deben de evaluar cada uno y se especificará el valor correspondiente. Con el siguiente gráfico podrías definir los valores 10Km/h, 80 Km/h y 200 Km/h.

Claramente, si definimos el valor 10 kM/h pertenecerá al conjunto "Velocidad Baja" con 1, al conjunto "Velocidad Media" con 0.1 y al conjunto "Velocidad Alta" como 0, y si escogemos 80 Km/h tendremos para el primero y el tercero 0.1 mientras que será 1 para "Velocidad Media".




jueves, 3 de marzo de 2011

El mundo visto con lógica... difusa - Parte 2 - Concepto matemático

Logica DifusaEn la entrada de hoy, mi intención es continuar con el documento "El mundo visto con lógica... difusa" que comencé hace unos días con la parte 1 (así que si no has leído la primera parte, te lo recomiendo), donde se dio una breve explicación sobre lógica difusa y su historia, en esta segunda parte, pretendo comentar los conceptos matemáticos que encapsulan la Fuzzy Logic.

En esta entrada, la intención es mostrar los conceptos matemáticos que aguardan dentro de todo conjunto difuso.

Para empezar, hay que recordar que en un conjunto clásico, los elementos que pertenecen a este conjunto están claramente definido, o dicho de otro modo, teniendo un conjunto definido, los objeto que pertenecen a este conjunto están claros, o están o no están. Este concepto se rompe por completo cuando tratamos con un conjunto difuso, pues la frontera no es tan clara, un objeto podría estar o no dentro del conjunto, pero tendrá siempre asignado un valor de pertenencia a este conjunto, un valor que normalmente se define como [0,1] donde el valor 0 indica que se halla en el conjunto, y por el contrario 1 no.

Así se podría decir que un objeto pertenece un 0.23 a un conjunto, mientras que pertenece un 0.99 a otro, pudiendo ser compartido por ambos.

En esta imagen a la derecha, podemos ver dos conjuntos, uno nítido y otro difuso, donde en el conjunto tradicional se pueden apreciar los elementos que se hallan dentro y fuera del conjunto (los cuadros rojos no pertenecen al conjunto mientras que los verdes si), y en conjunto difuso se aprecian los elementos que se hallan dentro del conjunto (es decir en el núcleo), los elementos que no se hallan dentro del conjunto y un elemento, el cuadrado amarillo, que se halla en el conjunto con un cierto grado de pertenencia.

La zona difusa del conjunto es el umbral de pertenencia que nos indica la cercanía que posee cada objeto con el núcleo del conjunto en cuestión.

Para aquellos que prefieran las matemáticas como forma de expresión, todo lo anterior podría ser resumido de la siguiente forma:
Si tenemos un conjunto de objetos X, un conjunto difuso A es un subconjunto de X que sera representado por una tupla, donde el primer elemento, es el objeto en si, y el segundo elemento sera la funcion de pertenencia al conjunto difuso.


La funcion de pertenencia normalizada entre [0, 1].

En esta expresión, queda claro que los objetos que tengan un grado de pertenencia de valor 1, pertenecerán al núcleo del conjunto difuso.

Hasta este momento, hemos hablado de función de pertenencia, pero no la hemos definido. La función de pertenencia no es más que la función que nos indicará el grado de pertenencia (o lo alejado que se halla) el objeto en cuestión del conjunto difuso.
Para entenderlo, supongamos que tenemos un conjunto difuso, y es el de las personas que son rubias. Una persona con el pelo rubio claro, pertenecerá claramente a este conjunto difuso, es decir, tendrá como valor 1, mientras que una persona morena oscura pertenecerá al conjunto con un valor de 0, es decir no pertenece. Hasta ahora todo es claro, pero ¿que ocurre con las personas castañas?, ¿pertenece al conjunto?. La función de pertenencia nos indicaría que grado de pertenencia tendría, así una persona con castaño claro tendría un valor de 0.5, es decir, no pertenece al núcleo, pero si tiene en parte pertenencia al conjunto difuso.

Gráficamente la función de pertenencia podría ser similar al siguiente gráfico.

Para que se pueda entender el gráfico, en el eje X se hallan todos los elementos del conjunto X (pertenezcan o no al conjunto, ordenados claramente por su pertenencia al conjunto para que este gráfico sea visto con claridad) mientras que en el eje Y tendremos los valores [0,1] que nos indican el grado de pertenencia al conjunto.

Se puede definir entonces tres claros bloques. El primer bloque (verde en el gráfico) se hallan todos los elementos que pertenecen al núcleo del conjunto. En el segundo bloque (amarillo en el gráfico) encontramos todos los elementos que tienen cierta pertenencia al conjunto, y por último, el bloque de elementos que no tienen pertenencia al conjunto.

Así para terminar esta entrada en el blog, voy a proponer un juego para ver si has comprendido los conceptos y que servirá para dar pie a la tercera parte.

Suponga que tiene tres conjuntos difusos. Bajo, Mediano, Alto.

Y le especifico que una persona con 1.40 metros es considerada como una persona baja.
una persona con 1.70 metros es considerada como una persona de mediana estatura, y una persona con 1.90 metros es considerada como una persona de alta.

Si tiene tres personas (1.80, 1.60, 1.50) ¿A que clase pertenecen?, ¿Que es lo que necesita para poder darme una respuesta?

lunes, 28 de febrero de 2011

El mundo visto con lógica... difusa - Parte 1 - Un poco de historia

Logica Difusa
Escuchar hablar de la lógica siempre nos trae a la cabeza la lógica clásica, aquella que es la que nos permite distinguir entre algo verdadero de lo que no lo es, ¿pero es siempre así?, ¿todo en este mundo es verdad o falso?.

Por desgracia, en el mundo real, la lógica tradicional no tiene sentido, pues nada es estrictamente “si” o “no”.
El mejor ejemplo como siempre lo encontramos en la naturaleza, y más concretamente en el mundo de los colores. Nada es blanco o negro, sino que todo es "parcialmente" blanco, o "casi" negro.

Esta definición de la lógica tradicional, tiene gran ventaja con sistemas electrónicos, ya que el sistema binario definido por los lenguajes máquina definen claramente una lógica tradicional: "Cero" o "Uno". Sin embargo, estos mismos sistemas electrónicos no implementan una lógica tradicional estricta como se esperaría encontrar, sino que por el contrario implementan una lógica difusa para implementar estos ceros o uno. Los dispositivos no identifican como 1 cuando la tensión es estrictamente +5V sino que cuando la tensión sea prácticamente +5V será identificado como un 1 lógico, y es esa palabra "prácticamente", la que vuelve difusa la electrónica, por lo que incluso aquellos sistemas que consideramos estríctamente lógicos dejan de ser "lógicos" realmente para volverse difusos y aceptar su condición "Fuzzy".

En el mundo de las matemáticas, encontramos un ejemplo claro en la teoría de conjuntos, En esta teoría, los conjuntos no tienen claramente definidos los bordes que nos permite delimitar que objetos están dentro y cuales fuera. Obviamente, los objetos que se hallan en el núcleo del conjunto estarán dentro y aquellos que están muy alejados de este núcleo se hallarán fuera, pero existen objetos que están relativamente lejos del núcleo como para considerarlos fuera, y relativamente cerca del núcleo para considerarlos dentro, entonces en la lógica tradicional, estos objetos se considerarían dentro o fuera, porque se debe de definir un umbral entre dentro y fuera, pero no estaría muy claro si lo están o no.

Como detalla Zimmermman [1], uno de los primeros en darse cuenta de este problema en la vida real, fue B. Russell, quien en 1921 expresó que existe una diferencia entre la vida real no precisa y la vida imaginaria precisa. L.A. Zadeh, padre de la lógica difusa.L.A. Zadeh, considerado como el padre de la teoría de la lógica difusa, expresó que cuando la complejidad del sistema incrementa, la habilidad de hacer precisión disminuye hasta tener un umbral entre precisión e importancia. De estos puntos de vista se realizaron diferentes teorías, y entre ellas se encuentra la teoría de conjuntos fuzzy, que ha sido la que empíricamente ha dado mejores resultados.

Desde L.A. Zadeh el interés sobre los conjuntos fuzzy (llamados en castellano conjuntos difusos) empezó a aumentar, durante los años 80 las publicaciones sobre este campo aumentaron hasta alcanzar numerosas publicaciones a principios del año 2000.

Los conjuntos difusos han sido desarrollados finalmente en dos áreas, la primera como una teoría formal, que irá desarrollándose y creciendo y que “fuzzificará” otras áreas de las matemáticas clásicas, como el álgebra, la teoría de grafos y la topología, y una segunda área orientada a las aplicaciones, como una herramienta para resolver problemas y como soporte o base para otras herramientas que puedan ser utilizadas en las minerías de datos.
Actualmente la teoría de conjuntos forma parte de la base de la Inteligencia Artificial junto a las redes neuronales o los algoritmos evolutivos, en lo que se denomina "Soft Computing".



Bibliografía:

[1] Fuzzy Set Theory - H.J. Zimmermann
[2] Fuzzy Set - L.A. Zadeh (1965)