Vous êtes sur la page 1sur 14

Universidad de La Serena Facultad de Ciencias Ingeniera en Computacin

Framework para el Desarrollo de Sistemas Expertos Difusos


Anteproyecto

Universidad de La Serena Facultad de Ciencias Ingeniera en Computacin

Alumno: Direccin: Fono: Carrera:

Cristina Bugueo Castillo Nevenka Zubic 1599, Barrio Universitario, La Serena 09-2863392 Ingeniera en Computacin

Firma

Alumno: Direccin: Fono: Carrera:

Rene Olguin Varas Nevenka Zubic 1599, Barrio Universitario, La Serena 09Ingeniera en Computacin

Firma

Profesor Gua: Firma

INDICE
4 4 5 7 7 7 8 8 9 10 10 12 13 14 1 DESCRIPCION Y DELIMITACIONES DEL PROBLEMA SELECCIONADO 1.1 Introduccin 1.2 Delimitacin del Anteproyecto 2 OBJETIVO DEL TRABAJO 2.1 Objetivos Generales: 2.2 Objetivos Especficos: 3 MARCO TERICO TCNICO 3.3.1 Lgica difusa 3.3.2 Sistema experto difuso 3.3.3 Modelos de desarrollo de software 3.3.4 Anlisis lxico y sintctico 4 TEMARIO DEL INFORME FINAL 5 RESUMEN 6 BIBLIOGRAFIA

DESCRIPCION Y DELIMITACIONES DEL PROBLEMA SELECCIONADO


1.1 Introduccin
La Inteligencia Artificial y sus diferentes ramas han demostrado su utilidad en la resolucin de problemas complejos que no son posibles de resolver en trminos tradicionales, bien son muy difciles de abordar de esa manera. [WEB-04] Nosotros, como alumnos de Ingeniera en Computacin de la Universidad de La Serena, experimentamos en el desarrollo de algunas de estas tcnicas, en las asignaturas de Programacin avanzada, Ingeniera de software I, Ingeniera de software II e Inteligencia Artificial, algunas de estas tcnicas son: Algoritmos Genticos Sistemas Expertos Difusos Sistemas Expertos Redes Neuronales Siempre abordando su desarrollo desde cero, por ejemplo, si durante tres semestres realizamos tres sistemas difusos, uno cada semestre, entonces, implementbamos tres veces todo lo referente a esta tcnica. Esto, que si bien en el contexto universitario no representa necesariamente una prdida de tiempo, en el contexto laboral s. Adems los sistemas expertos y sistemas expertos difusos requieren la construccin de interfaces que permitan modificar dinmicamente parte de su definicin, incrementando aun ms el problema. Por otro lado, todas estas tcnicas son extremadamente dependientes del problema especfico que solucionan, requieren un alto grado de conocimiento de l, casi siempre un grado de conocimiento que el desarrollador no posee, por eso representan un alto riesgo si no se definen correctamente. Otro riesgo es que se produzca un cambio en el entorno que haga que la implementacin que en un momento era correcta, ya no lo sea(Al cambiar los requerimientos es muy probable que se tengan que hacer modificaciones en el sistema experto o sistema experto difuso). Por esto entonces nace la necesidad de crear implementaciones de estas tcnicas que puedan ser fcilmente modificadas o que permitan cierta flexibilidad en la definicin, con el fin de poder redefinirlas en caso de encontrar errores o cambios en el entorno.

Una tercera problemtica radica en que en ocasiones no es posible la prueba de este tipo de tcnicas en el contexto real, por ejemplo, un sistema experto para el control automtico de un avin, es razonable pensar en que primero debera realizarse el sistema experto sobre un simulador y luego, para el avin, Pero es ms razonable pensar en que sera mucho mejor si podemos desarrollar el sistema experto independiente de la aplicacin que lo utilice, as podramos probarlo en un simulador y posteriormente en un avin real, sin volverlo a crear. Esto es bastante til en el contexto universitario, donde los alumnos generalmente no tenemos acceso a probar este tipo de aplicaciones en el contexto real de su problemtica. Por ejemplo, sistema de control automtico de luces en un edificio, sistema de control de un robot, sistema controlador de un semforo, etc. Se hace evidente entonces la necesidad de contar con un framework que permita abordar estas problemticas, con el fin de generar aplicaciones que utilicen este tipo de tcnicas, ms rpida, segura y fcilmente. [WEB-03] Entindase framework como el conjunto entre una metodologa y/o herramientas para realizar algo.

1.2 Delimitacin del proyecto


Nuestra propuesta es crear un framework que permita resolver los problemas planteados anteriormente para una de las tcnicas mencionadas anteriormente. En la actualidad la lgica difusa, y los sistemas expertos difusos como aplicacin prctica de la misma han ganado gran popularidad en el desarrollo de software en variados mbitos, como por ejemplo: Los sistemas de navegacin de vehculos espaciales Sistemas de control de acondicionadores de aire Electrodomsticos familiares (frigorficos, lavadoras...) Enfoque automtico de cmaras fotogrficas Mejora en la eficiencia del uso de combustible en motores Optimizacin de sistemas de control industriales. [WEB-05] La gran y creciente versatilidad de este tipo de sistemas nos hace tender a l como tema de Memoria de Titulacin, ya que creemos que dicha tcnica puede ser til en la solucin de gran variedad de problemas, en nuestra regin, por ejemplo, para el control automtico de luces de una mina. El proyecto pretende desarrollar un framework, entendiendo esto como una forma o manera de hacer algo, en nuestro caso, desarrollar un sistema experto difuso, que

solucione las tres problemticas planteadas, e implementar las herramientas necesarias para llevarla a cabo. Las tres problemticas son: y y y Evitar implementar nuevamente lo concerniente al sistema experto difuso cada vez que nos enfrentemos a su desarrollo. Poder redefinir las caractersticas del sistema experto difuso fcilmente. Generar un sistema experto difuso independiente a las aplicaciones que lo usen.

Hemos de notar que el framework que crearemos se basar en la utilizacin de una herramienta para definir un sistema experto difuso a partir de un sistema experto difuso Genrico, y como, con ella, podemos dar solucin a los problemas planteados. La solucin a plantear se basa en la idea de volver genrico, algo que no lo es. Por ejemplo piense en la motivacin que se tuvo al momento de crear los TAD (tipos abstractos de datos), que mediante la implementacin de funciones genricas la idea fue reutilizar esa funcin para diversos problemas. En un sentido parecido a la creacin de los TAD, queremos generar una herramienta que permita definir un sistema experto difuso a partir de uno genrico para utilizarlo para un problema particular. Aunque desconocemos la existencia de metodologas que se apoyen en herramientas prcticas para el desarrollo de este tipo de sistemas, pretendemos innovar en esta materia y desarrollar una metodologa basndose en el uso de la herramienta que desarrollaremos. En base al estudio que hemos desarrollado a lo largo de nuestra carrera sabemos que es factible de desarrollar esta metodologa, ya que en las asignaturas de inteligencia artificial hemos estudiado la teora de la lgica difusa y en Ingeniera de Software II hemos desarrollado un prototipo de la herramienta que se quiere desarrollar. Finalmente se pretende tambin desarrollar una aplicacin de prueba con el fin de validar la metodologa y la herramienta. Resumiendo, nuestro producto es un framework para el desarrollo de sistemas expertos difusos, entendiendo ste como una aplicacin (herramienta) de software que permite la creacin de sistemas expertos difusos a partir de un sistema experto difuso genrico y la metodologa para su creacin.

OBJETIVO DEL TRABAJO


2.1 Objetivos Generales:
1. Generar un framework para el desarrollo de sistemas expertos difusos, que cumplen las condiciones de: a. Evitar implementar nuevamente lo concerniente al sistema experto difuso cada vez que nos enfrentemos a su desarrollo. b. Poder, una vez implementado, redefinir las caractersticas del sistema experto difuso fcilmente. c. Generar un sistema experto difuso independiente de las aplicaciones que lo usen.

2.2 Objetivos Especficos:


1. 2. 3. 4. Estudio sobre sistemas expertos difusos y sus diferentes tipos. Estudio sobre distintos modelos de desarrollo de software. Estudio sobre la creacin de analizadores lxicos y sintcticos. Evaluar cmo se relaciona el framework planteado y los ciclos de vida de desarrollo de software ms importantes. 5. Generar una metodologa para desarrollar sistemas expertos difusos. 6. Desarrollar la herramienta que permite definir sistemas expertos difusos a partir de uno genrico. 7. Validar el framework a travs del desarrollo de una aplicacin de prueba.

MARCO TERICO TCNICO


El proyecto se centra en el estudio de los sistemas expertos difusos y su desarrollo, sin embargo hay otros temas que se abordarn, para solucionar problemas especficos.

3.1 Lgica difusa


La base terica sobre la cual se sustentan los sistemas expertos difusos es la lgica difusa. A mediados de la dcada del 60 el Profesor Lotfi Zadeh, de la Universidad de California en Berkeley, introdujo su teora de los conjuntos difusos, donde la idea de pertenencia de un elemento a un determinado conjunto no era ya pertenece o no pertenece, sino que pertenece en un cierto grado. Las funciones que vinculan al elemento con su grado de pertenencia, se llaman funciones de membreca. [WEB-01] Ejemplo de funciones de membreca para los conjuntos difusos baja temperatura, media temperatura y alta temperatura, representan el grado de pertenencia en funcin del grado de temperatura (Celsius en este caso)

Observe que 12 pertenece a baja temperatura con un grado de pertenencia de 0,8 y tambin pertenece a media temperatura con un grado de pertenencia de 0,2. Basndose sobre esta idea, se construy nuevamente toda la teora de conjuntos, redefiniendo interseccin, unin, complemento, operadores lgicos, otras operaciones y sus propiedades. [PPT-01] En lo referente a la lgica, aparecen nuevas alternativas respecto de la lgica tradicional, puesto que, al evaluar una proposicin, ya no es verdadera o falsa sino que la misma tiene un cierto grado de veracidad, y que a su vez depende del grado de veracidad de sus premisas.

De aqu que al utilizar lgica difusa en la evaluacin de reglas, todas las reglas cuyas premisas tengan algn grado de veracidad, influirn tambin en cierto grado a la solucin del problema. [PPT-01]

3.2 Sistemas expertos difusos


Los sistemas expertos difusos son sistemas basados en reglas, pueden entenderse como un sistema experto con manejo de reglas e inferencia difusa. Sin embargo hay que agregar a esta comparacin el hecho que en el caso de los sistemas expertos difusos se agregan dos procedimientos al proceso de inferencia, uno previo y otro posterior a ella, nos referimos a la fuzzificacion y defuzzyficacin. [PDF-03]

Fuzzificacin

Inferencia

Defuzzificacin

Entradas

Base de reglas

Salidas

Observa el entorno

Altera el entorno

Los sistemas expertos difusos, toman los valores de las variables de entrada (Hechos), transforman los valores exactos a valores difusos (fuzzificacin), deciden como modificar las variables de salida (en base a reglas) y lo realizan (inferencia), transforman los valores difusos a valores exactos (defuzzificacin), afectando estas ltimas al entorno, esta modificacin del entorno genera nuevas entradas dndose una nueva iteracin al proceso Procesan reglas para decidir como cambiar las salidas. Esto lo hace una tecnologa muy accesible, ya que mediante reglas podemos representar el conocimiento de una situacin ms fcilmente que con ecuaciones o modelos. [PDF-03] Cuando este conocimiento est expresado como reglas del tipo SI antecedente ENTONCES consecuente o SI condicin ENTONCES accin entonces se dice que es un sistema basado en reglas. La elaboracin de un sistema experto difuso genrico se centra en la elaboracin de un motor de inferencia genrico, es decir, capaz de realizar la inferencia en base a cualquier base de hechos y base de conocimiento, con una estructura adecuada, por supuesto.

A su vez la base de conocimiento y de hechos debieran ser capaces de albergar diferentes hechos y reglas, respectivamente, para ello, se utilizarn estructuras genricas bsicas como listas (lista de hechos, lista de reglas). Se agrega a lo anterior, posibilitar la eleccin entre diferentes funciones de fuzzificacin parametrizadas y de defuzzificacin, de manera de permitir una amplia gama de posibilidades a la hora de definir el sistema experto difuso especfico. Finalmente, la idea es, mediante un framework, definir estas estructuras (base de hechos y base de conocimiento) y otros parmetros que definen un sistema experto difuso especfico.

3.3 Modelos de desarrollo de software


El objetivo del proyecto es a grandes rasgos un objetivo dual, o dos objetivos, el primero de ellos es definir una metodologa de desarrollo de sistemas difusos, y por otro lado desarrollar las herramientas necesarias para poder ejecutar tal metodologa. Sin embargo no podemos abstraernos de las metodologas o modelos de desarrollo de software existentes, sino que debemos finalmente determinar de qu manera se relaciona el desarrollo del sistema experto difuso y el de la aplicacin que realmente lo ocupa. En este sentido deberemos estudiar los diferentes modelos de desarrollo existentes.

3.4 Anlisis lxico y sintctico


En cuanto anlisis lxico y sintctico aplicaremos los conocimientos adquiridos en la asignatura Teora de Autmatas y Lenguajes Formales. El sistema experto difuso genrico es un sistema basado en reglas, por ello se plantea una problemtica extra que es el reconocimiento de ellas para ser representadas en estructuras ms acordes para su procesamiento, arboles de expresin en este caso. Por esto, y en funcin de realizar una herramienta potente, en trminos de usabilidad, es necesario elaborar un analizador lxico y sintctico que permita flexibilizar el ingreso de las reglas. Por ejemplo, es mucho ms fcil para el usuario obviar parntesis cuando se pueda, sin embargo para el desarrollador es mucho ms fcil tratar con reglas cuyas operaciones estn estrictamente divididas. El anlisis sintctico convierte el texto de entrada, reglas en nuestro caso, en otras estructuras (comnmente rboles), que son ms tiles para el posterior anlisis y capturan la jerarqua implcita de la entrada. Un analizador lxico crea tokens de una secuencia de caracteres de entrada y son estos tokens los que son procesados por el

10

analizador sintctico para construir la estructura de datos, por ejemplo un rbol de anlisis o rboles de sintaxis abstracta. Los lenguajes habitualmente reconocidos por los analizadores sintcticos son los lenguajes libres de contexto. Cabe notar que existe una justificacin formal que establece que los lenguajes libres de contexto son aquellos reconocibles por un autmata de pila, de modo que todo analizador sintctico que reconozca un lenguaje libre de contexto es equivalente en capacidad computacional a un autmata de pila. [WEB-02] El lenguaje que se utilizara en las reglas del sistema experto difuso es un lenguaje de contexto libre, ya que este tipo de lenguaje en conjunto con la naturaleza lingstica de los sistemas expertos difusos lo hace muy similar al lenguaje natural pero con la facilidad de manejo de un lenguaje libre de contexto. Con la implementacin del analizador lxico y sintctico se busca una mejor representacin de las reglas y evitar algunos problemas de interpretacin que se podran producir sin la utilizacin del analizador. Por ejemplo dada esta regla: Si baja temperatura omucho sueo o no hayClases -> levantarse tarde Puede representarse de dos diferentes maneras:

En este sentido se hace necesario un analizador para permitir cierta flexibilidad al usuario, de no existir tal analizador tendramos que obligar al usuario a cumplir un estricto formato, por ejemplo: Si ( ( baja temperatura omucho sueo ) o no hayClases ) -> levantarse tarde Otro ejemplo de la necesidad del analizador se ve en que la regla anterior no sera vlida o seria mal interpretada ya que hay un operador pegado a una palabra ( omucho ).

11

TEMARIO DEL INFORME FINAL


1) Introduccin 2) Plan General del Proyecto 3) Estudio del marco terico Captulo 1: Lgica difusa Captulo 2: Sistemas expertos difusos Captulo 3: Modelos de desarrollo de software Captulo 4: Analizador lxico y sintctico 4) Desarrollo de la metodologa Captulo 5: Desarrollo de sistemas expertos Captulo 6: Metodologa para el desarrollo se sistemas expertos difusos 5) Desarrollo de la herramienta Captulo 7: Desarrollo de la herramienta (Planificacin) Captulo 8: Desarrollo de la herramienta (Anlisis) Captulo 9: Desarrollo de la herramienta (Diseo) Captulo 10: Desarrollo de la herramienta (Implementacin) 6) Validacin del framework Captulo 11: Desarrollo de la aplicacin de prueba (Planificacin) Captulo 12: Desarrollo de la herramienta de prueba (Anlisis) Captulo 13: Desarrollo de la herramienta de prueba (Diseo) Captulo 14: Desarrollo de la herramienta de prueba (Implementacin) 7) Conclusiones 8) Referencias bibliogrficas

12

RESUMEN
Este proyecto pretende generar un framework para el desarrollo de sistemas expertos difusos, que cumple las condiciones de: y Evitar implementar nuevamente lo concerniente al sistema experto difuso cada vez que nos enfrentemos a su desarrollo. y Poder, una vez implementado, redefinir las caractersticas del sistema experto difuso fcilmente. y Generar un sistema experto difuso independiente a las aplicaciones que lo usen. Por lo mismo tal metodologa se basar en la utilizacin de una herramienta para el desarrollo. Esta herramienta ser una aplicacin que permita definir un sistema experto difuso a partir de una implementacin genrica. Adems el proyecto contempla el desarrollo de una aplicacin prctica, con el fin de validar la metodologa y la herramienta. Dentro del marco terico del proyecto se contempla el estudio de: y y y y Lgica difusa Sistemas expertos difusos Modelos de desarrollo de software Anlisis lxico y sintctico

13

BIBLIOGRAFIA
[PDF-01] Gestin Dinmica de proyectos mediante lgica fuzzy Autor: HENRY ANTONIO MENDIBURU DAZ FUZZY CONTROL Autor: Ing. Juan Carlos Gmez Universidad Tecnolgica Nacional FRBA Instituto Nacional de Tecnologa Industrial Electrnica Introduccin a la Lgica Difusa Tomas Arredondo Vidal 26/06/09 Sistemas de Inferencia Difusa Patricia Jaramillo A. Ph.D Universidad Nacional de Colombia Sede Medelln Sistemas Difusos Juan A. Bota Blaya Universidad de Murcia FUNDAMENTOS DE LOGICA DIFUSA Universidad de las Amricas-Puebla Octubre 2007 http://www.tdr.cesca.es/TESIS_UPC/AVAILABLE/TDX-0207105105056//04Rpp04de11.pdf Conceptos fundamentales de lgica difusa http://es.wikipedia.org/wiki/Analizador_sintactico http://jordisan.net/blog/2006/que-es-un-framework http://www.inteligenciaartificial.cl/ciencia/software/ia/ inteligencia_artificial.htm http://es.wikipedia.org/wiki/L%C3%B3gica_difusa

[PDF-02]

[PDF-03]

[PDF-04]

[PDF-05]

[PPT-01]

[WEB-01]

[WEB-02] [WEB-03] [WEB-04] [WEB-05]

14