FACULTAD DE CIENCIAS E INGENIERIAS FSICAS Y FORMALES
PROGRAMA PROFESIONAL DE INGENIERIA ELECTRNICA
CURSO: INTELIGENCIA ARTIFICIAL I
PRACTICA 10
Profesor: Ing. JUAN CARLOS COPA PINEDA
Autor: J ONATHAN ALLASI GONZALES
Junio, 2013
- AREQUIPA -
PRACTICA 10 LOGICA DIFUSA RAZONAMIENTOS INTRODUCCION: La importancia de la lgica difusa es aplicable en lo que es inteligencia artificial, sistemas neuronales, es por ello que deberemos entender en principio la importancia y su principal funcionamiento, es por ello que se desarrollara la base en la funciones en que se realiza la lgica difusa, se ver las funciones triangulares, trapezoidales, gausianas y de campana, para cada funcin tiene sus funciones especificas, que se desarrollara mediante un programa para la visualizacin de las funciones. MARCO TEORICO: En la Inteligencia Artificial, la lgica difusa es utilizada para la resolucin de problemas, ms que todo los que se relacionan con el control de procesos industriales complejos y sistemas de decisin en general. Estn mayormente extendidos en la tecnologa cotidiana, como lo sn: Cmaras digitales, sistemas de aire acondicionado, lavarropas, etc. Estos sistemas imitan la forma en que un humano toma decisiones, solo que con una mayor rapidez. En la lgica difusa, se usan modelos matemticos para representa nociones subjetivas, como caliente/ tibio/ frio. Tambin tiene un especial la " variable del tiempo", ya que los sistemas de control pueden necesitar retroalimentarse en un espacio concreto de tiempo. La lgica difusa se adapta mejor al mundo real en el que vivimos, e incluso puede comprender y funcionar con nuestras expresiones, del tipo "hace mucho calor", "no es muy alto", "el ritmo del corazn est un poco acelerado", etc. La clave de esta adaptacin al lenguaje, se basa en comprender los cuantificadores de nuestro lenguaje (en los ejemplos de arriba "mucho", "muy" y "un poco"). En la teora de conjuntos difusos se definen tambin las operaciones de unin, interseccin, diferencia, negacin o complemento, y otras operaciones sobre conjuntos, en los que se basa esta lgica. Para cada conjunto difuso, existe asociada una funcin de pertenencia para sus elementos, que indican en qu medida el elemento forma parte de ese conjunto difuso. Las formas de las funciones de pertenencia ms tpicas son trapezoidales, lineales y curvas. Se basa en reglas heursticas de la forma SI (antecedente) ENTONCES (consecuente), donde el antecedente y el consecuente son tambin conjuntos difusos, ya sea puros o resultado de operar con ellos. Sirvan como ejemplos de regla heurstica para esta lgica (ntese la importancia de las palabras "muchsimo", "drsticamente", "un poco" y "levemente" para la lgica difusa): SI hace muchsimo fro ENTONCES aumento drsticamente la temperatura. SI voy a llegar un poco tarde ENTONCES aumento levemente la velocidad. Los mtodos de inferencia para esta base de reglas deben ser simples, veloces y eficaces. Los resultados de dichos mtodos son un rea final, fruto de un conjunto de reas solapadas entre s (cada rea es resultado de una regla de inferencia). Para escoger una salida concreta a partir de tanta premisa difusa, el mtodo ms usado es el del centroide, en el que la salida final ser el centro de gravedad del rea total resultante. Las reglas de las que dispone el motor de inferencia de un sistema difuso pueden ser formuladas por expertos, o bien aprendidas por el propio sistema, haciendo uso en este caso de redes neuronales para fortalecer las futuras tomas de decisiones. Los datos de entrada suelen ser recogidos por sensores, que miden las variables de entrada de un sistema. El motor de inferencias se basa en chips difusos, que estn aumentando exponencialmente su capacidad de procesamiento de reglas ao a ao. Un esquema de funcionamiento tpico para un sistema difuso podra ser de la siguiente manera:
Funcionamiento de un sistema de control difuso. En la figura, el sistema de control hace los clculos con base en sus reglas heursticas, comentadas anteriormente. La salida final actuara sobre el entorno fsico, y los valores sobre el entorno fsico de las nuevas entradas (modificado por la salida del sistema de control) seran tomados por sensores del sistema. Por ejemplo, imaginando que nuestro sistema difuso fuese el climatizador de un coche que se autorregula segn las necesidades: Los chips difusos del climatizador recogen los datos de entrada, que en este caso bien podran ser la temperatura y humedad simplemente. Estos datos se someten a las reglas del motor de inferencia (como se ha comentado antes, de la forma SI... ENTONCES... ), resultando un rea de resultados. De esa rea se escoger el centro de gravedad, proporcionndola como salida. Dependiendo del resultado, el climatizador podra aumentar la temperatura o disminuirla dependiendo del grado de la salida. DESARROLLO: 1. EXPLICAR Y DESARROLLAR LOS PASOS DEL EJEMPLO DEL TEMA 1: Problema de un paciente con fiebre. Para ello se desarrolla una funcin que a partir de 37 grados comience a mostrar un ascenso y cuando llega la temperatura a 38 grados se activa la funcin, por lo que desarrollamos la siguiente programacin: PROGRAMA: function temp(x,a,b) k=length(x); y=zeros(1,k); for j=1:k if (x(j)<=a) y(j)=0; else if (x(j)>=a && x(j)<=b) y(j)=(x(j)-a)/(b-a); else if (b<=x(j)) y(j)=1 end end end end
i=x(1):x(k); plot(i,y) axis([0 50 0 1.5])
MATLAB: >> x=0:50; >> temp(x,37,38)
RESULTADO:
2. GRAFICAR LA FUNCIN TRIANGULO: F. M. TRIANGULAR:
PROGRAMA: function triangulo(x,a,b,c) k=length(x); y=zeros(1,k); for j=1:k if (x(j)<=a) y(j)=0; else if (x(j)>=a && x(j)<=b) y(j)=(x(j)-a)/(b-a); else if (x(j)>=b && x(j)<=c) y(j)=(c-x(j))/(c-b); else if (x(j)>=c) y(j)=0; end end end end end 0 5 10 15 20 25 30 35 40 45 50 0 0.5 1 1.5 i=x(1):x(k); plot(i,y)
MATLAB:
>> x=20:50; >> triangulo(x,25,35,45)
RESULTADO:
EXPLICACION: Teniendo especificadas las funciones tericamente se procede a realizar la operacin en programa por lo que realizamos mediante un for y mediante las condiciones de preguntas de if y else realizamos las sentencias de cada funcin donde se almacenaran en la variable j que luego, para mostrar el resultado lo mostramos por un plot, y como se puede observar que dependiendo de nuestro rango de x y de los puntos de donde se desarrollara el triangulo que se ingresan, se observa el triangulo perfectamente.
20 25 30 35 40 45 50 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 3. GRAFICAR LA FUNCIN TRAPEZOIDAL: F. M. TRAPEZOIDAL:
PROGRAMA: function trapecio(x,a,b,c,d) k=length(x); y=zeros(1,k); for j=1:k if (x(j)<=a) y(j)=0; else if (x(j)>=a && x(j)<=b) y(j)=(x(j)-a)/(b-a); else if (b<=x(j) && x(j)<=c) y(j)=1 else if (x(j)>=c && x(j)<=d) y(j)=(d-x(j))/(d-c); else (x(j)>=d) y(j)=0; end end end end end
i=x(1):x(k); plot(i,y) axis([0 60 -1 1.5])
MATLAB:
>> x=0:60; >> trapecio(x,15,30,40,55)
RESULTADO:
EXPLICACION Para este caso ahora observa que se tiene que agregar una funcin mas donde en un determinado rango la funcin tomara el valor de 1, cumple los mismos principios de la funcin del F. M. triangular, para lo que en la funcin cuando es ascendente y descendente. De igual manera para esta funcin se ingresa los valores donde sern los puntos de comienzo del cambio de estado. 4. GRAFICAR LA FUNCIN GAUSIANA: F. M. GAUSIANA:
PROGRAMA: function gauss(x,c,o) k=length(x); y=zeros(1,k); for j=1:k y(j)=exp((-1/2)*(((x(j)-c)/o)^2)) end i=x(1):x(k); plot(i,y) 0 10 20 30 40 50 60 -1 -0.5 0 0.5 1 1.5 axis([10 80 0 1.5])
MATLAB: >> x=0:80; >> gauss(x,40,8) RESULTADO:
EXPLICACION: Para el desarrollo de la funcin gausiana se observa que cumple solo con una funcin por lo que solo en el programa se declara la funcin, cuando compilamos el programa definimos nuestra x y luego llamamos la funcin de gauss y en esta parte ahora se define el centro de la funcin que para el programa es la variable c y la otra variable me indica el ancho que va a tener la funcin que para el programa es o, es as que se observa claramente la funcin gaussiana respetando con la funcin asignada.
10 20 30 40 50 60 70 80 0 0.5 1 1.5 5. GRAFICAR LA FUNCIN TIPO CAMPANA: F. M. CAMPANA:
PROGRAMA: function campana(x,a,b,c) k=length(x); y=zeros(1,k); for j=1:k y(j)=1/(1+ abs((x(j)-c)/a)^(2*b)) end i=x(1):x(k); plot(i,y) axis([0 80 0 1.5])
0 10 20 30 40 50 60 70 80 0 0.5 1 1.5 EXPLICACION: Para esta funcin es parecida a la anterior funcin desarrollada, lo que ahora es que es una funcin campana, donde la funcin requiere ms variables donde para el programa la variable a es la que me indica el ancho de la campana, la variable b me indica el valor de la pendiente respecto a los puntos de interseccin que se obtiene con el ancho de la campana y por ltimo la variable c me indica el centro de la campana.
6. GRAFICAR LAS SIGUIENTES FORMAS DE ONDA Lo que realizamos para realizar esta parte de la prctica es llamar a cada una de las funciones ya definidas anteriormente y en el momento del ploteo solo agregamos el hold on, para as las graficas queden impresas en la grafica. >> x=0:10; >> trapecio(x,5,6,8,10)----- verde >> triangulo(x,6,7,9)--------azul >> gauss(x,3,0.78)-----------negro >> campana(x,1.5,5,3)------rojo
RESULTADO:
0 1 2 3 4 5 6 7 8 9 10 0 0.5 1 1.5 CONCLUSIONES: Se puede decir que la esencia de la representacin de la informacin en sistemas difusos imita el mecanismo de Razonamiento Aproximado que realiza la mente humana y es lo que debemos tener en claro para poder realizar la practica.
La idea clsica de funcin caracterstica se suele asociar cada conjunto difuso A con una funcin de pertenencia que enlaza o empareja los elementos de X con elementos del intervalo [0,1].
Se observo en la prctica que se ha realizado los conceptos de la lgica difusa al realizar los F. M. triangular, trapezoide, gauss y campana.
Todo esto se realiza con funciones ya definidas, lo que solo hay que realizar es ingresar los valores de las variables que uno desea ver en el resultado de la funcin establecida.
La lgica difusa es una metodologa que proporciona una manera simple y elegante de obtener una conclusin a partir de informacin de entrada vaga, ambigua, imprecisa, con ruido o incompleta, en general la lgica difusa imita como una persona toma decisiones basada en informacin con las caractersticas mencionadas.
Una de las ventajas de la lgica difusa es la posibilidad de implementar sistemas basados en ella tanto en hardware como en software o en combinacin de ambos.