Ministerio de Cultura y Educación
Universidad Nacional de San Luis
Facultad de Ciencias Físico Matemáticas y Naturales
Departamento: Informatica
Área: Area V: Automatas y Lenguajes
(Programa del año 2016)
(Programa en trámite de aprobación)
(Programa presentado el 11/04/2016 11:43:30)
I - Oferta Académica
Materia Carrera Plan Año Periodo
INTELIGENCIA ARTIFICIAL LIC.CS.COMP. 32/12 2016 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
ERRECALDE, MARCELO LUIS Prof. Responsable P.Asoc Exc 40 Hs
CAGNINA, LETICIA CECILIA Prof. Co-Responsable P.Adj Exc 40 Hs
FERRETTI, EDGARDO Responsable de Práctico JTP Exc 40 Hs
GARCIARENA UCELAY, MARIA JOSE Auxiliar de Práctico A.1ra Semi 20 Hs
III - Características del Curso
Credito Horario Semanal Tipificación Duración
Teórico/Práctico Teóricas Prácticas de Aula Práct. de lab/ camp/ Resid/ PIP, etc. Total B - Teoria con prácticas de aula y laboratorio Desde Hasta Cantidad de Semanas Cantidad en Horas
Periodo
2 Hs. 3 Hs. 2 Hs. 1 Hs. 8 Hs. 1º Cuatrimestre 14/03/2016 24/06/2016 15 120
IV - Fundamentación
Este curso trata sobre los aspectos principales de la Inteligencia Artificial (IA). El enfoque adoptado en nuestro caso se basa en el concepto de agente inteligente. Desde esta perspectiva, el problema de la IA se centra en el análisis, diseño y construcción de agentes autónomos. Un agente es un sistema de software y/o máquina física provisto de sensores y efectores que le permiten interactuar directamente con un ambiente (virtual o físico). Un agente inteligente debería ser capaz de percibir su ambiente, y actuar racionalmente en pos de sus objetivos de diseño, interactuando cuando fuera necesario con otros agentes artificiales y/o humanos.

Para lograr estas capacidades el diseño de un agente puede involucrar aspectos tales como percepción, planificación y acción, representación de conocimiento y razonamiento, resolución de problemas y búsqueda, incertidumbre, utilidades y aprendizaje automático.

Un aspecto interesante de la IA es que provee un conjunto de herramientas para resolver problemas que son dificultosos o imprácticos para resolver con otros métodos. En este sentido, un estudiante debería ser capaz, una vez finalizado el curso, de determinar en que casos es apropiado un enfoque de IA para un determinado problema, y de selecionar e implementar el método más adecuado en cada caso.

Los contenidos generales del curso, se ajustan a los recomendados por la ACM/IEEE Computer Society Joint Task Force on Computing, para el área de Sistemas Inteligentes en carreras de grado en Ciencias de la Computación, publicados en Diciembre de 2013 (https://www.acm.org/education/CS2013-final-report.pdf). De acuerdo a esas pautas curriculares, este programa cubre todos los tópicos de conocimiento fundamentales/obligatorios ("Tier-2 Core") incluidos en los "Aspectos Fundamentales" y en los principios básicos de "Algoritmos de Búsqueda", "Representación de Conocimiento y Razonamiento" y "Aprendizaje Automático". Asimismo, se cubren varios tópicos electivos propuestos en las áreas de "Búsqueda Avanzada", "Representación y Razonamiento avanzado", "Razonamiento bajo Incertidumbre" y "Agentes".

Si bien el curso es autocontenido se sugiere conocimiento previo en lógica, probabilidad y estructuras de datos. La amplitud temática de la IA sólo permite un tratamiento general de los principales aspectos involucrados. No obstante esto, el curso sirve como base para otros cursos optativos de la licenciatura, relacionados a tópicos avanzados de la IA como "Agentes y Sistemas Multiagente" y "Aprendizaje Automático y Minería de Datos".
V - Objetivos
Objetivos generales

El principal objetivo del curso es introducir al alumno en los conceptos básicos fundamentales de la Inteligencia Artificial, poniendo el énfasis en aquellos aspectos directamente involucrados con la generación del comportamiento inteligente, como la resolución de problemas mediante búsqueda, representación de conocimiento y razonamiento, la toma de decisiones bajo incertidumbre y el aprendizaje automático.

Al finalizar el curso, se espera que el alumno pueda determinar cuándo un enfoque de IA es apropiado para un determinado problema, identificar las representaciones y mecanismos más apropiados para su abordaje, ponerlos en práctica y evaluarlos.

Por último, los conocimientos adquiridos deberían servir de base para aquellos alumnos que deseen extender sus conocimientos de los contenidos abordados, y profundizar en aspectos más avanzados de la IA, como por ejemplo: Procesamiento de Lenguaje Natural, Scheduling, Robótica, Explotación de datos (Data Mining), Sistemas Multiagente, etc.




VI - Contenidos
UNIDAD 1
Introducción: ¿Qué es la Inteligencia Artificial (IA)? Comportamiento humano vs. racional. Pensamiento humano vs. racional. El Test de Turing. La modelización cognitiva. Las "leyes del pensamiento" lógico. El agente racional. Historia de la IA. Estado del arte. Problemas abordados por la IA. Aplicaciones exitosas.

UNIDAD 2
Introducción a los Agentes Inteligentes. Definición. Aspectos esenciales de un agente. Agentes como funciones. Agente Racional. Descripción PAES (Performance, Ambiente, Efectores, Sensores). Arquitecturas de agentes. Agentes reactivos. Agentes basados en objetivos. Agentes basados en utilidades. Ambientes: propiedades. Completa vs. parcialmente observable. Determinístico vs. estocástico. Episódico vs. secuencial. Estático vs. dinámico. Discreto vs. continuo. Único agente vs. multiagente. Conocido vs. desconocido

UNIDAD 3
Resolución de Problemas y búsqueda. Agentes de resolución de problemas. Formulación de problemas. Ejemplos de problemas. Estrategias de búsqueda. Evaluación: completitud, optimalidad y complejidad. Métodos de búsqueda no informada. Principales algoritmos: búsqueda a lo ancho, en profundidad, con profundidad iterada, de costo uniforme. Métodos de búsqueda heurística. Principales algoritmos: primero el mejor (voraz), A*. Funciones heurísticas. Problemas de satisfacción de restricciones. Principales algoritmos. Enfoques con formulación incremental y con estado completo. Algoritmos de mejora iterativa. Enfoques Poblacionales (algoritmos genéticos, PSO, etc).

UNIDAD 4
Agentes lógicos. Agentes basados en conocimiento. Representación y razonamiento (R y R). R y R en Lógica Proposicional. Inferencia por enumeración. Conversión a Forma Normal Conjuntiva. Algoritmo de Resolución. Encadenamiento hacia adelante y hacia atrás. R y R en Lógica de Primer Orden. Reglas diagnósticas y causales.

UNIDAD 5
Representando tiempo, acciones y cambio. Representación Strips. Situation Calculus. Event Calculus. Resolución de problemas y planning. Planning clásico. Combinando planning y ejecución.

UNIDAD 6
Incertidumbre. Teoría de probabilidad. Interpretación de las probabilidades. Sintaxis. Inferencia probabilística. Regla de Bayes. Redes Bayesianas.

UNIDAD 7
Agentes basados en utilidad. Funciones de utilidad. Problemas de decisión secuencial. Incertidumbre en las acciones. Planning de lazo cerrado. El enfoque MDP. Algoritmos para resolver MDP's. Aprendizaje por Refuerzo. Diseño de un agente de teoría de decisión. Búsqueda en presencia de adversarios: algoritmos para juegos de dos personas.

UNIDAD 8
Introducción al Aprendizaje Automático. Aprendizaje como búsqueda. Aprendizaje supervisado, no supervisado y por refuerzo. Ejemplos. Aplicación de un método de aprendizaje simple a un problema de clasificación. El problema del sobre-ajuste. Evaluación de un clasificador.

VII - Plan de Trabajos Prácticos
Las clases prácticas consistirán en la resolución de ejercicios que involucren la aplicación y ejemplificación de los principales conceptos presentados en teoría.
Los prácticos de laboratorio por su parte, buscarán reafirmar estos conceptos mediante la implementación y uso de software específico a cada una de las temáticas abordadas en el curso.

Prácticas de Aula:

Práctico 1: Agentes racionales. Ambientes. Tipos de agentes.
Desarrollo de ejercicios vinculados a aspectos básicos de la IA, agentes racionales, características de los ambientes y arquitecturas de agentes.

Práctico 2: Resolución de problemas y búsqueda.
Se definen formalmente distintos problemas como problemas de estado único. Se analiza y experimenta con distintas estrategias de búsqueda no informada e informada.

Práctico 3: Problemas de satisfacción de restricciones
Se definen distintos problemas de la vida real como problemas de satisfacción de restricciones y se analizan y utilizan los métodos más conocidos para su resolución.

Práctico 4: Agentes basados en conocimiento
Se realizan ejercicios de representación de conocimiento y razonamiento utilizando la Lógica Proposicional y la Lógica de Primer Orden.

Práctico 5: Incertidumbre y Agentes basados en utilidades.
Se realizan ejercicios relacionados a los principales conceptos del razonamiento probabilístico y de los enfoques basados en utilidades como, por ejemplo, el algoritmo mini-max y distintos métodos de resolución de los procesos de decisión Markov.

Prácticos de Laboratorio:

Práctico de Máquina 1: Resolución de Problemas de estado único
Se definen formalmente las cuatro componentes que representan un problema, para un problema particular elegido por el alumno, utilizando para ello el formato Prolog explicado en teoría. Luego, se resuelve este problema utilizando el algoritmo GRAPH-SEARCH implementado en Prolog y provisto por la cátedra.

Práctico de Máquina 2: Satisfacción de restricciones.
Se selecciona alguno de los algoritmos vistos en teoría para resolver problemas de satisfacción de restricciones (SA, AG, PSO), y se lo utiliza para resolver un PSR representativo (por ejemplo el problema de las 8 reinas).

Práctico de Máquina 3: Representación de tiempo, acciones y cambio
Se experimenta con el software provisto por la cátedra, en la visualización del efecto de acciones y eventos, cuando se utilizan los enfoques de Situation Calculus y Event Calculus.

Práctico de Máquina 4: Aprendizaje Automático.
Se experimenta con un software libre para aprendizaje automático (por ejemplo Weka) y, utilizando un conjunto de datos de libre acceso (ej., los disponibles en el UCI Machine Learning Repository) se entrena y testea un clasificador simple.
VIII - Regimen de Aprobación
Para regularizar la materia, los alumnos deberán:

1. Tener un mínimo de 60% de asistencia a las clases teóricas, prácticas de aula y de laboratorio.

2. Aprobar 1 (un) exámen parcial escrito (o alguna de sus recuperaciones) que incluye todos los prácticos, con al menos el 70% correcto.

3. Entrega de los informes y programas que se requieran en las distintas unidades.

El curso no admite la modalidad de aprobación basada en régimen de promoción sin exámen final.

El curso no admite la aprobación del exámen final en condición de libre.

El examen final puede ser oral y/o escrito.
IX - Bibliografía Básica
[1] “Artificial Intelligence: A Modern Approach”. S. Russell y P. Norvig. Prentice Hall; 3ra. edición, 2009.
[2] “Artificial Intelligence: Foundations of Computational Agents”. D. Poole y A. Mackworth. Cambridge University Press, 2010.
[3] “Computational Intelligence: A Logical Approach”. D. Poole, A. Mackworth y R. Goebel. Oxford University Press, 1998.
[4] “Machine Learning”, Tom Mitchell, McGraw Hill, 1997.
X - Bibliografia Complementaria
[1] “An Introduction to MultiAgent Systems”. Michael Wooldridge. Second Edition. John Wiley & Sons, 2009.
[2] “Prolog-programming for artificial intelligence”. I. Bratko. Tercera Edición. Pearson Education, 2001.
[3] “Artificial Intelligence”. E. Rich y K. Knight. Segunda edición. McGraw-Hill, 1991.
[4] “Artificial Intelligence”. G. Luger y W. Stubblefield. Cuarta edición. The Benjamín/Cummings Publishing Company, 2001.
[5] “Inteligencia Artificial. Una nueva síntesis”. Nils J. Nilsson. McGraw-Hill, 2001.
[6] “Constructing Intelligent Agents Using Java”. J. P. Bigus y B. Jennifer. J. Wiley, 2001.
XI - Resumen de Objetivos
El principal objetivo del curso es introducir al alumno en los conceptos básicos fundamentales de la Inteligencia Artificial, poniendo el énfasis en aquellos aspectos directamente involucrados con la generación del comportamiento inteligente, como la resolución de problemas mediante búsqueda, representación de conocimiento y razonamiento, la toma de decisiones bajo incertidumbre y el aprendizaje automático.
XII - Resumen del Programa
Inteligencia Artificial, conceptos básicos e historia. Agentes. Tipos de Agentes. Agentes de resolución de problemas. Búsqueda ciega y heurística. Problemas de satisfacción de restricciones. Agentes basados en conocimiento. Representación y razonamiento. Sistemas de razonamiento lógico. Planning. Incertidumbre. Razonamiento probabilístico. Agentes basados en utilidades. Aprendizaje Automático.
XIII - Imprevistos
Eventualmente, si por motivos de fuerza mayor, no se cuenta con la totalidad de las semanas de clase previstas, el profesor responsable determinará cuales serán los temas que serán propuestos para que los alumnos estudien por su cuenta.