Introducción: La lógica Difusa es un tema de estudio de la inteligencia artificial que nace para interpretar y poder manipular términos de incertidumbre o información imprecisa. El ser humano realiza la tarea de comunicar, transmitir su experiencia y conocimientos utilizando términos o reglas lingüísticas vagas como poco, mucho, medio, etc. Estas reglas lingüísticas son fácilmente entendibles por los humanos, pero que una computadora, o sistema artificial interprete estos términos es realmente complicado, ya que ellos siguen reglas de lógica booleana, donde solo existen dos estados posibles. Como se puede ver en la actualidad, la lógica difusa (Fuzzy Logic) y la inteligencia artificial tienen como objetivo desarrollar métodos computacionales que permitan realizar razonamientos y tareas de resolución de problemas que requieren de la inteligencia humana, la cual es capaz de discernir entre estos términos difusos que utilizamos en la realidad y lo cual le parece totalmente normal. 1. Objetivos: Introducir conceptos de lógica difusa y sus aplicaciones en la ingeniería. Reconocer diferencias entre inferencia difusa Mamdani y Sugeno. Simular en MATLAB un ejemplo de lógica difusa. 2. Conceptos: 2.1.Lógica Difusa: La lógica difusa no es nada más que la extensión de la lógica tradicional, exacta o superset, es decir, que se puede definir como la lógica que usa valores intermedios entre la veracidad o la falsedad, sus expresiones no son ni totalmente ciertas ni totalmente falsas. 2.2.Grado de Verdad: 2.2.1. Probabilidad: Es la indicación de como un objeto sea probable de tener ciertas características. La probabilidad está hecha a base de un estudio, pero no del mismo objeto sino de del conjunto donde representa este mismo, por lo que este objeto depende de ello para para ser definido en un 100% de probabilidad. 2.2.2. Grado de verdad: Muestra la cantidad, grado o nivel de la característica que posee el objeto. En el grado de verdad se establece dos umbrales, por ejemplo, una persona quiere saber si es gorda o flaca; para ello establecemos dos umbrales (gorda =1 y flaca=0) si la persona es considerada ni tan gorda ni tan flaca tendrá un valor medio por decir 0.52, no es ni tan gorda ni tan flaca. Este valor es sobre esa persona en concreto. 2.3.Conjuntos Difusos: Un conjunto difuso se define como los valores reales a los que se le asocia un grado de pertenencia que están contenidas entre 0 y 1. Figura 1 2.3.1. Operaciones de conjuntos difusos: Las operaciones básicas que hay entre los conjuntos difusos son: Unión Figura 2 La función de pertenencia de esta operación es: Ecuación 1 Intersección Figura 3 La función de pertenencia de esta operación es: Ecuación 2 Complemento Figura 4 La función de pertenencia de esta operación es: Ecuación 3 Existen leyes fundamentales que destacan de la teoría de conjuntos clásicos como: Principio de contradicción: Ecuación 4 Principio de Exclusión Ecuación 5 Propiedades Los conjuntos clásicos tienen las mismas propiedades que los conjuntos difusos, es más, hasta pueden verse como un subconjunto de los conjuntos difusos. Conmutativa: A∩B = B∩A Asociativa: A∪(B∪C) = (A∪B) ∪ C Distributiva: A∪(B∩C) = (A∪B) ∩(A∪C) Idempotencia: A∪A = A y A∩A = A Involución: ¬(¬A) = A Transitiva: If (A ⊂ B) ∩ (B ⊂ C) then A ⊂ C 1 Leyes de Morgan: ¬(A∩B) = ¬A∪¬B y ¬(A∪B) = ¬A∩¬B 2.4. Variables lingüísticas: Las variables lingüísticas se usan para representar un elemento que realmente no es concreto o es demasiado complejo de describir numéricamente. Se incluyen términos lingüísticos: Términos primarios: Bajo, Alto, Gordo, Flaco, etc. Modificadores: Muy, casi, cerca de, mas, menos, etc. Conectores lógicos: no(not), y(and), o(or). 2.5. Función de Membresía: Es el grado de pertenencia de un elemento a un subconjunto definido por una etiqueta. Es decir, son una forma de representar gráficamente un conjunto borroso sobre un universo. 2.5.1. Formas de representación de las funciones de Membresía: A la hora de determinar una función de pertenencia, normalmente se eligen funciones sencillas, para que los cálculos no sean complicados. Entre ellos están: 2.5.1.1.Forma Triangular: Ecuación 6 Figura 5. Forma triangular típica 2.5.1.2.Forma S: Ecuación 7 Figura 6. Forma sigmoidal o S 2.5.1.3.Forma Trapezoidal: Figura 5. Forma trapezoidal o también llamada Pi Ecuación 8 2.5.1.4.Forma singleton: Ecuación 9 Figura 6. Forma Singleton 2.6.Reglas difusas: Una regla difusa es expresada simbólicamente como IF X is A-THEN Y is B (SI X es A ENTONCES Y es B), donde “X es A” es un antecedente y, “Y es B” es un consecuente. El antecedente y consecuente de una regla difusa puede tener múltiples partes. En los sistemas de reglas clásicos si el antecedente es verdad, el consecuente también lo es. En el sistema difuso si el antecedente es difuso, todas las reglas se evalúan parcialmente y el consecuente será verdad en cierto grado, es decir, si el antecedente es verdad en cierto grado, entonces el consecuente también lo será en cierto grado. 2.7.Difusificación o Fuzzificación: Este elemento transforma las variables de entrada en variables difusas. Para esta interfaz se deben tener definidos los rangos de variación de variables de entrada y los conjuntos asociados con sus respectivas funciones de membresía, lo que arrojará el grado de verdad o de pertenencia de cada variable a su conjunto difuso. 2.8.Desdifusificación o Defuzzificación: Este proceso permite asociar a un conjunto difuso un valor numérico, con el fin de obtener una salida nítida para el modelo difuso. Ya que, el sistema de inferencia difusa obtiene una conclusión a partir de la información de la entrada, pero es expresada en términos difusos, como variable difusa. Pero el dato de salida del sistema difuso debe ser un número real, un valor crisp, el cual debe representar la salida del conjunto de entradas existentes. Los métodos más comunes de Desdifusificación son los siguientes: 2.8.1. Método del centroide: Es el método más utilizado para obtener el valor real de una salida. Asocia el centro del área formada por el número difuso. Matemáticamente se expresa: - Forma discreta: Ecuación 10 𝑏 𝐶= - ∫𝑎 𝑥𝜇(𝑥)𝑑𝑥 𝑏 ∫𝑎 𝜇(𝑥)𝑑𝑥 Forma continua: Ecuación 11 𝐶= ∑𝑏𝑎 𝑥𝜇(𝑥) ∑𝑏𝑎 𝜇(𝑥) Donde 𝜇(𝑥) representa a la función de membresía de salida, cuya variable es 𝑥, y las variables 𝑎 𝑦 𝑏 expresan los límites de integración. Su metodología es sencilla: corta la función de membresía al grado de membresía respectiva, segmentando las funciones de membresía generando en cada función dos áreas. El área inferior que se forma es la que se toma para hacer el cálculo, es decir, el área MIN. Se sobreponen todas las áreas formadas ya sea por los operadores antes vistos, y se calcula el centroide, cuyo valor será la salida real del sistema. Figura 7. Representación de centro de gravedad o centroide Figura 8. Ejemplo de método de centroide, teniendo como funciones de salida 0.25 y 0.75 para el cálculo de velocidad de giro de un motor en base al giro manual. 2.8.2. Método de la Bisectriz: Trata de encontrar el valor numérico del elemento del universo que separa el área de la función de membresía del conjunto difuso en dos mitades con la misma área. 2.8.3. Método del Máximo Central (MOM): El cálculo de la salida es el valor medio de todos aquellos que generan el valor más alto de la función de membresía. Este método es un método simplificado. Primero se calcula el valor más común de cada etiqueta, teniendo en cuenta el máximo valor de cada función de membresía. En el caso de las funciones trapezoidales se debe escoger el medio maximizado de dicha función. Figura 9. Figura 10 2.8.4. Método del Máximo más pequeño (SOM) o método de izquierda máximo: La salida es el mínimo valor de todos aquellos valores que generan el valor más alto de la función de membresía. Figura 11. 2.8.5. Método máximo más grande (LOM): La salida es el máximo valor de todos aquellos que generan el más alto valor de la función de membresía. Figura 12 El siguiente gráfico muestra algunos de los métodos de desdifusificación para unmismo conjunto difuso: Figura 13. Representación del conjunto de métodos de desdifusificación. 2.9.Agregado: Es el proceso de unión de todas las salidas de la etapa de aplicación de reglas, todas estas salidas previamente cortadas y escaladas, con el fin de obtener un conjunto difuso por cada variable de salida. Existen varios criterios para realizar este paso. Un criterio muy empleado es el de agrupar los conjuntos mediante una operación de máximos (MAX). 2.10. Inferencia difusa: Es la lógica empleada para la toma de decisiones. Es la interpretación de las reglas ya establecidas anteriormente (“SI-ENTONCES”), con el fin de obtener las conclusiones de las variables lingüísticas de salida a partir de las variables de entrada, basándose en el grado de pertenencia o verdad y apoyándose en las reglas del sistema difuso. Por ejemplo: SI X es A entonces Y es B. Donde A y B son conjuntos difusos en los rangos de X e Y, cuya función de membresía sería 𝜇𝐴→𝐵 (𝑋, 𝑌), y representa lo que conocemos como la implicación. Las entradas aquí son conjuntos difusos, con su respectivo grado de verdad, y las salidas son también conjuntos difusos, asociados a la variable de salida. Base de conocimientos: Representa el conocimiento disponible sobre el entorno sistema. Se expresa en formas de reglas lingüísticas. La forma más eficiente y común de construir la base de conocimientos es a partir de un experto, ser humano, que posee la experiencia necesaria para decidir cuáles son los parámetros más relevantes y establecer relaciones entre ellos. Base de Reglas: Es el conjunto de reglas que serán empleadas en el sistema difuso. Base de Datos: Almacenan los conjuntos difusos y las funciones de membresía respectivas. 2.10.1. Inferencia difusa Mamdani: Es el mecanismo de inferencia más utilizado. Este método utiliza un conjunto de reglas IF-THEN. Toma como entrada los valores de la fuzzificación y se le aplican las reglas difusas para su evaluación. Si se tuviesen múltiples entradas se utilizan los operadores OR o AND para obtener un único resultado. Este valor, que debe poseer su grado de verdad. En este método es preferible listar todas las reglas difusas para saber cómo se obtiene la salida del sistema. El proceso de inferencia difusa Mamdani se realiza en cuatro pasos: Fusificación, evaluación de reglas, agregados y desdifusificación. Figura 14 Figura 15 Difusificación o Fuzzificación: Es el primer paso, y consiste en tomar los valores crisp (valores de variables discretas o nítidas), y determinar el grado de verdad o pertenencia de estos valores de entrada a los conjuntos difusos asociados según una variable lingüística a partir de las funciones de membresía. Es decir, asocia un valor numérico con un conjunto difuso. Figura 16. Evaluación de reglas: Son la base de conocimientos con la cual el sistema difuso toma decisiones. Tomamos las entradas anteriores y se aplican a los antecedentes de las reglas difusas. Para evaluar la disyunción, operador OR, generalmente se emplea la T conorma máx. De igual forma, para la conjunción, operador AND, se utiliza la T norma mín. Este proceso responde al conjunto de reglas difusas. Si el antecedente a la regla tiene más de un término, se le aplica algún operador AND (T norma), u OR (T conorma), obteniendo así un único valor de pertenencia. A partir del consecuente de cada regla obtenido del valor del antecedente, aplicamos un operador de implicación obteniendo así un nuevo conjunto borroso. Dos de los operadores de implicación más usados son el mínimo, que trunca la función de pertenencia del consecuente, y el producto, que la escala. Una regla de la base de reglas o base de conocimiento tiene dos partes, el antecedente y la conclusión como se observa en la siguiente figura: Figura 17 En un sistema difuso tipo Mamdani tanto el antecedente como el consecuente de las reglas están dados por expresiones lingüísticas. Tabla 1 En la tabla 1. Se muestra un ejemplo de aplicación de reglas difusas, en donde en base a dos variables de entrada (edad y porcentaje de manejo), tendrán cada una un grado de pertenencia de acuerdo a la variable de salida (Riesgo de accidente). Agregados: En este paso se combinan las salidas obtenidas de cada regla, del paso anterior, y se combinan en un único conjunto borroso utilizando un operador de adición (T conorma). Desdifusificación o Defuzzificación: La salida que genera el mecanismo de inferencia es una salida difusa, lo cual significa que no puede ser interpretada por un elemento externo (por ejemplo un controlador) que solo manipule información numérica. Para eso, hay que convertir la salida difusa de los mecanismos de inferencia; este proceso lo realiza el defuzzificador. Se trata del proceso inverso a la fuzzificación, y es el último paso para calcular el valor de salida de los modelos difusos. Es decir, determina un valor numérico para un conjunto difuso, obtenido a partir del paso anterior. Es la herramienta para obtener la acción de control nítida a partir de la acción de control difusa. Se calcula con los métodos ya vistos anteriormente. En el siguiente gráfico se muestra de manera más detallada como es el funcionamiento de un sistema difuso Mamdani. Figura 18 El diagrama de flujos de la inferencia difusa Mamndani se muestra en la siguiente figura: Figura 19 En la figura se muestra la configuración básica de un sistema tipo Mamdani: Figura 30 2.10.2. Inferencia difusa Takagi-Sugeno-Kang o TSK o Sugeno: Este mecanismo está basado en el método Mamdani que, como ya hemos visto, necesita de una fase de Defuzzificación, lo que desde el punto de vista computacional y de programación no es muy eficiente. Lo que propone el método Sugeno para disminuir el tiempo de inferencia y optimizar el proceso es aplicar una función matemática a la salida del agregado, es decir, del consecuente. Siendo así, el formato de inferencia TSK sería: IF X es A AND Y es B THEN Z es 𝑓(𝑥, 𝑦). Este tipo de método proporciona mayor eficiencia. Un tipo habitual de representación del consecuente es un singleton (punta discreta), que toma valor uno en cualquier valor puntual del universo de discurso, y cero en cualquier otro punto. En los sistemas difusos Sugeno se distinguen las siguientes partes: Fuzzificador: Realiza la misma función que en los sistemas Mamdani explicados anteriormente Mecanismo de inferencia difusa: Realiza la misma función que en los sistemas Mamdani explicados anteriormente Base de Reglas Difusas: Las reglas de la base de conocimiento de un sistema Sugeno es diferente a las de los sistemas Mamdani pues el consecuente de estas reglas ya no es una etiqueta lingüística sino que es una función de la entrada que tenga el sistema en un momento dado, esto se ilustra a continuación: Figura 41 En el sistema difuso tipo Sugeno, los valores que arrojan los consecuentes de las diferentes reglas que se han activado en un momento determinado ya son valores numéricos por lo que no se necesita una etapa de Defuzzificación. En el siguiente gráfico se muestra de manera más detallada como es el funcionamiento de un sistema difuso Sugeno. Figura 52. 3. Cuestionario: 3.1.¿Por qué usar la función de Membresía? Una función de membresía de un conjunto borroso A sobre un universo de discurso X es de la forma µA: X → [0,1], donde a cada elemento de X le corresponde un valor entre 0 y 1. Este valor, llamado valor de pertenencia o grado de pertenencia, representa el grado en el que el elemento de X pertenece al conjunto borroso A. Las funciones de membresía nos permiten representar gráficamente un conjunto borroso. En el eje “x” (abscisas) se representa el universo de discurso, mientras que en el eje “y” (ordenadas) se sitúan los grados de pertenencia en el intervalo [0,1]. 3.2.¿Cuándo usar la función de Membresía? Para la representación de los grados de pertenencia de cada uno de los elementos que conforman el conjunto difuso, lo más natural es extraer los datos de los fenómenos que se va a representar y, con ellos definir la forma de la función de membresía. De otra manera existen metodologías que permiten asignar grados de membresía a cada uno de los elementos del conjunto. 3.3.Diferencia entre inferencia lógica difusa Mamdani y Sugeno: Mamdani: La función de membresía está presente en la salida. Los resultados nítidos o crisp son obtenidos mediante la etapa de desdifusificación, o Defuzzificación. Menos flexibles en el diseño de sistemas. Superficie de salida no continua. Sugeno-Takagi: La función de membresía no está presente en la salida del sistema. Los resultados nítidos son obtenido usando el promedio ponderado de las reglas aplicadas a los consecuentes. No hay desdifusificación. Tiene una superficie de salida continua. Pérdida de interpretación. Es más flexible en diseño de sistemas. 3.4.Ejemplo de aplicación de lógica difusa: 3.4.1. Descripción del problema: Un robot de exploración cuenta con 5 baterías para su movilizarse por medio de motores DC, sin embargo, no utiliza todo el tiempo la potencia de todas ellas si no que cuenta con un sistema para elegir cuantas baterías requiere para el movimiento a realizar. Para la correcta elección de la potencia requerida al subir por una pendiente utilizaremos lógica difusa teniendo en cuenta 02 entradas (Pendiente y Velocidad). 3.4.2. Modelamiento en Matlab: Teniendo el problema identificamos las entradas y salida para su modelamiento en Matlab. Definimos las entradas Pendiente y Velocidad con rango de 0 a 1. Figura 23. Paso siguiente, definimos las funciones de membresía para las entradas. Para este modelo hemos elegido funciones de membresía con forma triangular. Para la variable pendiente se eligió los niveles: Baja, Media-Baja, Media-Alta y Empinada. Como se aprecia en la figura 24. Para la variable velocidad se consideró: Muy Lenta, Lenta, Media, Rápida y Muy Rápida. Como se ilustra en la figura 25. Figura 24 Figura 25 Para la salida se definen las siguientes funciones de membresía: Figura 26 Una vez definidas entradas y salida se procede a ingresar las reglas de nuestro sistema, estas deben ser brindadas por un experto para asegurar la funcionalidad del modelo de lógica difusa. Las reglas se observadas en las figuras 27 y 28 son las 20 reglas pertenecientes al problema planteado. Figura 27. 10 primeras reglas difusas utilizadas en el sistema de control difuso Figura 28. 10 restantes reglas difusas utilizadas en el sistema de control difuso. Con esto finalizamos nuestro modelo en Matlab y podemos hallar las gráficas de salida que nos proporciona el programa para entender como se comporta la salida del modelo de lógica difusa. Figura 29 Vista gráfica de las 20 reglas: Figura 10. Gráfica 3D del comportamiento de salida respecto a las 2 entradas. Figura 11. Gráfica del comportamiento de la Potencia respecto a la Pendiente. Figura 12. Gráfica del comportamiento de la Potencia respecto a la entrada Velocidad 4. Conclusiones: La lógica difusa es una extensión de la lógica tradicional que usa los valores entre la veracidad y la falsedad. Es una lógica fácil y esto permite modelar diferentes problemas de ingeniería para su solución. La inferencia difusa Sugeno es más flexible y al no tener funciones de membresía en su salida no es necesario una desfuzzyficación mientras que la inferencia difusa Mamdani es más fácil de interpretar. La simulación de modelos de lógica difusa en Matlab es relativamente sencilla y es una herramienta importante para entender los diversos problemas que se pueden plantear en esta plataforma. 5. Bibliografía: - Pedro Ponce Cruz (2011). “Inteligencia Artificial con aplicaciones en la ingeniería” - Hao Ying (2000). “Control Difuso y modelado: fundamentos de análisis y aplicaciones”. - Samuel Diciembre Sanahuja (2017) “Sistemas de control con lógica difusa: Métodos de Mamdani y Takagi-Sugeno-Kang (TSK)”. Tesis de grado en Matemática Computacional. Universidad JAUMEI. - Lofti A. Zadeh (1975) “Conceptos de variable lingüística y sus aplicaciones de aproximación de razonamiento”