Inteligencia Artificial-UBB (técnicas de programación) CLASE DE PRESENTACIÓN Curso 2017, Semestre 2
Datos del Ramo: Profesor Clemente Rubio Manzano (clrubio@ubiobio.cl) Ayudante: Christian Rodríguez Formación: -Doctor en Informática (3 años 2008/2011). -Máster en Tecnologías Informáticas (2 años 2006/2008). -Ingeniería Superior Informática (5 años 2001/2006). -Curso Experto en Desarrollo de Videojuegos (1 año-2015/2016) Material, Apuntes, Lecturas recomendadas, en: http://www.face.ubiobio.cl/~clrubio/ia2017
Clase de Presentación Objetivos del ramo. Contenidos. Metodología. Evaluación. Bibliografía.
Objetivos del ramo: Introducción a la IA y sus técnicas de programación Inteligencia Artificial: Disciplina científica que tiene como objetivo la creación de sistemas artificiales inteligentes Artificial significa que es creado por el hombre, no por la naturaleza. Filosofía: si la naturaleza creó al hombre y el hombre creó máquinas inteligentes, por transitividad, la naturaleza creó máquinas inteligentes?.
Informática (disciplina para el proceso automático de la información) Informática Inteligente (disciplina para el proceso automático e inteligente de la información) Automático Inteligente Las aplicaciones de informática reciben una entrada, procesando los datos dan una salida. Habitualmente son sistemas estáticos, sensibles a los cambios de la entrada. Una entrada o cambio en las características Requiere un nuevo diseño de la aplicación Las aplicaciones de informática inteligente reciben una entrada, procesando los datos dan una salida. Durante la ejecución es posiblemente que se produzcan cambios. Habitualmente son sistemas dinámicos, menos sensibles a los cambios de la entrada. Una entrada o cambio en las características no requiere un nuevo diseño de la aplicación. Un sistema inteligente puede aprender de los datos que recibe para mejorar el procesamiento y dar mejores salidas
Objetivos del ramo: Introducción a la IA y sus técnicas de programación Un sistema artificial inteligente es una entidad que cuando se observa produce en el espectador una la ilusión de inteligencia. Ejemplo: entornos virtuales creados por los alumnos del ramo
Objetivos del ramo: Introducción a la IA y sus técnicas de programación Un sistema artificial podría ser un robot, o cualquier máquina (avión, coche, etc). Sin embargo, Nosotros nos restringiremos a sistemas artificiales creados mediante algoritmos/programas de computador. Lo que se denomina inteligencia computacional
Objetivos del ramo: Introducción a la IA y sus técnicas de programación Nuestra elección. Entornos virtuales
Por tanto, nuestro objetivo consiste en proporcionar una base sólida y práctica para la construcción de entornos virtuales en dos dimensiones en los cuales se puedan programar entidades gráficas que realicen tareas inteligentes. En particular: Cómo crear un entorno virtual en 2D. Cómo crear entidades virtuales que actúen en dicho escenario y se comporten de forma inteligente. Algoritmos de inteligencia artificial en un espacio de estados.
La creación de los entornos virtuales y de las entidades se realizará mediante el lenguaje de programación Java. El alumno debe mostrar habilidad en el dominio de la programación, del diseño y la implementación Diseñar Modelar Capacidad de Abstracción Implementar Programar Orientación a Objetos JAVA
Contenido: Qué debemos dominar para pasar el ramo? Introducción a la IA Nuestro concepto de inteligencia Diseño basado en agentes Desarrollo de un entorno Virtual en 2D Construcción del escenario Dando vida al escenario (eventos) Creación de entidades (visualización, animación e interacción) Técnicas de programación de IA Búsqueda no informada (anchura profundidad) Búsqueda informada (primero el mejor, A*) Desarrollo de agentes inteligentes aplicando las técnicas de programación aprendidas y su incorporación al entorno virtual
Contenido: Cómo se imparte el contenido? PARTE 1: Taller de construcción de un entorno virtual 2D mediante el lenguaje de programación Java. PARTE 2: Taller teórico-práctico sobre las técnicas de programación de IA (Búsqueda no informada e informada, Búsqueda A*) PARTE3: Taller de incorporación de las técnicas en nuestro entorno virtual.
Metodología Metodología basada en proyecto-taller. Clases tipo taller. Se seguirá un libro realizado por el profesor que explica, paso a paso, la construcción de un entorno virtual 2D y la programación de agentes inteligentes con técnicas de búsqueda en un espacio de estados. El proyecto final, AL IGUAL QUE LAS TAREAS, se desarrollan de forma INDIVIDUAL. Seguimiento semanal de los avances parciales de cada alumno, así como de las tareas. Cada avance cuenta para la nota final. La no entrega de avances o tareas restará -0.3 puntos en la nota del proyecto. Dos entregas absolutas, a mitad del semestre y al final de semestre (Fechas por determinar) IMPORTANTE: Lo que prima es el producto final y una vez que el producto final cumple los requisitos, entonces se puede pasar a evaluar la calidad. Las pautas de evaluación dependerán de la normativa del proyecto anual.
Plan de trabajo
Evaluación Clase 1 Clase 2 Clase N Entrega 1 Entrega 2 Entrega N 0.3 0.3 0.3 Proyecto final del ramo NP 70% 70% CLA 1 30% CLA 2 CL1 30% CL2 NL Se realizarán dos certámenes de programación en la mitad de semestre y al final del mismo Se permite apuntes y código personal. La duración será de 4 secciones (4 horas). Los certámenes siempre están relacionados con los talleres.
Evaluación LA NOTA FINAL SE CALCULARÁ DE LA SIGUIENTE FORMA: COMPETENCIA LABORATORIO (CL) (NOTA SOBRE 7) 1 punto base. 0 a 7 PUNTOS SERÁN PARA EL LABORATORIO, el requisito fundamental es que el programa que se pida desarrollar funcione correctamente, que cumpla los requisitos fijados. Nota CL=CL1+CL2/2 COMPETENCIA PROYECTO (CP) (NOTA SOBRE 7) 1 punto base. Desarrollo del proyecto. el proyecto debe cumplir los requisitos fijados. el no cumplimiento de los mismos podrá evaluarse como NCR.
Evaluación NT = (CL + CP)/2 sii CL >= 4 Y CP >= 4. IMPORTANTE: el proyecto final funciona correctamente, cumple todos los requisitos, no se cae y se entrega en la fecha y hora fijada de entrega. Si el proyecto no funciona correctamente, no cumple la mayor parte de los requisitos, se cae o NO se entrega en la fecha y hora fijadas. Se podrá evaluar con NCR.
Bibliografía Desarrollo de un Videojuegos 2D en Java con técnicas de inteligencia computacional. Clemente Rubio-Manzano & Christian Rodríguez