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?