Está en la página 1de 8

Funciones de Pertenencia e Inferencia Difusa

M.Sc. Ricardo Rodr guez Bustinza robust@uni.edu.pe

1. Objetivos
Utilizara los comandos para an alisis de inferencia difusa y ploteo de funciones de pertenencia del Toolbox de L ogica Difusa (TDL) de MATLAB.

2. Marco Te orico
2.1. Tipos de Funciones de Pertenencia
La denici on exacta de una funci on de pertenencia va a depender del contexto de su aplicaci on. En general, es preferible usar funciones de pertenencia simples, debido a que simplican muchos c alculos y no pierden exactitud, debido a que precisamente denen un concepto difuso. Entre las funciones de pertenencia m as com unmente usadas tenemos: triangulares, trapezoidales, gaussianas y sigmoidales que se muestran en la Figura 1.
MF Triangular 1.2 1 0.8 0.6 0.4 0.2 0 0 2 4 6 8 10 1.2 1 0.8 0.6 0.4 0.2 0 0 2 4 6 8 10 MF Trapezoidal

MF Gaussiana

MF Campana

1 0.8 0.6 0.4 0.2 0 0 2 4 6 8 10

1 0.8 0.6 0.4 0.2 0 0 2 4 6 8 10

Figura 1: Ejemplos de Funciones de Pertenencia.

Funci on de Pertenencia Triangular


La funci on de pertenencia triangular est a denida por tres par ametros [a, b, c] como sigue. 0 (x a)/(b a) triangulo(x : a, b, c) = (c x)/(c b) 0 1 x<a a x b b x c x>c

(1)

2.1 Tipos de Funciones de Pertenencia

2 MARCO TEORICO

Tambi en puede ser expresada c omo: { (xa cx) } triangulo(x : a, b, c) = m ax m n , ,0 ba cb (2)

Funci on de Pertenencia Trapezoidal


La funci on de pertenencia trapezoidal est a denida por cuatro par ametros [a, b, c, d ] como sigue. 0 (x a)/(b a) 1 trapecio(x : a, b, c, d ) = (d x)/(d c) 0 Tambi en puede ser expresada c omo: { (xa d x) } trapecio(x : a, b, c, d ) = m ax m n , 1, ,0 ba d c (4) x<a a x < b b x < c c x < d xd

(3)

Funci on de Pertenencia Gausiana


La funci on de pertenencia Gaussiana est a especicada por dos par ametros [m, ] como sigue. 1 ( x m )2 gaussiana(x : m, ) = e 2

(5)

Note que m y denotan el centro y el ancho de la funci on respectivamente. Nosotros podemos controlar nos de generamos funciones de la forma de la funci on ajustando el par ametro . Para valores peque pertenencia delgadas, mientras que para valores m as grandes de generamos funciones de pertenencia sobre el piso.

Funci on de Pertenencia Forma de Campana


La funci on de pertenencia forma de campana se especica por tres par ametros [a, b, c] como sigue. 1 (6) x c 2b 1+ a Donde el par ametro b es usualmente positivo. Esta funci on de pertenencia es directamente generalizada por la distribuci on de Cauchy usada en la teor a de las probabilidades. La funci on de pertenencia en forma de campana puede ser obtenida por la selecci on de par ametros a, b y c. Espec camente podemos ajustar c y a variando el centro y el ancho de la funci on y b lo usamos para controlar las pendientes en los puntos de cruce. campana(x : a, b, c) =

Funci on de Pertenencia Sigmoidal


La funci on de sigmoide est a especicada por dos par ametros [a, c] como sigue: sigmoide(x : a, c) = 1 1 + ea(xc) (7)

M.Sc. Ricardo Rodr guez Bustinza

2.2 Funciones de Pertenencia con MATLAB

2 MARCO TEORICO

2.2. Funciones de Pertenencia con MATLAB


El comando plotmf visualiza todas las funciones de pertenencia para cada variable. Presenta la sintaxis: plotmf(FIS,Tipo_Var,Var_index) Las funciones de pertenencia que posee el Toolbox de L ogica Difusa se lista a continuaci on. fm1 = trimf; fm2 = trapmf; fm3 = gbellmf; fm4 = gaussmf; fm5 = gauss2mf; fm6 = sigmf; fm7 = dsigmf; fm8 = psigmf; fm9 = pimf; fm10 = smf; fm11 = zmf; % % % % % % % % % % % Funci on Funci on Funci on Funci on Funci on Funci on Funci on Funci on Funci on Funci on Funci on de pertenencia triangular de pertenencia trapezoidal de pertenencia campana Gaussiana de pertenencia Gaussiana dos lados de pertenencia sigmoide compuesta por la diferencia dos sigmoides producto de dos funciones sigmoidales pi S Z

La funciones de pertenencia se muestran en la Figura 2


1 0.5 Triangular 0 1 0.5 gauss2mf 0 1 0.5 0 0.5 0 0 5 10 0 0 5 0 5 10 0 1 0.5 sigmf 10 0 1 S Z 0 5 0 1 0.5 Trapezoidal 5 10 0 1 0.5 dsigmf 10 0 0 5 0 1 0.5 Campana 5 10 0 1 0.5 psigmf 10 0 1 0.5 Gaussiana 5 10

10

10

Figura 2: Funciones de pertenencias.

2.3. Funci on de Pertenencia Singleton


Programe siete consecuentes singleton difuso para una variable de salida que este denida en el universo de discurso normalizado [Umin , Umax ] = [1, 1]. Debe denir siete singletons para un sistema difuso que cuente con siete reglas (M = 7), donde el primero de ellos es el valor m nimo del universo de discurso (y1 = Umin = 1) . El intervalo de U en que se denen los restantes consecuentes serian: M.Sc. Ricardo Rodr guez Bustinza 3

3 EXPERIENCIA

yl = De acuerdo a:

Umax Umin M1

yl +1 = yl + yl La representaci on de los siete consecuentes de la variable de salida en el universo de discurso normalizado se muestra en la Figura 3.
1.5

0.5

0 1.5

0.5

0 U

0.5

1.5

Figura 3: Funciones de pertenencia singleton.

C odigo Matlab % Singleton Difuso y(1)=-1; Umax=1; Umin=-1; M=7; Dy=(Umax-Umin)/(M-1); i=1; for i=2:7 y(i)=y(i-1)+Dy; i=i+1; end S=ones(1,length(y)); stem(y,S,m,filled,LineWidth,2)

3. Experiencia
Ejercicio # 1
Un estudiante pasea por un gran almac en y observa que en una tienda se est an ofertando art culos de vestir, se acerca y pregunta los precios, tal vez decida comprar alguna prenda. Al revisar los art culos observa que las prendas tienen caracter sticas muy particulares, por lo que lleva al siguiente razonamiento: Si observo una ropa buena y el precio es barato decidir e comprarla Si observo una ropa buena y el precio es caro lo pensare Si observo una ropa defectuosa y el precio es barato lo pensare Si observo una ropa defectuosa y el precio es caro decidir e no comprarla Proceda a construir un sistema FIS con Matlab mediante los pasos que se listan debajo, de modo que solucione el problema el estudiante compra ropa. La soluci on debe dar un reporte real de los procedimientos de compra. M.Sc. Ricardo Rodr guez Bustinza 4

3 EXPERIENCIA

Paso 1
Escriba un programa en Matlab para plotear las funciones pertenencia de entrada/salida del sistema difuso que es mostrado en la Figura 4. El universo de discurso es [0 10] con un paso de 0.1.
Entrada 1 1.2 RopaDefectuosa 1 0.8 0.6 0.4 0.2 0 0 2 4 6 8 10 RopaBuena 1 0.8 0.6 0.4 0.2 0 0 2 4 6 8 10 1.2 Barato Caro Entrada 2

Salida NoCompro 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 5 6 7 8 9 10 LoPienso SiCompro

Figura 4: Funciones de pertenencia sigmoidales.

Entrada/Salida Entrada 1 OBSERVO Entrada 2 PRECIO Salida DECISION

Funcion de Pertenencia Sigmoidal Sigmoidal Sigmoidal Sigmoidal Sigmoidal Gaussiana Sigmoidal

Etiqueta RopaBuena RopaDefectuosa Barato Caro NoCompro LoPienso SiCompro

Control [a, c] = [1, 5] [a, c] = [1, 5] [a, c] = [1, 5] [a, c] = [1, 5] [a, c] = [2, 3] [m, ] = [5, 5/3] [a, c] = [2, 7]

% Entrada 1 Observo = (0:0.1:10); RopaBuena = s i g m f ( Observo , [ 1 5 ] ) ; R o p a D e f e c t u o s a = s i g m f ( Observo ,[ 1 5 ] ) ; % Entrada 2 Precio = ( 0 : 0 . 1 : 1 0 ) ; Barato = sigmf ( Precio , [ 1 5 ] ) ; Caro = s i g m f ( P r e c i o ,[ 1 5 ] ) ; % Salida Decision = ( 0 : 0 . 1 : 1 0 ) ; SiCompro = s i g m f ( D e c i s i o n , [ 2 7 ] ) ; LoPienso = gaussmf ( Decision , [ s q r t ( 5 / 3 ) 5 ] ) ; NoCompro = s i g m f ( D e c i s i o n ,[ 2 3 ] ) ;

M.Sc. Ricardo Rodr guez Bustinza

3 EXPERIENCIA

Paso 2
En este paso se encuentra la toma de decisiones, es decir se debe ingresar las entradas correspondientes, ellas estar an dentro del rango del universo de discurso, de ese modo se proyectaran e intersecar an a las funciones de pertenencia obteniendo as los respectivos grados de pertenencia, a este procedimiento se le conoce como la fuzzycacion. Ingresemos las siguientes l neas de c odigo Matlab para el caso de Ropa Buena y Barata. Observo1 = 10; Precio1 = 1; muRopaBuena = s i g m f ( Observo1 , [ 1 5 ] ) ; m u R o p aD e f e c t u o s a = s i g m f ( Observo1 ,[ 1 5 ] ) ; muBarato = s i g m f ( P r e c i o 1 ,[ 1 5 ] ) ; muCaro = sigmf ( Precio1 , [ 1 5 ] ) ; La base de reglas difusas es: R1 = muRopaBuena muBarato SiCompro ; R2 = muRopaBuena muCaro L o P i e n s o ; R3 = m u R o p a D e f e c t u o s a muBarato L o P i e n s o ; R4 = m u R o p a D e f e c t u o s a muCaro NoCompro ; p l o t ( D e c i s i o n , R1 , r , L i n e W i d t h , 2 ) hold p l o t ( D e c i s i o n , R2 , b , L i n e W i d t h , 2 ) p l o t ( D e c i s i o n , R3 , k , L i n e W i d t h , 2 ) p l o t ( D e c i s i o n , R4 , m , L i n e W i d t h , 2 ) Como es l ogico, la decisi on indica que el estudiante Si Compra la Ropa tal como lo demuestra el resultado de la Figura 5.
1 0.8 0.6 0.4 0.2 0

10

Figura 5: Activaci on tomada por la inferencia.

Paso 3
Luego de las activaciones del mecanismo de inferencia de cada regla viene el denominado agregador que viene hacer la uni on de todos los disparos previos de cada regla en el consecuente, de ese modo podemos observar en la Figura 6 el resultado del agregador. Las l neas de c odigo Matlab se listan debajo. Agg = R1 + R2 + R3 + R4 ; p l o t ( D e c i s i o n , Agg , k , L i n e W i d t h , 2 ) ;

M.Sc. Ricardo Rodr guez Bustinza

3 EXPERIENCIA

1 0.8 0.6 0.4 0.2 0

10

Figura 6: Agregador de la inferencia.

Paso 4
Finalmente se procede a calcular el centroide que es el resultado de la defuzzicacion y podemos observarlo en la Figura (l nea roja). C e n t r o i d e = sum ( D e c i s i o n . Agg ) / sum ( Agg )
1 0.8 0.6 0.4 0.2 0

10

Figura 7: Mostrando el centroide. Un resumen del listado de la inferencia se muestra a continuaci on: d i s p ( [ Observo1 = , num2str ( Observo1 ) ] ) ; d i s p ( [ muBueno = , n u m 2 s t r ( muRopaBuena ) ] ) ; d i s p ( [ m u D e f e c t u o s o = , n u m 2 s t r ( m u R o p a D e fe c t uo s a ) ] ) ; disp ( [ Precio1 = , num2str ( Precio1 ) ] ) ; d i s p ( [ muBarato = , n u m 2 s t r ( muBarato ) ] ) ; d i s p ( [ muCaro = , n u m 2 s t r ( muCaro ) ] ) ; disp ( [ DecisionComprar = , num2str ( Centroide ) ] ) ; % % Resultados % Observo1 = 10 muBueno = 0.99331 muDefectuoso = 0.0066929 Precio1 = 1 muBarato = 0.98201 muCaro = 0.017986 DecisionComprar = 8.2778

M.Sc. Ricardo Rodr guez Bustinza

3 EXPERIENCIA

Ejercicio # 2
Repita el procedimiento del ejercicio anterior, esta vez use el programa graco LabVIEW para resolver la inferencia difusa como se muestra en la Figura 8. Considere los datos proporcionados anteriormente y compare los resultados obtenidos. Comente sus resultados.

Figura 8: Inferencia difusa con LabVIEW.

M.Sc. Ricardo Rodr guez Bustinza

También podría gustarte