Lógica difusa

De FIWIKI
Ir a la navegación Ir a la búsqueda

Bibliografía

  • Sistemas Inteligentes. Conceptos, técnicas y métodos de construcción. José Cuenca. En Publicaciones de la FI, disponible en biblioteca.
  • Fuzzy sets and fuzzy logic. Theory and Applications G.J.Klir, P.Yuan. Prentice Hall 1995

Índice

  • Conceptos fundamentos de lógica difusa
    • Borrosidad, vaguedad, imprecisión, diferencias con incertidumbre
    • Conjuntos borrosos
    • Operaciones con conjuntos borrosos
  • Regla composicional de inferencia
  • Controladores difusos

Conceptos fundamentos de lógica difusa

En lógica difusa una variable puede tomar, además de valores numéricos, valores cuantitativos. Recibe el nombre de etiqueta lingüística. Ejemplo: edad [0,100] años => edad {bebé, niño, joven, maduro,...}

--Falta imagen de ejemplo con temperaturas-- Si T>=30 entonces día caluroso

"x es A" no tiene por qué ser cierta completamente ni falsa completamente. Por ejemplo: "la temperatura es calurosa". La podemos medir mediante una probabilidad. Utilizamos una función de pertenencia (valores entre 0 y 1). Si x=0 no pertenece, x=1 pertenece seguro. 0<x<1 valores borrosos. Por tanto, [0,1] son valores de posibilidad.

Función de distribución de posibilidad: función en la que, dado un determinado valor numérico, nos va a devolver un valor entre 0 y 1 indicando el grado de pertenencia al conjunto difuso A. μx -> [0,1] Ax -> [0,1]


Ejemplo: μniño(3)=1 μniño(50)=0 μniño(15)=0.5 Hay una posibilidad de 0.5 de que alguien de 15 años sea niño. También podría ser joven.

Estamos usando imprecisión: vaguedad, con fronteras imprecisas. La incertidumbre, por otro lado, es falta de conocimiento. Ej: si lanzo una moneda, sé seguro que saldrá cara o cruz pero nunca "un poco de cara" o "un poco de cruz". No hay imprecisión. Lo que no sé es qué saldrá: tengo incertidumbre. Ej2: si digo que una persona es joven, sé lo que es. No hay incertidumbre. Pero no sé hasta qué punto lo puedo considerar joven: tengo imprecisión.

Ejemplo: μcaluroso(10)=0 Nadie tiene calor a 10 grados μcaluroso(22)=0.2 μcaluroso(28)=0'8 μcaluroso(29)=0'9

Ahora hay una transición. Antes con 30 hacía calor y con 29 no.

μ30(T) = 1 if T = 30 μ30(T) = 0 otherwise


Ejemplo: Quiero una temperatura de 21 grados. Tengo un termostato en cada habitación de la casa. Obtengo valores entre 20 y 21=> P.D. (de 21, que es lo que quería). La variación de la temperatura es de -0'1grados/10 min. Tengo que reaccionar => poner el agua caliente.

Si hora noche Tambiente = P.D.(por debajo) variaciónT negativa => Tagua=caliente

(noche, temperatura, etc. son valores difusos)

La lógica difusa permite representar valores nítidos. Ej: La hora es un valor numérico: 21:30. Los sistemas electrónicos hablan con valores nítidos: "la temperatura es 30 grados". Los sistemas difusos y las personas usamos términos difusos: "está caliente". Los sistemas difusos se suelen conectar a los electrónicos.

Ejemplo: temperatura ambiente de Madrid

Tambiente €[-10,50]ºC Tambiente {muy frío, frío, templado, caluroso, muy caluroso,30} Estas etiquetas lingüísticas son conjuntos difusos.

Hay que definir la pertenencia de los valores nítidos a los conjuntos difusos. Para ello usamos distribuciones de posibilidad. Todo ello es el marco conceptual de mi sistema inteligente.

Distribuciones de posibilidad: Las distribuciones pueden ser triangulares (solo hay valor seguro, el resto son borrosos), pueden ser trapecios,... --Falta gráfica-- μmuyfrío(-10)=1 μmuyfrío(0)=0 ... ... μ30(T) = 1 if T = 30 μ30(T) = 0 otherwise

NOTA: cuidado con los valores de los intervalos. Ejemplo: para las horas [0,24), para grados [0,360), temperatura de agua para radiador (0,100). Atención a qué valores se incluyen y cuáles no.


Ejemplo: complexión de una persona definida por su peso y estatura.

complexión = {fuerte} peso = (0,200] Kg. El peso no puede ser 0. estatura = (0, 3] m. La altura no puede ser 0. --Falta gráfica-- Una persona es alta (malta(estatura)) entre 1'80 y 2'10 Una persona es de peso elevado (μelevado(peso)) entre 90 y x (falta valor) μfuerte(1'90,100) = 1

Operaciones con conjuntos borrosos

A partir de la afirmación "[math]x[/math] es [math]p[/math] con posibilidad [math]\mu_p(x)[/math]" y de que "[math]x[/math] es [math]q[/math] con posibilidad [math]\mu_q(x)[/math]" (misma variable [math]x[/math] perteneciente a [math]X[/math]):

  • [math]x[/math] es [math]p[/math] y [math]q[/math] [math]\mu_{p\land q}(x) \rightarrow[/math] intersección, conjunción lingüística. Ej: [math]\mu_{frio\land muy \ frio}(T)[/math]
  • [math]x[/math] es [math]p[/math] o [math]q[/math] [math]\mu_{p\lor q}(x) \rightarrow[/math] unión, disyunción. Ej: [math]\mu_{frio\lor templado}(T)[/math]
  • [math]x[/math] no es [math]p[/math] [math]\mu_{\lnot p}(x) \rightarrow[/math] negación. Ej: [math]\mu_{\lnot frio}(T)[/math]
  • Si [math]x[/math] es [math]p[/math], entonces [math]x[/math] es [math]q[/math] [math]\mu_{p\to q}(x) \rightarrow[/math] implicación. Ej: Ej: [math]\mu_{muy\ frio\to frio}(T)[/math] En este ejemplo no se ve muy claro su uso.

Para poder operar, necesito que las funciones de posibilidad estén expresadas con la misma variable. Sin embargo, lo normal es que esto no sea así.

Cuando tenemos dos distribuciones de posibilidad expresadas con distintas variables, podemos hacer una operación de extensión cilíndrica. Dados [math]\mu_p(x)[/math] y [math]\mu_q(y)[/math], para poder calcular la conjunción, disyunción e implicación:

  • Lo primero que hago es la extensión cilíndrica de [math]\mu_p (x)[/math] con [math]y[/math], obteniendo [math]\mu_p (x,y)[/math].
  • Después calculamos la extensión cilíndrica de [math]\mu_p (y)[/math] con [math]x[/math] obteniendo [math]\mu_q (x,y)[/math]
  • Operamos [math]\mu_p (x,y)[/math] con [math]\mu_q (x,y)[/math]

La extensión cilíndrica de [math]\mu_p(x_1...x_n)[/math] con y es [math]\mu_p(x_1,...x_n,y)[/math] [math]\setminus \ \forall[/math] y [math]\mu_p(x_1...x_n,y)= \mu_p(x_1...x_n)[/math]. Hemos aumentado en una dimensión la distribución de posibilidad.

Ejemplo: extensión cilíndrica [math]\mu_{alto}(estatura)[/math] con temperatura ambiente

[math]\mu_{alto}(1'90)[/math]=1 [math]\mu_{alto}(estatura,T) = \mu_{alto}(estatura) [/math] [math]\forall[/math] [math]T[/math]
[math]\mu_{alto}(1'80)[/math]=0 [math]\mu_{alto}(1'90,10º)[/math] =1
[math]\mu_{alto}(1'85)[/math]=0'5 [math]\mu_{alto}(1'90,30º)[/math] =1 (nos da igual la T)

--Falta gráfica--

Dada una regla "Si alto, entonces fuerte" en lógica difusa sería dadas dos distribuciones, llego a una sola (se dará más adelante cómo hacerlo).

[math]\mu_{alto}(estatura,peso) \to \mu_{fuerte}(estatura,peso) = \mu_{alto\to fuerte}(estatura,peso)[/math]

t-Norma, t-conorma y negación

t-Norma

--Falta principio-- Conjunción lógica, intersección de conjuntos difusos. --Falta--


t-conorma

--Falta principio-- Disyunción lógica, unión de conjuntos difusos. --Falta--

Negación: N(μp(x)) = μ¬p(x), N(x)

Se representa con la T. Función que devuelve un valor entre 0 y 1.

Propiedades: para todo x,y, z distribuciones de posibilidad

  • T(x,1) = x (elemento neutro)
  • x<=y, T (x,z) <= T(y,z) (monotonía)
  • T(x,y) = T(y,x) (conmutativa)
  • T(T(x,y),z) = T (x, T(y,z)) (asociativa)

Ejemplos:

  • T(x,y) = min (x,y) (mínimo)
  • T(x,y) = P (x,y) = x*y (producto) x = μp(x), y = μq(x), x*y = para todo x {μp(x)μq(x)}
  • T(x,y) = W(x,y) = max (o, x+ y -1) (Lukasiewicz)
  • T(x,y) = Z(x,y) = {x si y = 1, y si x=1, 0 resto} (drástica)

¿Cuál usar? Probamos... En Inteligencia Artificial no se busca el óptimo, porque el tipo de problema lo hace muy costoso. Utilizaremos pues la función que más se adapte a la realidad.


t-conorma

Se representa con la S. Función que devuelve un valor €[0,1]

Propiedades: para todo x,y, z distribuciones de posibilidad

  • S(x,0) = x (elemento neutro)
  • x<=y, S (x,z) <= S(y,z) (monotonía)
  • S(x,y) = S(y,x) (conmutativa)
  • S(S(x,y),z) = S (x, S(y,z)) (asociativa)

Ejemplos:

  • S(x,y) = max (x,y) (máximo)
  • S(x,y) = P'(x,y) = x+y-x*y (sumaproducto)
  • S(x,y) = W'(x,y) = min (x+y,1)
  • S(x,y) = Z'(x,y) = {x si y = 0, y si x=0, 1 resto} (drástica)


Negación

Se representa con la N. Función que devuelve un valor €[0,1]

Propiedades: para todo x distribución de posibilidad

  • N(0) = 1, N(1) = 0 (condiciones frontera)
  • x<=y, N(x) >= N(y) (inversión de monotonía)

Ejemplos:

  • N(x) = 1-x
  • N(x) = [math]sqrt(1-x**2)[/math]


Dualidad

Se dice que una t-norma y una t-conorma son duales con respecto a una negación sii:

  • N(T(x,y)) = S(N(x), N(y))
  • N(S(x,y)) = T(N(x), N(y))


Enunciado: Dado T(x,y)=P(x,y)=x*y indicar su t-conorma dual con respecto a la negación N(x) = 1- x y demostrar la respuesta

La dual es S(x,y) = P'(x,y)= x+y - x*y

1) N(T(x,y)) = S(N(x),N(y)) N(T(x,y)) = 1 - x*y S(N(x),N(y)) = (1-x) + (1-y) - (1-x)*(1-y) = (2-x-y)-(1-y-x-x*y)= 1 -x*y

2) N(S(x,y)) = T(N(x), N(y)) N(S(x,y)) = 1 - (x+y-x*y) T(N(x),N(y)) = (1-x)*(1-y) = 1 -y -x + x*y = 1 - (x+y-x*y)


Implicación difusa J(x,y) μp(x)->μq(x); μp->q(x) = J(μp(x),μq(x))

A->B = ¬A o B J(x,y) = S(N(J,y))

  • J(x,y) = max(1-x,y)
  • J(x,y) = 1-x + y -(1-x)*y = 1-x + y - y + x*y = 1-x + x*y
  • J(x,y) = min (1,1-x+y)
  • J(x,y) = {y si x = 1, x si y=0, ¿? resto} (drástica) --falta completar el ¿?--


A o B = A o (¬A y B) A -> B = ¬A o (A y B) J(x,y) = S(N(x), T(x,y))

  • J(x,y) = max (1-x, min(x,y))
  • J(x,y) = 1-x + x*y - (1-x) * x*y = 1 - x + x*y - x*y +x**2*y = 1-x +x**2*y
  • J(x,y) = ... --falta--
  • J(x,y) = ... --falta--

J(x,y)=min(x,y) Implicación de Mandani

Más adelante veremos:

persona = alta -> peso = elevado μp(x) -> μq(x) hecho: μp'() respuesta: μq'(x)

Podemos preguntar por personas "más o menos" altas: Dado un conjunto de reglas y un sujeto que no se ajusta exactamente a ello, el sistema es capaz de responder en tono difuso o en tono nítido.


Ejercicios

A) Teoría: 1 /5 puntos 1) Sean las distribuciones de posibilidad μp(x) y μq(y), ¿qué -- hay que realizar para calcular μp(x) -> μq(y)?

No puedo operar porque están expresados en función de variables distintas. Dos extensiones cilíndricas: Extensión cilíndrica de μp(x) con y para obtener μp(x,y) Extensión cilíndrica de μq(x) con x para obtener μq(x,y) J(μp(x,y), μq(x,y))


2) ¿Cuál es la notación para representar la distribución de posibilidad resultado de operar μp(x)-> μq(y)?

Están expresadas en función de variables distintas. Es la continuación del apartado anterior. μp->q(x,y)


3) ¿Para qué t-norma e implicación ocurre que μp(x)->μq(y)=μp(x)*μq(y)?

J(x,y)=min(x,y) Implicación de Mandani

B) 1 punto Obtener una expresión para la implicación difusa J(x,y) a partir de la t-norma T(x,y) = min(x,y) y la t-conorma dual con respecto a la negación N(x)=1-x. Mostrar su desarrollo

A->B = ¬A o B J(x,y) = S(N(x),y) J(x,y) = max (1-x,y) S(x,y) = max (x,y) es dual a J(x,y) = min (x,y) con respecto a N(x)=1-x


Sean las siguientes variables:

TE = temperatura externa. TE = {frío (F), templado(T), cálido (C)}, TE €[-10,40] ºC TA = temperatura del agua TA = {AguaFría(AF), AguaTemplada(AT), AguaCaliente(AC)}; TA € (0,100) ºC TIME = hora del día TIME = {Mañana (Ma), Tarde(T), Noche(N)} TIME € [0,24) horas

Representar gráficamente las distribuciones de posibilidad asociadas a las valores cualitativos de las variables TE y TIME (0'5 puntos)

Hay que inventarse las distribuciones pero con cierto sentido (tiene que haber intersecciones entre los conjuntos difusos, transiciones suaves, pendientes no infinitas,...). ¡Cuidado con los extremos! Si están incluidos en el intervalo, no pueden estar a "0" en la gráfica, tienen que estar incluidos también (si es el caso) --Falta imagen--

¿Hay posibilidad distinta de cero de que la temperatura externa sea a la vez templada y fría? En caso afirmativo, indique para qué valores de la variable TE se cumple esta afirmación

Sí, para todo TE €(10,20). Depende de la gráfica que nos hayamos inventado: dejamos abiertos en el intervalo los puntos "frontera", que no están incluidos. La respuesta es el intervalo de intersección entre T y F.

¿Cuál es la posiblidad de que TE = T a 40ºC? ¿Y de qué TE = C a 40º? La posibilidad de que TE = t a 40ºC es 0 porque 40 no está incluido en T. μT(40)=0 μC(40)=1

¿Qué posibilidad hay de que TE = T teniendo en cuenta que hay 20ºC en el exterior y la temperatura del agua es de 40ºC? Extensión cilíndrica μT(TE) con TA: μT(TE,TA) / para todo TA μT(TE,TA) = μT(TE) μT(20,40) = 1 (para todo TA, no importa su valor)


--FALTAN 4 HORAS DE CLASE APROX--

Teoría contenida en transparencias

Volver

Volver a Inteligencia artificial