Documentos de Académico
Documentos de Profesional
Documentos de Cultura
el modelo de Mamdani y
el modelo de TSK (Takagi, Sugeno y Kang).
El método de inferencia difusa de Mandami es posiblemente es el método más ampliamente utilizado, propuesto por Ebrahim Mamdani
en 1975. El proceso se realiza en cuatro pasos:
La inferencia difusa puede definirse como el proceso que consiste en obtener un valor de salida o resultado para un(os) valor(es) de
entrada empleando como punto de partida la teoría de conjuntos difusos. Para este propósito se utilizan las reglas difusas. Una regla
difusa, también conocidad como regla de producción difusa if-then, es expresada simbólicamente como:
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 1/39
29/8/2019 Inferencia_Difusa_v1.1
Donde puede ser una proposición difusa atómica o compuesta, esto es, una variable en combinación con una variable lingüística.
Podemos definir una proposición sencilla de este tipo mediante:
p: IF X es A THEN Y es B
El antecedente y consecuente de una regla puede tener múltiples partes. Veremos a continuación cómo se trabaja con estos formatos de
reglas. En los sistemas de reglas clásicos, si el antecedente es cierto, el consecuente es también cierto.
En sistemas fuzzy donde el antecedente es difuso, todas las reglas se ejecutan parcialmente, y el consecuente es cierto en cierto grado,
esto es, si el antecedente es cierto con cierto grado de pertenencia, el consecuente es cierto también el cierto grado.
x
Veamos a continuación un ejemplo de uso empleando tres reglas. Estas reglas usan como variables lingüísticas (financiación del
y z X A1 , A2 , A3
proyecto), (plantilla del proyecto) y (riesgo). Los conjuntos definidos sobre el dominio de son (inadecuado, marginal,
adecuado), sobre el dominio de con Y B1 , B2 Z C1 , C2 C3
(pequeña, grande) y sobre el universo del discurso de son y (bajo, normal y
alto)
Como ya indicamos, un sistema de control difuso vincula variables difusas utilizando un conjunto de reglas. Estas reglas son simplemente
asignaciones que describen cómo una o más variables difusas se relacionan con otras variables difusas. Estos se expresan en términos
de una declaración IF-THEN; la parte IF se llama antecedente y la parte ENTONCES es la consecuente. La matemática exacta
relacionada con cómo se usa una regla para calcular el valor del consecuente basado en el valor del antecedente está fuera del alcance
de este documento.
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 2/39
29/8/2019 Inferencia_Difusa_v1.1
Universos de discurso
x = financiación del proyecto, valores reales de 1 a 100 por ciento
y = plantilla del proyecto, valores reales de 1 a 100 por ciento y
z = riesgo, valores reales de 1 a 100 por ciento
In [0]: 1 x = np.arange(0, 101, 1)
2 y = np.arange(0, 101, 1)
3 z = np.arange(0, 101, 1)
Conjuntos difusos
x y
Los conjuntos definidos sobre el dominio de son A1, A2, A3 (inadecuado, marginal, adecuado), sobre el dominio de y son B1, B2
z
(pequeña, grande) y sobre el universo del discurso de son C1, C2 y C3 (bajo, normal y alto).
Reglas:
Regla 1: IF x IS A3 OR y IS B1 THEN z IS C1
Regla 2: IF x IS A2 AND y IS B2 THEN z IS C2
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 3/39
29/8/2019 Inferencia_Difusa_v1.1
Regla 3: IF x IS A1 THEN z IS C3
Procedimiento
1. Fuzificación.
El primer paso consiste en tomar los valores crisp de las entradas (financiacion-del-proyecto y plantilla-del-proyecto) y determinar el grado
de pertenencia de estas entradas a los conjuntos difusos asociados.
El valor crisp naturalmente estará limitado en el universo del discurso de la variable. En nuestro caso, x e y estarán limitadas al universo
X Y
del discurso de e respectivamente.
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 4/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 5/39
29/8/2019 Inferencia_Difusa_v1.1
En nuestro caso vamos a suponer que un experto asigna a x un valor del 35 % (financiacion-proyecto) y a y un valor de 60 % (plantilla-
proyecto).
x
Como se puede ver estos valores Crisp se corresponden con los valores de pertenecia de A1 y A2 (en el caso de ) con 0.5 y 0.2, y con
los valores de B1 y B2 (en el caso de y) con 0.1 y 0.7 respectivamente. De este modo cada entrada se fuzzifica sobre todas las funciones
de pertenencia utilizadas en la reglas difusas.
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 6/39
29/8/2019 Inferencia_Difusa_v1.1
In [0]: 1 presupuesto = 35
2 plantilla = 60
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 7/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 8/39
29/8/2019 Inferencia_Difusa_v1.1
2. Evaluación de Reglas
Tomamos las entradas anteriores y se aplican a los antecedentes de las reglas difusas. Si una regla tiene múltiples antecedentes, se
utiliza el operador AND u OR para obtener un único número que represente el resultado de la evaluación. Este número (el valor de
verdad) se aplica al consecuente. Para evaluar la disjución (operador OR) habitualmente se emplea la T-Conorma estándar (máximo),
definida como hemos visto como: µA∪B (x) = max[µA (x), µB (x)]
. De igual forma, para el AND se usa habitualmente la T-Norma estándar
del mínimo.
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 9/39
29/8/2019 Inferencia_Difusa_v1.1
Finalmente el resultado de la evaluación del antecedente se alpica al consecuente, aplicando un recorte o escalado según el valor de
verdad del antecedente. El método más comunmente utilizado es el recorte (clipping) que corta el consecuente con el valor de verdad del
antecedente. El escalado proporciona un valor más preciso, preservando la forma original del conjunto difuso
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 10/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 11/39
29/8/2019 Inferencia_Difusa_v1.1
Regla 1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 12/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 13/39
29/8/2019 Inferencia_Difusa_v1.1
Regla 2
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 14/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 15/39
29/8/2019 Inferencia_Difusa_v1.1
Regla 3
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 16/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 17/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 18/39
29/8/2019 Inferencia_Difusa_v1.1
4. Defuzificación
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 19/39
29/8/2019 Inferencia_Difusa_v1.1
El resultado final habitualmente es necesario expresarlo mediante un valor crisp. En esta etapa se toma como entrada el conjunto difuso
anteriormente obtenido para dar un valor de salida. Existen varios métodos de defuzificación, pero probablemente el más ampliamente
usado es el centroide; que calcula el punto donde una línea vertical divide el conjunto en dos areas con igual masa.
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 20/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 21/39
29/8/2019 Inferencia_Difusa_v1.1
Conclusión
Por lo que la conclusión con el Modelo de Mandami para la configuración de datos de entradas de financiación del proyecto del
35% y plantilla del proyecto del 60%, es que el riesgo asociado del proyecto es normal.
La principal diferencia que presenta el método TSK respecto al de Mamdani es que no es necesario realizar un proceso de
defuzzificación. Esto se debe al hecho de que no obtenemos ningún conjunto difuso sino un conjunto de funciones lineales. Así, en el
método TSK podemos obtener directamente el valor de salida de sistema.
Universos de discurso
x = financiación del proyecto, valores reales de 1 a 100 por ciento
y = plantilla del proyecto, valores reales de 1 a 100 por ciento y
z = riesgo, valores reales de 1 a 100 por ciento
In [0]: 1 x = np.arange(0, 101, 1)
2 y = np.arange(0, 101, 1)
3 z = np.arange(0, 101, 1)
Procedimiento
1. Fuzificación.
El primer paso como con Mandami, consiste en tomar los valores crisp de las entradas (financiacion-del-proyecto y plantilla-del-proyecto)
y determinar el grado de pertenencia de estas entradas a los conjuntos difusos asociados.
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 22/39
29/8/2019 Inferencia_Difusa_v1.1
El valor crisp naturalmente estará limitado en el universo del discurso de la variable. En nuestro caso, x e y estarán limitadas al universo
X Y
del discurso de e respectivamente.
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 23/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 24/39
29/8/2019 Inferencia_Difusa_v1.1
En nuestro caso vamos a suponer que un experto asigna a x un valor del 35 % (financiacion-proyecto) y a y un valor de 60 % (plantilla-
proyecto).
x
Como se puede ver estos valores Crisp se corresponden con los valores de pertenecia de A1 y A2 (en el caso de ) con 0.5 y 0.2, y con
los valores de B1 y B2 (en el caso de y) con 0.1 y 0.7 respectivamente. De este modo cada entrada se fuzzifica sobre todas las funciones
de pertenencia utilizadas en la reglas difusas.
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 25/39
29/8/2019 Inferencia_Difusa_v1.1
In [0]: 1 presupuesto = 35
2 plantilla = 60
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 26/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 27/39
29/8/2019 Inferencia_Difusa_v1.1
2. Evaluación de Reglas
Tomamos las entradas anteriores y se aplican a los antecedentes de las reglas difusas. Si una regla tiene múltiples antecedentes, se
utiliza el operador AND u OR para obtener un único número que represente el resultado de la evaluación. Este número (el valor de
verdad) se aplica al consecuente. Para evaluar la disjución (operador OR) habitualmente se emplea la T-Conorma estándar (máximo),
definida como hemos visto como: µA∪B (x) = max[µA (x), µB (x)]
. De igual forma, para el AND se usa habitualmente la T-Norma estándar
del mínimo.
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 28/39
29/8/2019 Inferencia_Difusa_v1.1
Finalmente el resultado de la evaluación del antecedente se alpica al consecuente, aplicando un recorte o escalado según el valor de
verdad del antecedente. El método más comunmente utilizado es el recorte (clipping) que corta el consecuente con el valor de verdad del
antecedente. El escalado proporciona un valor más preciso, preservando la forma original del conjunto difuso
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 29/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 30/39
29/8/2019 Inferencia_Difusa_v1.1
Regla 1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 31/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 32/39
29/8/2019 Inferencia_Difusa_v1.1
Regla 2
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 33/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 34/39
29/8/2019 Inferencia_Difusa_v1.1
Regla 3
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 35/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 36/39
29/8/2019 Inferencia_Difusa_v1.1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 37/39
29/8/2019 Inferencia_Difusa_v1.1
Out[26]: 0.5
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 38/39
29/8/2019 Inferencia_Difusa_v1.1
Conclusión
Por lo que la conclusión con el Modelo de TSK para la configuración de datos de entradas de financiación del proyecto del 35% y
plantilla del proyecto del 60%, es que el riesgo asociado del proyecto es alto.
In [ ]: 1
localhost:8888/notebooks/prueba101/IA-1/Inferencia_Difusa_v1.1.ipynb 39/39