Lógica Difusa - UpperSoft · diseñada por la Universidad de Kumamoto, en Yamakawa, Japón. Lic....
Transcript of Lógica Difusa - UpperSoft · diseñada por la Universidad de Kumamoto, en Yamakawa, Japón. Lic....
Lógica Difusa
Lic. Andrea V. Manna Departamento de Computación
Facultad de Ciencias Exactas y Naturales – U.B.A.
Grupo de Investigación en Agentes y Sistemas Inteligentes
C.A.E.T.I. UAI
Lic. Andrea V. Manna 2
Introducción - Definiciones
Lógica: Ciencia que establece las normas de los
principios formales del razonamiento
Lógica Difusa: Establece las normas de los
principios formales del razonamiento aproximado,
con el razonamiento preciso como caso límite.
Lic. Andrea V. Manna 3
Introducción - Orígenes
1965 – Lofti Zadeh – Universidad de California
1974 – Primera implementación, aplicada a control automático de procesos
En Japón se utiliza, por ej, en control de vehículos, robótica, reconocimiento del habla
1985 – Se fabrica el primer chip lógico y actualmente existe una computadora difusa diseñada por la Universidad de Kumamoto, en Yamakawa, Japón.
Lic. Andrea V. Manna 4
Introducción - Aplicaciones
Control de procesos industriales
Construcción de artefactos electrónicos, de uso
doméstico
Dispositivos artificiales de deducción automática
Finanzas
Control de vehículos
Robótica
Lic. Andrea V. Manna 5
Introducción - Concepto
A diferencia de la lógica clásica, modela los modos
imprecisos de razonamiento, que juegan un papel
esencial en la habilidad humana para tomar decisiones
razonables en un entorno de incertidumbre
Esta habilidad depende de
nuestra habilidad de inferir
una respuesta aproximada a
una pregunta que está basada
en conocimiento inexacto o
incompleto
Lic. Andrea V. Manna 6
Introducción - Características
Extiende a las lógicas clásicas. Son lógicas
multivaluadas
Procuran crear aproximaciones matemáticas en
la resolución de ciertos problemas
Pretenden producir resultados exactos a partir
de datos imprecisos
Incertidumbre, difusidad
Lic. Andrea V. Manna 7
Introducción - Características
No determinismo desconocido
El mayor poder expresivo de la lógica difusa es
que no sólo contiene como casos especiales a la
lógica clásica de dos valores, sino también a la
lógica probabilística.
Lic. Andrea V. Manna 8
Introducción - Ejemplos
En general, el razonamiento humano no es tan
determinista:
El auto se mueve rápido.
José es más alto que sus amigos.
¿Qué tan rápido?, ¿qué tan alto?
Lic. Andrea V. Manna 9
Lógica Clásica vs. Lógica Difusa
Lógica Clásica:
No hay forma de representar las imprecisiones del
lenguaje natural
Sólo utiliza dos valores de verdad: verdadero y falso
Existen proposiciones de entrada y de salida
Lógica Difusa:
Asigna otros valores de verdad además de los clásicos.
Se trata de grados de veracidad/falsedad más amplios
Se describen los grados de veracidad de las
proposiciones de salida en términos de las de entrada.
Lic. Andrea V. Manna 10
Lógica Clásica vs. Lógica Difusa
Logica clásica Lógica Difusa
Una propiedad p tiene dos
valores: verdadero o falso
Puede haber otros valores. Los cjtos.
pueden ser finitos o infinitos
Predicados deben ser subconj.
no difusos del Universo
Puede haber predicados difusos (“alto”)
y no difusos (“mortal”)
Permiten sólo 2 cuantificadores:
todos y algunos
Permiten otros tales como “pocos”,
“muchos”, “frecuentemente”, etc
Variables lingüisticas: “viejo” ó “joven”
para la variable “edad”
Lic. Andrea V. Manna 11
Conjuntos difusos - Definición
Conjunto: Colección bien definida de
elementos, donde se puede determinar para
cualquier objeto del universo, si pertenece o no
al conjunto.
Conjunto Difuso: A cada elemento del universo
se le asocia un grado de pertenencia (un
número entre 0 y 1) a ese conjunto.
Lic. Andrea V. Manna 13
Conjuntos difusos - Ejemplos
Consideremos estudiantes universitarios
entre 18 y 40 años.
Queremos saber el conjunto de personas
con estudios universitarios incompletos
en el año 2003
¿Consideramos a quienes sólo dieron el examen de ingreso?
¿Y si cursaron un día?¿Y si les falta un examen?
Lic. Andrea V. Manna 14
Conjuntos difusos - Ejemplos
Consideramos si aprobó al menos una materia
Para una persona x, tomamos m(x), como la cantidad de materias aprobadas. Entonces tendremos:
1 si m(x)>=1
fe(x)=
0 si m(x)=0
Lic. Andrea V. Manna 15
Conjuntos difusos - Ejemplos
Consideramos la proporción de aprobación
Si suponemos que en la carrera hay 40 materias
en total, entonces podemos tomar:
fp(x)= m(x)/40
Lic. Andrea V. Manna 16
Conjuntos difusos - Ejemplos
Consideramos la proporción de aprobación más
el tiempo que lleva de estudios.
Si suponemos que en la carrera hay 40 materias
en total y que normalmente tomaría 5 años
terminar los estudios, entonces podemos tomar
el mínimo entre 1 y la siguiente función:
fat(x)= m(x)/40 + t(x)/5
Lic. Andrea V. Manna 17
Conjuntos difusos – Grado de Pertenencia
El grado de pertenencia g a un conjunto difuso D,
puede interpretarse de diferentes maneras, en
diferentes contextos:
Proporción en la que se posee D (siendo D un
atributo): 100*g(x)
Probabilidad de que x ocurra en D (siendo D un
evento probabilístico): Prob(x ε D)
Grado con el que se cree que x posee el atributo D
Lic. Andrea V. Manna 18
Conjuntos difusos – Proporciones
Complemento: El complemento de un conjunto difuso D asigna a x el grado complementario:
1-g(x)
Intersección: La intersección de dos conjuntos difusos D1 y D2 asocia el mínimo de los grados de pertenencia, es decir, para cada x:
I=Min(gD1 ∩ gD2)
Unión: La unión de dos conjuntos difusos D1 y D2 asocia el máximo de los grados de pertenencia, es decir, para cada x: U=Max(gD1 U gD2)
Lic. Andrea V. Manna 19
Conjuntos difusos – Probabilidad
Complemento: La probabilidad del complemento de un conjunto difuso D, es la probabilidad complementaria: gC(x) = 1 - gD(x)
Intersección: Ocurrencia simultánea de dos eventos: ligada a Probabilidad condicional.
Prob(A/B)Prob(B)=Prob(B/A)Prob(A) T.Bayes
Densidad de prob. Condicional: funcion d(A/B) tal que a cada objeto x le asocia un valor d(A/B)(x) tal que
d(A/B)(x)gB(x)= d(B/A)(x)gA(x)
Dados D1 y D2 conjuntos difusos, el grado de pertenencia a la intersección es: gD1∩D2(x)=d(D1
/ D2)(x)gD2(x)
Unión: La probabilidad de que ocurra uno u otro evento es: gD1UD2(x)= gD1(x) + gD2(x) - gD1∩D2(x)
Lic. Andrea V. Manna 20
Conjuntos difusos – Medidas de Creencia
Complemento: Idem anterior: gC(x) = 1 - gD(x)
Intersección:Dados D1 y D2 conjuntos difusos y gD1(x) y gD2(x) sus grados de pertenencia, se define a la intersección como:
0 si gD1(x) + gD2(x) < 1
gD1∩D2(x)=
gD1(x) + gD2(x) – 1 si gD1(x) + gD2(x) ≥ 1
max(gD1(x),gD2(x))
Unión: Dadas las condiciones anteriores, se define como:
1 si gD1(x) + gD2(x) > 1
gD1UD2(x)=
max gD1(x) , gD2(x) si gD1(x) + gD2(x) ≤ 1
(1-gD2(x)) (1-gD1(x))
Lic. Andrea V. Manna 21
Conjuntos Definibles - Definición
A partir de las operaciones vistas, se forman conjuntos difusos más complejos, por aplicación sucesiva de estos operadores, partiendo de un conjunto difuso primitivo.
Dados D1,....., Dn conjuntos difusos primitivos, la clase de conjuntos definibles son los que surgen de las siguientes reglas:
Todo conjunto primitivo es definible
El complemento de todo conjunto definible, es también definible
La unión y la intersección de dos conjuntos definibles, son también conjuntos definibles.
Lic. Andrea V. Manna 22
Conjuntos Definibles - Ejemplos
Por ejemplo, dados A1 y A2 conjuntos difusos primitivos, los siguientes conjuntos son definibles:
A1U Ā2
(A1∩ Ā2 ) ∩ A1
(Ā1∩ Ā2) U (A1 ∩ A2)
Ā1
Lic. Andrea V. Manna 23
Conjuntos Definibles - Características
Notación:
f(D1,.....,Dn) es un conjunto definible
gf(D1,....., Dn)(x) es la función que a cada x del universo le asocia un grado de pertenencia al conjunto definible. Dicha función g puede verse como la composición de los grados de pertenencia de los conjuntos primitivos
Lic. Andrea V. Manna 24
Conjuntos Definibles - Problemas
Problema 1:
Para un conjunto definible f(D1,....., Dn)
y un objeto x, si se sabe que el grado de
pertenencia gDi(x) cae dentro del
intervalo [ai, bi], entonces se puede
estimar el intervalo I donde cae el grado
de pertenencia gf(D1,....., Dn)(x)
El grado de pertenencia de x se obtiene por aplicación
sucesiva de las operaciones de complemento, unión e
intersección sobre los conjuntos involucrados.
A este tipo de problemas, se los conoce como problemas
de deducción o pronósticos
Lic. Andrea V. Manna 25
Conjuntos Definibles - Problemas
Problema 2:
Para un conjunto definible f(D1,....., Dn) y un objeto x,
si se sabe que el grado de pertenencia gf(D1,....., Dn)(x)
cae en el intervalo I, y que para algunos conjuntos
primitivos Dk, Dk+1.....,Dn, sus grados de pertenencia
gDi(x) caen en intervalos [ai, bi] con i=k,..,n, entonces
se puede estimar para los otros índices i=1,..k-1, en
qué intervalos [ai, bi] deberían caer sus grados de
pertenencia gDi(x)
Conociendo los valores finales gf(D1,....., Dn)(x) y algunos iniciales gDi(x), y
aplicando funciones de complemento, unión e intersección, se intenta
determinar los valores que debieron asumir el resto de los grados de
pertenencia iniciales para llegar a los valores finales. A este tipo de
problemas, se los conoce como problemas de diagnósticos
Lic. Andrea V. Manna 26
Conjuntos Definibles - Problemas
Al primero de los problemas vistos, se lo conoce como
problema de deducción y al segundo de los problemas,
como problema de inferencia
Lic. Andrea V. Manna 27
Reglas Básicas de Inferencia
Reglas categóricas: No poseen cuantificadores
lógicos
Reglas disposicionales: Una o más premisas
pueden contener, explícita o implícitamente, el
cuantificador difuso “usualmente”
Lic. Andrea V. Manna 28
Reglas Básicas de Inferencia
Principio de vinculación
X is A
A B
X is B
X variable difusa
A y B conjuntos difusos
Lic. Andrea V. Manna 29
Reglas Básicas de Inferencia
Principio de vinculación disposicional
usualmente (X is A)
A B
usualmente X is B
X variable difusa
A y B conjuntos difusos
Si “usualmente” se reemplaza por “siempre”,
entonces esta ecuación reduce en la anterior
Lic. Andrea V. Manna 30
Reglas Básicas de Inferencia
Regla conjuntiva
X is A
X is B
X is (A ∩ B)
X variable difusa
A y B conjuntos difusos
Lic. Andrea V. Manna 31
Reglas Básicas de Inferencia
Producto Cartesiano
X is A
Y is B
(X,Y) is (A x B)
X,Y variables difusas
A y B conjuntos difusos
(X,Y) variable binaria
Lic. Andrea V. Manna 32
Reglas Básicas de Inferencia
Regla de Proyección
(X,Y) is R
X is xR
(X,Y) variable binaria
X variable difusa
R relación binaria
xR proyección de la relación binaria R sobre el
dominio de X
Lic. Andrea V. Manna 33
Reglas Básicas de Inferencia
Regla Composicional
X is A
(X,Y) is R
Y is A◦R
X variable difusa
(X,Y) variable binaria
R relación binaria
A conjunto difuso
A◦R composición de A con la relación binaria R.
Lic. Andrea V. Manna 34
Reglas Básicas de Inferencia
Modus Ponens Generalizado
X is A
Y is C if X is B
Y is A◦(¬BC)
X,Y variables difusas
A, B y C conjuntos difusos
Producto entre números difusos
Lic. Andrea V. Manna 35
Reglas Básicas de Inferencia
Modus Ponens Disposicional
usualmente (X is A)
usualmente (Y is C if X is B)
usualmente2 (Y is B)
X,Y variables difusas
A, B y C conjuntos difusos
usualmente2 cuadrado “difuso” de usualmente
Lic. Andrea V. Manna 36
Reglas Básicas de Inferencia
Principio de Extensión
X is A
f(X) is f(A)
X variable difusa
A conjunto difuso
f(A) conjunto definible
f(X) grado de pertenencia de X en A
Lic. Andrea V. Manna 37
Reglas Básicas de Inferencia
Principio de Extensión Disposicional
usualmente (X is A)
usualmente (f(X) is f(A))
X variable difusa
A conjunto difuso
f(A) conjunto definible
f(X) grado de pertenencia de X en A
Lic. Andrea V. Manna 38
Variables lingüísticas
Variable cuyos valores son
palabras o sentencias en
lenguaje natural
Ejemplos:
Edad: joven, viejo, muy joven, demasiado viejo
Lic. Andrea V. Manna 39
Variables lingüísticas - Categorización
Término primario (“joven”)
Su antónimo (“viejo”)
Una colección de modificadores (“muy”,
“menos”, “not”, “no mucho”, etc)
Conectivos “and” y “or”
Ejemplo:
no muy joven y no muy viejo
Lic. Andrea V. Manna 40
Una aplicación interesante
Instituto de Tecnología de Tokio
Sistema de control para autos basado en lógica
difusa
Movimiento autónomo a lo largo de una
trayectoria rectangular y con estacionamiento en
un determinado lugar
Habilidad: aprender de los ejemplos
Lic. Andrea V. Manna 41
Una aplicación interesante: El auto difuso
Variable de control Y: representa el ángulo de dirección y se calcula en función de variables X1,..,Xn que forman la distancia del auto a los límites de la pista
X1,..,Xn son variables lingüísticas
La política de control está representada por una colección finita de reglas de la forma:
Ri: if (X1 is Ai1) and ... and (Xn is Ai
n)
then
Yi = ai0 + ai
1x1 +...+ainXn
Cjto. De
valores
lingüísticos
Parámetros
ajuste Valor sugerido
i-esima
regla
Lic. Andrea V. Manna 43
Un ejemplo sencillo: Sistema de control de
temperatura
Se trata de controlar si el agua de nuestra ducha
está a punto, caliente o fría
Se debe determinar la temperatura del agua, en
función de ella, mover la perilla a la izquierda
para calentar el agua, o a la derecha para
enfriarla
Los valores difusos serán: “caliente”, “fría”,
“izquierda”, “derecha”
Lic. Andrea V. Manna 44
Un ejemplo sencillo: Sistema de control de
temperatura
Las reglas para este ejemplo sencillo serán de la
siguiente manera:
Si el agua está caliente, girar la perilla a la derecha
Si el agua está fría, girar la perilla a la izquierda
Si el agua está justa, no girar la perilla
Parece sencillo, pero...
Lic. Andrea V. Manna 45
Un ejemplo sencillo: Sistema de control de
temperatura
Definamos los conjuntos difusos para las variables
input variable: water_temperature
fuzzy sets: cold, just_right, hot
input variable: rotate
fuzzy sets: left, none, right
Lic. Andrea V. Manna 46
Un ejemplo sencillo: Sistema de control de
temperatura
El siguiente paso es
definir los valores
difusos.
Se ha decidido que 100
grados es la
temperatura ideal
Por debajo de 100 es
frio y por encima es
caliente
Lic. Andrea V. Manna 47
Sistema de control de temperatura: Ciclo de
control difuso
Hasta ahora tenemos:
Una variable de entrada y sus conjuntos difusos
Una variable de salida y sus conjuntos difusos
Un conjunto de reglas relacionando los valores difusos de los conjuntos difusos de entrada y de salida
Un sistema de control difuso, trabaja sobre un ciclo:
Convierte las variables de entrada a valores que pertenecen a cada conjunto (fuzzification)
Usa las reglas para derivar valores difusos para las variables de salida
Convierte los valores pertenecientes a los conjuntos de salida difusos en variables de salida (defuzzification)
Lic. Andrea V. Manna 48
Ciclo de control difuso:Fuzzification
Esta parte es fácil. Se toma el valor de entrada y se ve,
según el gráfico, que valores le corresponde a cada
variable. Por ejemplo, si tomamos una temperatura de 96
grados:
cold: 0.2
just_right: 0.6
hot: 0
En otras palabras, 96 grados resulta bastante bien, pero
un poquito fría
Lic. Andrea V. Manna 49
Ciclo de control difuso:Aplicar reglas
Relacionan el conjunto de valores difusos de entrada con el conjunto difuso de salida
Si el agua está caliente, girar la perilla a la derecha
Si el agua está fría, girar la perilla a la izquierda
Si el agua está justa, no girar la perilla
Para nuestra temperatura ejemplo de 96 grados:
left: 0.2
none:0.6
right: 0
Lic. Andrea V. Manna 50
Ciclo de control difuso:Defuzzification
La solución no es obvia. Es decir, con los valores dados, notamos que debemos mover la perilla un poquito a la izquierda. Pero, ¿Cómo hacemos para que un programa lo calcule?
En el ejemplo, se usa calcular el promedio pesado de los centroides. Un centroide es el centro de gravedad de una figura.
Centro de gravedad de left: -15
Centro de gravedad de none: 0
Promedio pesado tomando area de cada uno: -4.93
Lic. Andrea V. Manna 51
Sistema de control de temperatura Movemos la perilla inicialmente 50 grados a la izquierda
Solo ajustamos la temperatura si baja más de 0.8
Factor externo: inodoro
4 iteraciones
2 iteraciones
Lic. Andrea V. Manna 52
Sistema de control de temperatura
Se pueden agregar conjuntos difusos tales como
“muy frío” o “muy caliente”, “muy a la derecha” o
“muy a la izquierda”
El modificador “muy”, normalmente se toma
como el cuadrado del valor difuso. Así, por
ejemplo, si 0.8 es frío, 0.64 es muy frío
Lic. Andrea V. Manna 53
Sistema de control de temperatura:
Modificación
Se tienen dos perillas: una para el agua caliente y otra para el agua fría
Además hay una restricción para el flujo de agua: lo ideal es 2.5 galones por minuto
Ahora hay dos variables de entrada: temperatura del agua y flujo del agua, y dos salidas para los controles de caliente y frío. Las salidas se expresan en función de abrir/cerrar en vez de frío/caliente
Se precisan dos conjuntos de reglas, uno por cada control:
Lic. Andrea V. Manna 57
Sist. de control de temperatura:Implementación
if water_temperature is hot then rotate right
Las reglas soportan: fzis (is), fzand (and), fzor (or),
fznot (not), mucho (cuadrado), poco (raiz cuadrada)
Lic. Andrea V. Manna 58
Sist. de control de temperatura:Implementación
Reglas que calculan el valor de la temperatura del agua basado en la posición de control. Este cálculo depende del flujo de agua
Lic. Andrea V. Manna 59
Sist. de control de temperatura:Implementación
El frame control es usado para controlar la
simulación.
Cada uno tiene una condición bajo la cual es
aplicado y un conjunto de acciones a tomar
cuando se aplica
Las condiciones pueden ser referidas a variables
difusas, las cuales precisan ser convertidas a
booleanas
El loop principal de control, busca una regla de
control, la aplica y luego comienza el ciclo de
nuevo.
Lic. Andrea V. Manna 61
Sist. de control de temperatura:Implementación
Inicializa el sistema y además se pueden usar
diferentes inicializaciones para diferentes
escenarios