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 2019)
I - Oferta Académica
Materia Carrera Plan Año Periodo
INTELIGENCIA ARTIFICIAL LIC.CS.COMP. 32/12 2019 1° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
ERRECALDE, MARCELO LUIS Prof. Responsable P.Asoc Exc 40 Hs
FERRETTI, EDGARDO Responsable de Práctico JTP Exc 40 Hs
GARCIARENA UCELAY, MARIA JOSE Auxiliar de Práctico A.1ra Simp 10 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 13/03/2019 22/06/2019 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 fuere 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 poco prácticos para resolver con otros métodos. En este sentido, un estudiante debería ser capaz, una vez finalizado el curso, de determinar en qué casos es apropiado un enfoque de IA para un determinado problema, y de seleccionar 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, 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 / Resultados de Aprendizaje
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. Completo 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 y de optimización. Principales algoritmos. Enfoques con formulación incremental y con estado completo. Algoritmos de mejora iterativa. Descenso del gradiente. 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. R y R en Lógica de Primer Orden. 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 5
Incertidumbre. Teoría de probabilidad. Interpretación de las probabilidades. Sintaxis. Inferencia probabilística. Regla de Bayes. Redes Bayesianas.

UNIDAD 6
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 7
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.

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. Se resuelven distintos ejercicios vinculados a los principales métodos de búsqueda heurística.

Práctico 3: Problemas de satisfacción de restricciones y optimización.
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 para agentes lógicos y ejercicios relacionados con la representación del tiempo, acciones y cambio usando Cálculo de Eventos.


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áctico de Laboratorio 1: Práctica con el robot Khepera 2.
Se desarrollan distintos agentes reactivos simples inspirados en los vehículos de Braitenberg para controlar al robot Khepera 2. Mínimamente, se implementan los comportamientos cobarde y agresivo (vehículos tipo 2 de Braitenberg) como así también los comportamientos enamorado y explorador (vehículos tipo 3).

Práctico de Laboratorio 2: Práctica con el robot Khepera 2.
Se desarrolla un agente basado en objetivos que le permite al robot Khepera 2 desplazarse desde una posición inicial hasta una posición objetivo en una ambiente determinístico y completamente observable.

Práctico de Laboratorio 3: Aprendizaje Automático.
Se experimenta con un software libre para aprendizaje automático (por ejemplo Weka o Scikit-learn) 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.

Práctico de Laboratorio 4: Aprendizaje Automático (II).
Se experimenta con un software libre para aprendizaje por refuerzo (por ejemplo OpenAI Gym) desarrollándose un ejemplo sencillo con algoritmos básicos de aprendizaje por refuerzo.
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) examen parcial escrito o alguna de las 2 recuperaciones previstas por la reglamentación vigente, con al menos el 70% correcto. En la evaluación se incluirán los temas desarrollados en todos los prácticos.

3. Aprobar 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 examen final.

El curso no admite la aprobación del examen 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.
XIV - Otros