Universidad Rey Juan Carlos Curso 2010-2011 Inteligencia Artificial I.T.I.S. Práctica de Diciembre 1. Introducción La práctica consiste en la realización de un Sistema Experto sobre algún dominio conocido por los integrantes del grupo o del que puedan adquirir conocimiento, preferiblemente que no sea informático. Las bases de conocimiento se representarán en CLIPS (o JESS). Ejemplos de dominios pueden ser (aunque no sólo estos): Clasificación: animales, plantas, minerales, personas,... Recomendación: ordenadores, pisos (inmobiliaria), viajes turísticos, hoteles, apuestas, cámaras de fotos/video, acciones a tomar en juegos (ajedrez, dominó, etc), tratamiento enfermedades, parámetros configuración cámara fotográfica, alineación equipo de fútbol, inversión bolsa, material deportivo (tipo decathlon),... Detección: fraudes bancarios o hacienda, fallos en sistemas, intrusos, correo spam, copias de software (prácticas),... Diagnóstico: enfermedades, fallos en sistemas informáticos, averías coches, accidentes,... Configuración: ordenadores, software, calendario campeonato, asignación de árbitros, banquetes, entrenamientos físicos, dieta,... Predicción: riesgos, resultados partidos/campeonatos, tráfico, bolsa,... Evaluación: calidad ciudad, calidad-precio de productos, notas asignatura, carreras, universidades,... Control: viviendas/edificios inteligentes,... Otros... Se pueden combinar varios dominios. 2. Requisitos obligatorios La práctica se debe desarrollar siguiendo las fases habituales en la construcción de un Sistema Basado en el Conocimiento: 1. Adquisición del conocimiento 2. Conceptualización 3. Formalización. 4. Implementación 5. Evaluación A continuación se describe el trabajo a realizar en cada una de las fases. Página 1 de 5
2.1. Adquisición del conocimiento Consiste en reunir el conocimiento que se incluirá en el sistema. Esa información puede obtenerse de textos y expertos (que pueden ser los propios alumnos u otras personas). El resultado de la fase de adquisición de conocimiento será una descripción detallada (texto, gráficos, tablas,... ) de todo el conocimiento que se va a utilizar en el sistema. 2.2. Conceptualización Consiste en construir la ontología (conceptos, atributos y relaciones entre conceptos) a partir de la fase de adquisición del conocimiento. Esta información se representará mediante Marcos. Para esta tarea se puede utilizar alguna herramienta de edición de ontologías, p. ej. representada mediante marcos (frames) en Protégé 3.4.4 (http://protege.stanford.edu/index.html), o mediante diagramas de clase, utilizando cualquier herramienta de UML. 2.3. Formalización e Implementación Se usarán reglas para formalizar el conocimiento siendo CLIPS (o JESS) el lenguaje utilizado para la implementación de las bases de conocimiento del sistema. El conocimiento debe estar estructurado en bases de conocimiento (en ficheros separados) que incluyan conocimiento relacionado. Por ejemplo, algunas bases de conocimiento podrían ser las siguientes: Ontología: definición en clips de la ontología Base de hechos inicial: si el conocimiento del sistema es general, en este fichero se incluirían los hechos que definen un problema concreto. Lectura de datos: si hay que leer datos de entrada Escritura de resultados: o preparación de datos de salida para poder procesarlos de forma más sencilla Resto de Bases de conocimiento con el conocimiento propio sobre el dominio de aplicación. 2.4. Evaluación Para probar el funcionamiento de la práctica, los alumnos deben preparar casos de prueba lo suficientemente ricos que permitan comprobar su correcto funcionamiento. Se deben presentar al menos 3 casos de prueba, describiendo su contenido, el proceso de razonamiento realizado y el resultado obtenido. En la memoria se deben incluir instrucciones claras y precisas sobre la forma de ejecutar la práctica, que debe ser de forma sencilla. Por ejemplo, se puede proporcionar un fichero carga.bat que cargue todos los ficheros necesarios para ejecutar la práctica, un ejemplo de contenido es el siguiente: Página 2 de 5
(clear) (load f1.clp) (load f2.clp). (load fn.clp) (reset) 3. Requisitos opcionales Cualquier añadido que se incluya en la práctica se valorará positivamente. NO es obligatorio implementar una interfaz de usuario. No obstante, cualquier implementación añadida que mejore la facilidad de uso del programa - siempre que el contenido obligatorio esté completo - será tenida en cuenta para la nota final de la práctica. Por tanto, opcionalmente se podrá dotar al sistema con una interfaz de usuario (modo texto o visual). CLIPS se puede integrar en otros leguajes, especialmente en C o C++. También se puede utilizar JESS 1, que permite una fácil integración en Java. Se puede encontrar documentación sobre la integración de CLIPS en C en: CLIPS Reference Manual (vol II Advanced Programming Guide), fichero apg.pdf. En el caso de Jess, se puede obtener información tanto de la d ocumentación que acompaña a la distribución como del libro: JESS in Action: Rule-based systems in Java. Friedman-Hill, E. Manning. 2003. 4. Memoria de la práctica La memoria de la práctica contendrá obligatoriamente los siguientes apartados: Portada: deberá incluir el nombre de los miembros del grupo con una dirección de correo electrónico, por si fuese necesario ponerse en contacto con el grupo. Introducción: en este apartado se realizará una introducción al dominio del sistema experto elegido. Diseño: en este apartado se deberán explicar las distintas decisiones tomadas a la hora de realizar el diseño del sistema. En particular, se explicarán las fases de Adquisición del conocimiento y Conceptualización. Implementación: en este apartado se deberá explicar todo lo relacionado con las fases de Formalización e Implementación, así como todo lo que se considere oportuno destacar en relación a la implementación del sistema. Evaluación: en esta sección se deberán documentar los diferentes casos de prueba llevados a cabo, resaltando las diferencias de comportamiento del sistema. Los casos de prueba deberán ir acompanãdos de una explicación y discusión sobre el mismo. 1 Obsérvese que la versión trial expira a los 30 días, por lo que podría no funcionar cuando se corrija la práctica Página 3 de 5
Conclusiones: este apartado contendrá consideraciones generales sobre la práctica. Evaluación personal: en este apartado el grupo deberá autoevaluar el trabajo realizado, otorgándose una nota entre 0 a 10, justificando la misma. Es de obligado cumplimiento que la memoria esté bien elaborada en cuanto a su estructura y contenido, tiene que contener al menos los apartados enumerados anteriormente. Una buena implementación con una mala memoria es sinónimo de una evaluación global baja. Insistimos, poned especial empeño en realizar una memoria clara y explicativa, señalando todos los aspectos que creáis convenientes del desarrollo de la práctica. 5. Normas generales Las normas generales de la práctica son las siguientes: La entrega de esta práctica es obligatoria para la superación de la asignatura. El trabajo se realizará en grupos de 2 personas. Queda terminantemente prohibido entregar prácticas copiadas o fragmentos de código copiados de otros compañeros, tanto de este curso como de cursos anteriores. Tened en cuenta que este aspecto se vigilará especialmente y que, en caso de probar que un alumno ha copiado, se suspenderá automáticamente la práctica en la convocatoria correspondiente tanto al grupo que copie como al que proporcione el código. 5.1. Normas de entrega La práctica podrá ser entregada hasta el Lunes 20 de Diciembre de 2010 a las 17:00 horas. No se aceptarán prácticas entregadas después de dicha fecha. Se entregará por una parte la práctica en formato electrónico (NO por correo electrónico, para evitar eventuales problemas), así como la memoria (impresa o en formato electrónico) y los pasos a seguir para la ejecución e instalación del software (si fueran necesarias). El CD deberá contener todo lo necesario para la ejecución de la práctica. En caso de que no se adjunte todo lo necesario para su ejecución no se evaluará la práctica. 5.2. Normas de evaluación Lee detenidamente las siguientes notas aclaratorias acerca del desarrollo y evaluación de la práctica: Una práctica entregada fuera de plazo se considerará no presentada. Aquellos alumnos que quieran entregar su práctica antes del día fijado para ello podrán hacerlo sin ningún tipo de problema. Página 4 de 5
Una entrega en la que falta uno de los dos elementos que se piden (memoria y código) se considerará suspensa. Será obligatorio que ambos componentes del grupo sean capaces de defender la práctica por sí solos si se pidiera. Habrá entrevistas personales para evitar así que la carga de trabajo recaiga sobre uno sólo de los componentes del grupo. Si se probara que el trabajo no ha sido repartido equitativamente, eso supondría disparidad de notas entre los componentes del grupo (incluyendo la posibilidad de suspender la práctica). La evaluación de la práctica se realizará teniendo en cuenta aspectos como: dominio elegido, organización del conocimiento en bases de conocimiento, utilización adecuada del modelo basado en reglas, e. g. no abusar de la asignación de prioridades, dimensión del conocimiento incluido en el sistema, claridad de las reglas, utilización de alguna herramienta para construir la ontología, calidad y cantidad de los ejemplos proporcionados, facilidad de interacción con el usuario (interfaces de usuario), integración con otros lenguajes (java, c++, etc), calidad de la memoria, etc. 6. Otras consideraciones Para aclarar dudas acerca de la práctica podéis contactar con los profesores de la asignatura, prioritariamente con Roberto Centeno: Roberto Centeno roberto.centeno@urjc.es Ed. Anexo Rectorado. Planta 2, Dcho. 2013B Ramón Hermoso ramon.hermoso@urjc.es Ed. Anexo Rectorado. Planta 2, Dcho. 2013A Ambos estarán disponibles tanto por correo electrónico como en las horas de tutorías (preferiblemente concertar previamente por correo). Página 5 de 5