Laboratorio de IA
Lógica Difusa
Enrique Onieva Caracuel
enrique.onieva@deusto.es
Una cita para empezar
There are no whole truths; all truths are
half- truths. It is trying to treat them as
whole truths that plays the devil.
- Alfred North Whitehead
Conjuntos Difusos
Introducidos por Lotfi Asker Zadeh
en 1965
Están estrechamente ligados con
predicados imprecisos
- Es decir, aquellos cuyos nombres no
definen de una manera precisa a un
conjunto de objetos
Fue diseñada para representar y
razonar sobre conocimiento
expresado de forma lingüística
Lotfali A. Zadeh in 2004
Conjuntos clásicos
La teoría de conjuntos clásica es una rama de las
matemáticas que estudia los conjuntos
- {1, 6, 3, 7, 9} es un conjunto de números enteros
- {0, 1, 2, 3, 4, 5} es el conjunto de enteros entre 0 y 5
- {'a', 'b', 'c'} es un conjunto de caracteres
- {"Inteligencia", "Artificial", "Avanzada"} es un conjunto de
palabras
- [5, 8] es el conjunto de los números reales entre 5 y 8
- Incluso hay conjuntos de conjuntos
Conjuntos clásicos: Orden y Pertenencia
Recordemos que en un conjunto, el orden no
importa:
- {1,2,3} = {3,2,1}
- (por lo general se ordenan para facilitar su lectura)
El concepto importante de la teoría de conjuntos es
que un determinado elemento pertenece o no a un
conjunto
- 5 no pertenece al conjunto {1, 2, 3}
- 2 sí pertenece al conjunto {1, 2, 3}
Definición de Conjuntos Clásicos
Un conjunto (S) se define mediante
- Un universo de discurso
(X)
· Un grupo de elementos que pertenecen a él (A)
Para definir un conjunto, podemos
- Enumerar los elementos que pertenecen a él
- Especificar una propiedad que deben cumplir los elementos
que pertenecen
- Definiendo una función característica
ps : X -> {0,1}
1 si x pertenece a S
0 en otro caso
Ejemplo de conjunto clásico
Conjunto de números entre 5 y 8
Personas que miden más de 180cm
○
A = (180,300]
ps(x) =
MS(x) = 1,5 _ x 28
0,x > 8
10,x ≤ 180
1,x > 180
1
Tenemos un conjunto de "personas altas", Pero
- ¿Hay diferencia entre alguien que mide 179 y 181 cm?
- ¿Es tanta como para que uno pertenezca y el otro no?
- ¿Y entre alguien que mide 179.9 y 181.1 cm?
¿Cómo definir el conjunto de "personas altas"?
Generalización de la Pertenencia en Conjuntos Difusos
Los conjuntos difusos generalizan la definición de
pertenencia
- Permitiendo que los elementos pertenezcan al conjunto con un
determinado grado
- En lugar de que un elemento pertenezca (1) o no (0) a un conjunto
- Se permite que un elemento pertenezca "parcialmente" a un conjunto
Pasamos de una función característica
Conjunto nítido
ps : X -> {0,1}
A una función de pertenencia
Conjunto difuso
ps : X -> [0,1]
Graduación en Conjuntos Difusos
Esta graduación permite trabajar con
conjuntos cuyas fronteras no están
exactamente definidos
- Personas altas
- Personas jóvenes
- Temperatura baja
1 > pertenece
1-
Gente Joven
Enfoque
Clásico
0 > NO pertenece
120
1 > pertenece
Enfoque
Difuso
(0,1) > pertenece con cierto grado
0 -> NO pertenece
120
35
En muchos casos, las funciones de pertenencia no tienen
unos criterios claramente definidos ... pero nosotros
entendemos lo que quiere decir que:
- Una persona es alta, joven ... que un producto es caro, barato ...
Pero, ¿Podemos modelarlo matemáticamente?
Funciones de Pertenencia
Permiten modelar esos grados de pertenencia
- Puede representarse como una función, (especialmente) cuando
el universo de discurso es contínuo
■
Eje X: Universo de discurso
■
Eje Y: Grados de pertenencia - Intervalo [0,1]
■
Puede ser cualquier función que devuelva un valor en el intervalo [0,1]
El contexto es fundamental para la definición de los
conjuntos difusos
- No es lo mismo el concepto
"Alto" aplicado a personas
que a edificios
1 > pertenece
(0,1) > pertenece con cierto grado
0 -> NO pertenece
120
35
Tipos de Funciones de Pertenencia
Función Triangular
- De las más utilizadas
- Requiere de 3 parámetros
■
■
Comúnmente llamados a,b,c
asb≤c
- Sólo alcanza el grado de
pertenencia máximo en un
punto
f(x, {a, b, c}) =
x-a
b-a, a < x <b
c-I b < x < c
c- 5,0
0, otro caso
1
0.75
b
0.5
a
C
0.25
0
2
4
6
8
10
trimf. P = [3 6 81
Función Trapezoidal
- De las más utilizadas
- Requiere de 4 parámetros
.
Comúnmente llamados a,b,c,d
■
asb≤c≤d
- Equivalente a la triangular
cuando b=c
f(x, {a, b, c, d}) =
d-x
x-a
b-a,a<x<b
1,6 < x <c
d-c, c < x < d
0, otro caso
1
0.75
b
C
0.5
a
d
0.25
O
C
2
4
6
8
10
trapmf. P = [1 5 7 8]
Funciones de Pertenencia Avanzadas
Función Gaussiana
■
Comúnmente llamados m y d (media y desviación)
■
d>0
- Función más suave que las otras (sin
"picos", derivable)
- En los límites, el valor va tendiendo a cero
-(2-m)2
f(x, {m, d}) = e 2d2
1
F
0.75
m
0.5
0.25
d
0
0
2
4
6
8
10
qaussmf. P = [2 5]
Función Pl (I)
- Requiere de 4 parámetros
Comúnmente llamados a,b,c,d
■
asb≤c≤d
- Versión "suavizada" del trapecio
f(x, {a, b, c, d}) =
2(₹@)2,a << b
1-2(E=q)2,at6 <<< b
1,6 <x<c
1-2(=)2,c << td
2(=d), ca << d
0, otro caso
1
0.75
b
C
0.5
a
d
0.25
0
0
2
4
6
8
10
pimf. P = [1 4 5 10]
Otras Funciones de Pertenencia
Existen otras muchas funciones standard,
implementadas en librerías
- Función S, Z, Sigmoide ...
- Cualquier función puede ser una función de pertenencia
- Funciones descritas a trozos (por polígonos)
1
1
1
0.75
0.75
0.75
0.5
0.5
0.5
0.25
0.25
0.25
0
0
O
2
4
6
8
10
0
2
4
6
8
10
2
4
6
8
10
Propiedades de los conjuntos difusos
Soporte
Sop(A) = {x |/A >0,xEX}
- Elementos, o rango de elementos cuyo grado de pertenencia al conjunto
es mayor que cero
Altura
Alt(A) = max{h|h = HA(x), x € X}
- Grado de pertenencia máximo de los elementos del conjunto
- Decimos que un conjunto difuso es Normal cuando su altura es igual a 1
Núcleo
Nuc(A) = {x € X|PA(x) = 1}
- Elementos, o rango de elementos cuyo
grado de pertenencia al conjunto es 1
K-Nuc->
1.00
0.75
0.50
₭ Alt-
0.25
0.00
-Sop-
Operaciones con conjuntos difusos
Las 3 operaciones básicas que se definen sobre los
conjuntos crisp, pueden generalizarse para los
conjuntos difusos
- Unión
- Intersección
- Complemento
Estas operaciones nos permitirán tratar con
información más completa
- Quiero la intersección entre los jugadores que son "altos" y
"buenos tiradores"
Tipos de Operaciones con Conjuntos Difusos
Unión (T-Conorma)
Đ : [0,1] > [0,1]
- Conmutativa, Asociativa, Monotonicidad,
Condiciones frontera
IOy=yOx
x + (y @ z) = (roy) @z
Six Sy > roz yoz
x40 = x
x01=1
Intersección (T-Norma)
®:[0,1]2 ->[0,1]
- Conmutativa, Asociativa, Monotonicidad,
Condiciones frontera
roy=yox
x ® (yz) = (roy) 8z
Six ≤y - roz ≤yoz
x@0=0
x01= x
Complemento
: [0,1] => [0,1]
- Concordancia con el Caso nítido,
Estrictamente Decreciente, Involución
-(0) = 1
-(1) = 0
Va, B E [0,1] a > B-> -(a) <- (3)
Va E [0, 1] -(-(a) = a
Operaciones básicas con conjuntos difusos
Unión
- Puede identificarse con el conectivo "OR"
- Ejemplos: Máximo, Suma algebraica, Suma
acotada ...
max{x, y}
x+y-x.y
min{1,x+y}
PAUB = max {HA(x), pB(x)}
Intersección
- Puede identificarse con el conectivo "AND"
- Ejemplos: Mínimo, Producto, Producto Acotado ...
max{0,x+y-1}
min{x, y}
x . y
XI
HANB = min{HA(x), LB(x)}
Complemento
- Puede identificarse con el modificador "NOT"
(1-x)
(1-p.x)
- Complemento general, Yager, Sugeno ...
1- x
(1 - xP)1/P, (p € [0,1])
P-A=1 -PA(x)
Ejemplo: Seleccionador de baloncesto
Supongamos que queremos hacer un sistema que elija
jugadores para un equipo de baloncesto
Si usáramos lógica clásica, podríamos establecer:
- Quiero jugadores que tengan una altura superior a 185 cm
Y que además, tengan un porcentaje de acierto en tiro superior al 80%
- ¿Cuáles serán elegidos?
¿Ves algún problema con este enfoque?
¿Cuáles elegirías tú?
Jug
Alt
Aci
Solución
Clásica
A
167
75
?
B
169
35
?
C
175
95
?
D
179
75
?
E
183
100
?
F
186
85
?
G
187
75
?
H
190
80
?
I
200
75
?
Seleccionador de Baloncesto con Lógica Difusa
Con lógica difusa
- Buscamos la intersección entre el
conjunto de los jugadores altos y los
que tienen buen porcentaje de acierto
■
Definimos los conjuntos difusos "Alto" y "Bueno"
■
Definimos la T-Norma a utilizar (Mínimo)
· Calculamos grados de pertenencia a cada conjunto
y aplicamos el operador de Intersección
Bajo
Medio
Alto
...
140
160 180 200
Malo
Regular
Bueno
20
40
60 80 100
¿Cuál es el resultado?
Jug
Alt
HALTO (Alt)
Aci
"BUENO(Aci)
Solución Difusa
MIN(ALALTO (Alt), ILBUENO (Aci))
Solución
Clásica
A
167
0,00
75
0,40
0,00
0
B
169
0,00
35
0,00
0,00
0
C
175
0,25
95
1,00
0,25
0
D
179
0,45
75
0,40
0,40
0
E
183
0,65
100
1,00
0,65
0
F
186
0,80
85
0,80
0,80
1
G
187
0,85
75
0,40
0,40
0
H
190
1,00
80
0,60
0,60
1
1
200
1,00
75
0,40
0,40
0
Ejemplo: Recomendador de Restaurantes
Tengo los siguientes restaurantes en mi zona
- Quiero me recomienden uno que esté CERCA
■
¿Cuál elegís? (ésta es fácil)
- Quiero me recomienden uno que esté CERCA y sea BARATO
¿Cuál elegís? ¿ Cómo lo implementarías? ¿ Qué criterio usarías?
- Quiero me recomienden uno que esté
CERCA y sea BARATO o que, si está
LEJOS, tenga BUENA comida a BUEN
precio
■
¿Cuál elegís? ¿ Cómo lo implementarías?
Restaurante
Distancia
desde aquí
Precio del
Menú
Calidad de la
comida
A
0,4
20
8,5
B
0,3
50
8,0
C
1
13
6,0
D
0,8
16
6,5
E
1,5
21
9,0
F
1,3
30
9,5
G
2
10
7,5
H
2.5
12
9,0
Recomendador de Restaurantes: Funciones de Pertenencia
Para responder a esas preguntas
debemos definir funciones de
pertenencia para los conjuntos
- CERCA, BARATO, LEJOS, BUENA (comida)
Barato
Caro
1
Precio
0.5
0
0
10
20
30
40
50
Cerca
Lejos
Distancia
1
0.5
0
0
0.5
1
1.5
2
2.5
3
Mala
Regular
i Buena i
Calidad
1
0.5
0
0
2
4
6
8
10
Y aplicar los operadores de unión/intersección
correspondientes
- T-Norma: Mínimo
- T-Conorma: Máximo
A
0,4
20
8,5
1,00
0,60
0,60
0,00
0,57
0,60
B
0,3
50
8,0
1,00
0,00
0,00
0,00
0,42
0,00
C
1
13
6,0
0,75
0,88
0,75
0,25
0,00
0,75
D
0,8
16
6,5
0,85
0,76
0,76
0,15
0,00
0,76
E
1,5
21
9,0
0,50
0,56
0,50
0,50
0,71
0,50
F
1,3
30
9,5
0,60
0,20
0,20
0,40
0,85
0,20
G
2
10
7,5
0,25
1,00
0,25
0,75
0,28
0,28
H
2,5
12
9,0
0,00
1,00
0,00
1,00
0,71
0,71
CAL
Cerca
Barato
Cerca
Y
Barato
Lejos
Buena
Comida
Cerca Y
Barato O Lejos
y Bueno y
Barato
RES
DIST
PRE
Variables Lingüísticas
Son variables cuyos valores son "palabras" (no números)
- A menudo queremos describir el estado de un objeto o fenómeno: Para ello
usamos una variable cuyo valor hace la descripción (Temperatura, Altura ... )
Sus valores son palabras o sentencias en lenguaje natural o
artificial.
- De esta forma, una variable lingüística sirve para representar cualquier elemento
que sea demasiado complejo, o del cual no tengamos una definición concreta; es
decir, lo que no podemos describir en términos numéricos.
Está caracterizada por
- El nombre de la variable.
- El conjunto de términos - Sus valores o etiquetas lingüísticas
- El universo del discurso
- Una gramática libre de contexto mediante la que se generan términos
- Una regla semántica que asocia a cada valor lingüístico de X su significado M(X)