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 2023)
I - Oferta Académica
Materia Carrera Plan Año Periodo
SISTEMAS INTELIGENTES ING. INFORM. 026/12- 08/15 2023 2° cuatrimestre
() SISTEMAS INTELIGENTES ING. EN COMPUT. 28/12 2023 2° cuatrimestre
II - Equipo Docente
Docente Función Cargo Dedicación
ERRECALDE, MARCELO LUIS Prof. Responsable P.Asoc Exc 40 Hs
FERRETTI, EDGARDO Prof. Colaborador P.Adj Exc 40 Hs
CAGNINA, LETICIA CECILIA Prof. Co-Responsable P.Adj 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
 Hs. 2 Hs. 2 Hs. 1 Hs. 5 Hs. 2º Cuatrimestre 07/08/2023 18/11/2023 15 75
IV - Fundamentación
Este curso trata sobre los aspectos principales de la Inteligencia Artificial (IA) y los Sistemas Inteligentes (SI). Un SI es un sistema que provee soluciones para problemas que son difíciles o poco práctico para resolver con los métodos algorítmicos tradicionales. Para ello, un SI utilizará en su diseño técnicas y arquitecturas adecuadas para lograr distintos grados de flexibilidad (reactividad, pro-actividad y sociabilidad), autonomía, adaptatividad y aprendizaje.

Para lograr estas capacidades el diseño de un SI 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.

El enfoque adoptado en nuestro caso se basa en el concepto de agente inteligente. Desde esta perspectiva, el desarrollo de SIs 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.

El énfasis en este curso estará puesto en las aplicaciones de las técnicas de la IA y en los aspectos de ingeniería involucrados en el desarrollo de los SIs. En este contexto, los casos de estudio incluirán diversas áreas tales como los sistemas basados en conocimiento, optimización con meta-heurísticas, sistemas bio-inspirados, agentes de software inteligentes, procesamiento de lenguaje natural, aprendizaje automático, minería de datos, robótica adaptativa inteligente, procesamiento intensivo de conocimiento en la Web, etc.
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 y los Sistemas Inteligentes, 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 o arquitectura de sistema inteligente es apropiado para un determinado problema, identificar las representaciones y mecanismos más adecuados 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 los sistemas inteligentes, 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 a la Inteligencia Artificial. ¿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). Tipos de Agentes. Agentes reactivos. Agentes basados en objetivos. Agentes basados en utilidades. Agentes que aprenden. 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
Introducción al Aprendizaje Automático. Aprendizaje como búsqueda. Aprendizaje supervisado, no supervisado y por refuerzo. Ejemplos. Redes Neuronales Artificiales. Aprendizaje profundo. Plataformas para el aprendizaje automático. Ejemplos: scikitlearn, TensorFlow, Keras, Pytorch.

UNIDAD 5
Agentes lógicos. Agentes basados en conocimiento. Representación y razonamiento (R y R). R y R en Lógica Proposicional y de Primer Orden. Ontologías. Razonando en la Web. La Web semántica.

UNIDAD 6
Agentes basados en utilidad. Funciones de utilidad. Problemas de decisión secuencial. Incertidumbre en las acciones. El enfoque MDP. Algoritmos para resolver MDP's. Aprendizaje por Refuerzo.

Unidad 7
Aplicaciones. Herramientas para la Web Inteligente. Minería de datos y de la Web. Optimización en la industria.

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 (heurística). Tambié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 3: Agentes basados en conocimiento
Se realizan ejercicios de representación de conocimiento y razonamiento utilizando un lenguaje de programación lógica.

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: Aprendizaje Automático.
Se experimenta con un software libre para aprendizaje automático (por ejemplo sckitlearn o Keras) 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 aprobar la materia, los alumnos podrán:

a) regularizarla, de acuerdo a las condiciones establecidas en el régimen para alumnos regulares, y luego aprobar el examen final correspondiente.

b) promocionarla, de acuerdo a las condiciones establecidas en el régimen para alumnos promocionales.

Las condiciones para ambas modalidades, se detallan a continuación.

A. Régimen para Alumnos Regulares

1. Tener un mínimo de 60% de asistencia a las clases prácticas.
2. Entrega del 70% de los ejercicios de prácticos de aula solicitados.
3. Aprobación de los prácticos de laboratorio propuestos.
4. Aprobar 1 (UN) examen parcial práctico o alguna de las 2 recuperaciones previstas por la reglamentación vigente.

Nota:
Setenta por ciento (70%) es el porcentaje mínimo, de los ejercicios a resolver, necesario para aprobar cada parcial. Además, al menos el 50% de cada uno de los ejercicios involucrados en el parcial deberán ser completados para considerar su aprobación.

B. Régimen para Alumnos Promocionales

1. Idem a lo requerido para alumnos regulares, con las siguientes diferencias:

a. El alumno deberá asistir a un 80% de las clases teóricas y prácticas.
b. Aprobar, con un mínimo de 7 (siete), un coloquio integrador oral y/o escrito al final del cuatrimestre.

La nota final se computará promediando las notas obtenidas en cada uno de los puntos mencionados previamente.

C. El curso no admite rendir el examen final en condición de libre.

D. 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; 4ta. edición, 2020.
[2] “An Introduction to MultiAgent Systems”. Michael Wooldridge. Second Edition. John Wiley & Sons, 2009.
[3] “Artificial Intelligence: Foundations of Computational Agents”. D. Poole y A. Mackworth. Cambridge University Press, 2010.
[4] “Computational Intelligence: A Logical Approach”. D. Poole, A. Mackworth y R. Goebel. Oxford University Press, 1998.
[5] “Machine Learning”, Tom Mitchell, McGraw Hill, 1997.
[6] “Introduction to Machine Learning with Python: A Guide for Data Scientists”. Andreas C. Müller y Sarah Guido. 1st Edición. 2016
X - Bibliografia Complementaria
[1] “Prolog-programming for artificial intelligence”. I. Bratko. Tercera Edición. Pearson Education, 2001.
[2] “Introduction to Data Mining”. P. Tan, M. Steinbch y V. Kumar. Pearson, 2005.
[3] "Deep Reinforcement Learning Hands-On". M. Lapam. Second Edition. 2020. Packt Publishing
XI - Resumen de Objetivos
El principal objetivo del curso es introducir al alumno en los conceptos básicos fundamentales de la Inteligencia Artificial y los Sistemas Inteligentes, 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
Introducción a la Inteligencia Artificial y los Sistemas Inteligentes, conceptos básicos e historia. Agentes. Tipos de ambientes y arquitecturas de agentes. Agentes de resolución de problemas. Búsqueda ciega y heurística. Problemas de satisfacción de restricciones. Aprendizaje Automático. Agentes basados en conocimiento. Representación y razonamiento. Sistemas de razonamiento lógico. Agentes basados en utilidades. Aplicaciones.
XIII - Imprevistos
Vias de comunicación:

http://sistemasinteligentes.dirinfo.unsl.edu.ar/

Prof. responsable - Marcelo Errecalde: merreca@email.unsledu.ar
Prof. Coresponsable - Leticia Cagnina: lcagnina@email.unsledu.ar
XIV - Otros