Está en la página 1de 27

INTELIGENCIA ARTIFICIAL

ANALISIS DIFUSO PARA LA OBTECION DE UNA CALIFICACION

Contenido

Pg. I. II. III. IV. V. VI. VII. VIII. IX. X. XI. XII. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Planteamiento del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operadores difusos AND y OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Desarrollo del sistema difuso en Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reglas del sistema difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Evaluacin de regla en el visor de reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Superficie de las reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Evaluacin de reglas en una interfaz grfica . . . . . . . . . . . . . . . . . . . . . . . . . . Cdigo de la funcin que evala la calificacin . . . . . . . . . . . . . . . . . . . . . . . . Cdigo de la interfaz grfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diseo de la interfaz grfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 7 8 10 11 17 18 21 22 25 26

I. Introduccin
Lgica difusa
La comprensin de la mayora de los procesos fsicos estn basados en el razonamiento impreciso humano. Sin embargo, est imprecisin es una forma de informacin que puede ser bastante til. La lgica difusa trata de integrar la capacidad de razonamiento de un experto para el anlisis de problemas complejos que no requieran precisin, tales como disparar un rayo lser sobre decenas de kilmetros en el espacio nanmetro. Pero o enfocar un haz de electrones microscpicos en una muestra del tamao de un no muchos problemas humanos requieren de tal precisin, problemas como

estacionar un auto, conducir un auto entre otros en una autopista, lavar la ropa, controlar el trfico en intersecciones o la compresin preliminar de un sistema complejo. El requerimiento de mayor precisin en los modelos y productos de ingeniera se traducen en altos costos y largos plazos de tiempo en la produccin y desarrollo de los mismos.

Varias fuentes han mostrado y probado que los sistemas difusos son aproximadores universales. Estas pruebas se derivan del isomorfismo entre dos algebras, un algebra abstracta (una que trata con grupos, campos y crculos) y un algebra lineal (una que trata con espacios de vectores, vectores de estado y matrices de transicin); y la estructura de un sistema difuso, la cual comprende una implicacin entre acciones y conclusiones. La razn para este isomorfismo es que ambas entidades (algebra y sistema difuso) envuelve un mapeo entre elementos de dos o ms dominios. Al igual que una funcin algebraica mapea una variable de entrada a una variable de salida, un sistema difuso mapea un grupo de entrada a un grupo de salida; en este ultimo los grupos pueden ser proposiciones lingsticas u otras formas de informacin difusa. Los sistemas difusos son muy tiles en dos contextos generales: (1) en situaciones de sistemas altamente complejos cuyos comportamientos no estn bien comprendidos y (2) en situaciones en que una solucin aproximada, pero rpida, est garantizada. La nocin de un conjunto difuso proporciona un punto de partida conveniente para la construccin de un marco conceptual que se asemeja en muchos aspectos al marco utilizado en el caso de conjuntos ordinarios, pero es ms general el primero que este ltimo y potencialmente, puede llegar a tener un alcance mucho ms amplio de aplicacin particularmente en los mbitos de clasificacin de patrones y procesamiento de informacin. En esencia, tal marco proporciona una forma natural de tratar con 2

problemas en los cuales la fuente de imprecisin es la ausencia de criterios claramente definidos de pertenencia a una clase en lugar de la presencia de variables aleatorias. La nocin de conjunto de pertenencia es fundamental para la representacin de objetos dentro de un universo definido por conjuntos en el universo. Los conjuntos clsicos contienen objetos que satisfacen las propiedades precisas de pertenencia, los conjuntos difusos contienen objetos que satisfacen las propiedades imprecisas de pertenencia, es decir, la pertenencia de un objeto en un conjunto difuso puede ser aproximada. Por ejemplo, el conjunto de alturas de 5 a 7 pies es preciso (ntido), el conjunto de alturas en la regin alrededor de 6 pies es impreciso o difuso. Suponga que se tiene una coleccin exhaustiva de elementos individuales (singletons) x, que conforman un universo de informacin, X. Adems diferentes combinaciones de estos elementos individuales pueden formar conjuntos en el universo, por ejemplo A. Para los conjuntos ntidos, un elemento x en el universo X es un miembro o no de un conjunto ntido A. Este nmero binario de pertenencia se puede representar con la funcin indicador
    

donde el smbolo

da la indicacin de una pertenenciasin ambigedad del elemento x en el

conjunto A, y los smbolos y denotan que pertenece y no pertenece, respectivamente. Para el ejemplo del universo de alturas de personas, suponga que el conjunto A es el conjunto ntido de todas las personas con 5.0 exe 7.0 pies. Un individuo particular, x1, tienen una altura de 6.0 pies. La pertenencia de este individuo en el conjunto ntido a es igual a 1, o pertenencia completa, expresada simblicamente como . Otro individuo, x2, tiene una altura de 4.99 pies. La pertenencia de . En estos casos la

este individuo en el conjunto a es igual a 0, o no pertenece, por lo tanto

pertenencia en un conjunto es binaria, es decir, que un elemento sea un miembro de un conjunto o no.

a)

b)

Funciones de pertenencia para alturas: a) conjunto ntido A y b) conjunto difuso H.

Zadeh extendi la nocin de pertenencia binaria para acomodar varios grados de pertenencia en el intervalo continuo [0,1], donde los puntos finales de 0 y 1 conforman la no pertenencia y la pertenencia total, respectivamente, al igual que lo que hace la funcin indicador para los conjuntos ntidos, pero el nmero infinito de valores entre los puntos finales pueden representar varios grados de pertenencia para un elemento x en algn conjunto en el universo. Los conjuntos en el universo X que pueden acomodar grados de pertenencia, fueron definidos por Zadeh como conjuntos difusos. Considere para el ejemplo de alturas un conjunto H de alturas cercanas a 6 pies. Ya que la propiedad cercana a 6 pies es difusa, no hay funcin de pertenencia nica para H. Ms bien, el analista debe decidir a lo que debe de parecer la funcin de pertenencia denotada por ser (1) normalidad . Algunas propiedades de estas funciones podran es ms proxima a 1), ). Tal funcin de

, (2) monotonicidad (para la H ms proxima a 6,

y (3) simetra (nmeros equidistantes de 6 deberan tener el mismo valor de

pertenencia se ilustra en la figura anterior inciso b). Una diferencia clave entre los conjuntos ntidos y difusos es su funcin de pertenencia, un conjunto ntido tiene una nica funcin de pertenencia, mientras que un conjunto difuso puede ser representado por un nmero infinito de funciones de pertenencia. Para un conjunto difuso, se sacrifica la unicidad, pero se gana flexibilidad porque la funcin de pertenencia puede ser ajustada para maximizar la utilidad para una aplicacin en particular. La funcin de pertenencia de un conjunto difuso incorpora la representacin matemtica de pertenencia en un conjunto, donde el mapeo funcional est dado por

donde el smbolo

es el grado de pertenencia del elemento x en el conjunto difuso A. Por lo tanto,

es un valor en el intervalo unitario que mide el grado para el cual el elemento x pertenece al conjunto difuso A; equivalentemente, = grado para el cual x A.

Fuzzy Logic With Engineering Applications Timothy J. Ross Third Edition

II. Planteamiento del problema


Dado un nmero entre 0 y 10 que representa la puntuacin obtenida de un examen, y otro nmero entre 0 y 10 que representa la conducta, cul es la calificacin obtenida de una persona tomando en cuenta los dos puntos anteriores?. Conjuntos difusos que establecen las reglas que sern consideradas para la obtencin de la calificacin:

Matriz de Asociacin Difusa (FAM) Calificacin Malo C O N D U C T A Mala Regular Buena Excelente Baja Baja Regular Regular EXAMEN Regular Baja Regular Regular Alta Bueno Regular Regular Alta Excelente Regular Alta Excelente

Excelente Excelente

Reglas que se deben considerar para obtener la calificacin:


1. 2. 3. 4. 5. 6. 7. 8. 9. SI SI SI SI SI SI SI SI SI el examen el examen el examen el examen el examen el examen el examen el examen el examen el examen el examen el examen Y la conducta Y la conducta Y la conducta Y la conducta Y la conducta Y la conducta Y la conducta Y la conducta Y la conducta Y la conducta Y la conducta Y la conducta ENTONCES la calificacin ENTONCES la calificacin ENTONCES la calificacin ENTONCES la calificacin ENTONCES la calificacin ENTONCES la calificacin ENTONCES la calificacin ENTONCES la calificacin ENTONCES la calificacin ENTONCES la calificacin ENTONCES la calificacin

es malo es malo es malo es malo es regular es regular es regular es regular es bueno es bueno es bueno es bueno

es mala es regular es buena es excelente, es mala es regular es buena es excelente, es mala es regular es buena es excelente, es mala es regular es buena es excelente,

esbaja. esbaja. esregular. esregular. esbaja. esregular. esregular. esalta. esregular. esregular. esalta.

10. SI 11. SI 12. SI 13. SI 14. SI 15. SI 16. SI

el examen es excelente Y la conducta el examen es excelente Y la conducta el examen es excelente Y la conducta el examen es excelente Y la conducta

ENTONCES la calificacin esexcelente. esregular. ENTONCES la calificacin esalta. ENTONCES la calificacin ENTONCES la calificacin esexcelente. ENTONCES la calificacin esexcelente.

III. Operadores difusos AND y OR


La conjuncin, tambin denominada operacin AND, se define a partirde la interseccin de conjuntos.En la lgica difusa, se puede evaluarcon el operador mn(mnimo).

La disyuncin, tambin denominada operacin OR, se define a partirde la unin de conjuntos. En la lgica difusa, se puede evaluar con eloperador mx(mximo).

IV. Desarrollo del sistema difuso en Matlab


Editor de Sistema de Inferencia Difuso

Editor de Funcin de Membresa (Examen - Entrada 1)

Editor de Funcin de Membresa (Conducta Entrada 2)

Editor de Funcin de Membresa (Calificacin - Salida)

V.Reglas del sistema difuso


Editor de Reglas

10

VI. Evaluacin de reglas en el visor de reglas


Resultados de algunas reglas evaluadas y desplegadas en el Visor de Reglas 1. SI el examen es malo Y la conducta es mala, ENTONCES la calificacin es baja.

11

2. SI el examen es regular Y la conducta es mala, ENTONCES la calificacin es baja.

12

3. SI el examen es bueno Y la conducta es mala, ENTONCES la calificacin es regular.

13

4. SI el examen es excelente Y la conducta es mala, ENTONCES la calificacin es regular.

14

5. SI el examen es bueno Y la conducta es buena, ENTONCES la calificacin es alta.

15

6. SI el examen es excelente Y la conducta es excelente, ENTONCES la calificacin es


excelente.

16

VII. Superficie de las reglas


Visor de Superficie

17

VIII. Evaluacin de reglas en una interfaz grfica


Resultados de algunas reglas evaluadas en una interfaz grfica. 1. SI el examen es malo Y la conducta es mala, ENTONCES la calificacin es baja.

2. SI el examen es regular Y la conducta es mala, ENTONCES la calificacin es baja.

18

3. SI el examen es bueno Y la conducta es mala, ENTONCES la calificacin es regular.

4. SI el examen es excelente Y la conducta es mala, ENTONCES la calificacin es regular.

19

5. SI el examen es bueno Y la conducta es buena, ENTONCES la calificacin es alta.

6. SI el examen es excelente Y la conducta es excelente, ENTONCES la calificacin es


excelente.

20

IX. Cdigo de la funcin que evala la calificacin


functioncalificacion = calificador(e,c) u_maloex = trapmf(e,[-1,0,5,6]); u_regularex = trapmf(e,[5,6,7,8]); u_buenoex = trimf(e,[7,8,9]); u_excelenteex = trapmf(e,[8,9,10,11]); u_malacon = trapmf(c,[-1,0,4,5]); u_regularcon = trapmf(c,[4,5,6,7]); u_buenacon = trapmf(c,[6,7,8,9]); u_excelentecon = trapmf(c,[8,9,10,11]); %------Inferencia difusa-----------a1 = min(u_maloex,u_malacon); a2 = min(u_maloex,u_regularcon); a3 = min(u_maloex,u_buenacon); a4 = min(u_maloex,u_excelentecon); a5 = min(u_regularex,u_malacon); a6 = min(u_regularex,u_regularcon); a7 = min(u_regularex,u_buenacon); a8 = min(u_regularex,u_excelentecon); a9 = min(u_buenoex,u_malacon); a10 = min(u_buenoex,u_regularcon); a11 = min(u_buenoex,u_buenacon); a12 = min(u_buenoex,u_excelentecon); a13 = min(u_excelenteex,u_malacon); a14 = min(u_excelenteex,u_regularcon); a15 = min(u_excelenteex,u_buenacon); a16 = min(u_excelenteex,u_excelentecon); %------Definiendo conjuntos difusos de salida-----cal = 0:0.001:11; u_bajacal = trapmf(cal,[-1,0,6,7]); u_regularcal = trapmf(cal,[6,7,8,9]); u_altacal = trimf(cal,[8,9, 10]); u_excelentecal = trimf(cal,[9,10,11]); baja1 = min(u_bajacal,a1); baja2 = min(u_bajacal,a2); baja3 = min(u_bajacal,a5); regular1 regular2 regular3 regular4 regular5 regular6 regular7 = = = = = = = min(u_regularcal,a3); min(u_regularcal,a4); min(u_regularcal,a6); min(u_regularcal,a7); min(u_regularcal,a9); min(u_regularcal,a10); min(u_regularcal,a13);

alta1 = min(u_altacal,a8); alta2 = min(u_altacal,a11); alta3 = min(u_altacal,a14); excelente1 = min(u_excelentecal,a12); excelente2 = min(u_excelentecal,a15);

21

excelente3 = min(u_excelentecal,a16); %------Agregacin------------s1 = max(baja1,baja2); s2 = max(baja3,regular1); s3 = max(regular2,regular3); s4 = max(regular4,regular5); s5 = max(regular6,regular7); s6 = max(alta1,alta2); s7 = max(alta3,excelente1); s8 = max(excelente2,excelente3); u_total = max(max(max(max(max(max(max(s1,s2),s3),s4),s5),s6),s7),s8); calificacion = trapz(cal,cal.*u_total)/trapz(cal,u_total);

X. Cdigo de la interfaz grfica


functionvarargout = Calcali(varargin) % CALCALI M-file for Calcali.fig % CALCALI, by itself, creates a new CALCALI or raises the existing % singleton*. % % H = CALCALI returns the handle to a new CALCALI or the handle to % the existing singleton*. % % CALCALI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in CALCALI.M with the given input arguments. % % CALCALI('Property','Value',...) creates a new CALCALI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Calcali_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Calcali_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Calcali % Last Modified by GUIDE v2.5 23-May-2011 17:44:34 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; mfilename, ... gui_State = struct('gui_Name', 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Calcali_OpeningFcn, ... 'gui_OutputFcn', @Calcali_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); ifnargin&&ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end

22

ifnargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

% --- Executes just before Calcali is made visible. functionCalcali_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Calcali (see VARARGIN) % Choose default command line output for Calcali handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Calcali wait for user response (see UIRESUME) % uiwait(handles.figure1); set(hObject,'Name','Calculadora de calificaciones') set(hObject,'Color',[0.25,0.25,1]) controles = findobj(hObject,'Style','text'); set(controles,'BackgroundColor',[0.25,0.25,1]); x= imread('descartes.png'); axes(handles.axes1) imshow(x)

% --- Outputs from this function are returned to the command line. functionvarargout = Calcali_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on slider movement. functionslider_exam_Callback(hObject, eventdata, handles) % hObject handle to slider_exam (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider e = get(handles.slider_exam,'Value'); c = get(handles.slider_conducta,'Value'); set(handles.text_examen,'String',num2str(e)) calificacion = calificador(e,c);

23

set(handles.text_calificacion,'String',['Calificacion = ',num2str(calificacion)])

% --- Executes during object creation, after setting all properties. functionslider_exam_CreateFcn(hObject, eventdata, handles) % hObject handle to slider_exam (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background. ifisequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end

% --- Executes on slider movement. functionslider_conducta_Callback(hObject, eventdata, handles) % hObject handle to slider_conducta (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider e = get(handles.slider_exam,'Value'); c = get(handles.slider_conducta,'Value'); set(handles.text_conducta,'String',num2str(c)) calificacion = calificador(e,c); set(handles.text_calificacion,'String',['Calificacion = ',num2str(calificacion)])

% --- Executes during object creation, after setting all properties. functionslider_conducta_CreateFcn(hObject, eventdata, handles) % hObject handle to slider_conducta (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: slider controls usually have a light gray background. ifisequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]); end

% --- Executes on button press in boton_cerrar. functionboton_cerrar_Callback(hObject, eventdata, handles) % hObject handle to boton_cerrar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close(gcbf)

24

XI. Diseo de la Interfaz Grfica

25

XII. Conclusin
La lgica clsica nicamente hace referencia a dos conceptos, pertenece o no pertenece, debido a esto, hay ocasiones en que al estudiar un elemento en particular de un conjunto de elementos en determinado intervalo, los elementos del conjunto se deben de dividir en grupos de pertenencia o no pertenencia respecto al elemento en particular, sin importar que loselementos cercanos al lmite inferior o lmite superior fuera del intervalo sean considerados como parte del conjunto. Es por esta razn que la lgica difusa hace su aparicin para considerar a todos aquellos elementos que estn cercanos a ambos lmites fuera del intervalo, ponderando un grado de pertenencia a dichos elementos para determinar al conjunto de elementos al que sern asignados. Para determinar el grado de pertenencia de un elemento con respecto a un conjunto se utilizan las funciones de membresas. Existen varios tipos de estas, pero las ms utilizadas a lo largo de este trabajo son la triangular y la trapezoidal. Una herramienta poderosa para el clculo de estas funciones es el software matemtico Matlab, el cual cuenta con un toolbox de FuzzyLogic. Esta herramienta nos permite desarrollar, analizar y comprender problemas de lgica difusa a travs de Sistemas de Inferencia Difusos (FIS) que se pueden configurar de acuerdo con las necesidades que se planteen. Adems de los FISs se pueden disear formularios o interfaces grficas que nos permiten colocar objetos grficos, tales como botones, cajas de texto, etiquetas e incluso imgenes, esto para presentar un entorno visual personalizado que presente la informacin y acciones disponibles que permita la interaccin con un sistema difuso dado.

26

También podría gustarte