**SVRAI** Síntesis, Verificación y Razonamiento sobre Agentes Inteligentes Máster Universitario en Lógica, Computación e Inteligencia Artificial Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla # Introducción Frente a la aproximación más habitual de la Inteligencia Artificial, basada en la generación de algoritmos que se ejecutan de forma centralizada, el presente curso propone una aproximación transversal a diversos temas de la Inteligencia Artificial desde un punto de vista distribuido. Desde un punto de vista práctico, la **Inteligencia Artificial Distribuida** está asociada al uso de *Agentes* (denominados *Inteligentes* cuando utilizan algunas técnicas específicas) que contribuyen de forma no centralizada, por medio de técnicas como la *comunicación*, *cooperación*, *negociación*, *sincronización*, etc. a la resolución de problemas. El curso hace uso de metodologías concretas de representación y resolución general de problemas para motivar e introducir principios y técnicas fundamentales en los sistemas de agentes inteligentes. Los temas que se verán incluyen conceptos de *Teoría de la Decisión*, *Teoría de Juegos*, *Diseño de Procedimientos*, *Razonamiento con Restricciones*, *Aprendizaje Automático*, *Sistemas Multiagente Distribuidos* y *Sistemas Basados en Agentes Sociales*. # Generalidades | | | |-----------------------------|-----------------| |**Profesor** | [Fernando Sancho Caparrini](http://www.cs.us.es/~fsancho)| |**Correo electrónico** | fsancho@us.es |**Aula** | H0.10| |**Horario** | Martes 18:40-20:30| |**[Calendario](#Calendario)**| del 19/10/2021 al 08/10/2021| Entre las líneas básicas que guiarán la ejecución del curso se destacan: 1. El objetivo es que el alumno implemente muchos de los algoritmos que se verán a lo largo del curso haciendo uso del lenguaje que quiera (aunque se aconseja un lenguaje orientado a Sistemas Multiagente o que disponga de librerías adecuadas para su implementación, por ejemplo, [NetLogo](http://ccl.northwestern.edu/netlogo/) o [NIN](https://github.com/Deepknowledge-US/Selenitas)). 2. El contenido de las clases, en forma de lecturas, se dará por adelantado (cada semana se publicará la lectura de la semana siguiente). En algunos temas, sobre todo los más avanzados, será una combinación de material propio del curso y artículos/capítulos de diversos autores. 3. La clase se dividirá en dos secciones principales: una primera sección en la que se destacarán las partes fundamentales del tema abordado, y una segunda parte en la que se entrará en la discusión detallada de implementaciones y ampliaciones (quizás de temas anteriores). # Contenido Aunque es posible que no haya tiempo suficiente para cubrir la totalidad de los temas planificados (dependerá de la profundidad a la que haya que repasar los contenidos fundamentales y previos), la línea principal que se seguirá en el curso viene delimitada por el siguiente contenido: !!!Tip:Contenido 0. Fundamentos: * [Teoría de la Probabilidad](Probabilidad.md.html). * [Lógica Clásica (Proposicional y de Primer Orden)](Logica.md.html). * Inteligencia Artificial: * [Introducción a la IA](IA1.md.html). * [Metaheurísticas](Metaheuristicas1.md.html). * [Problemas de Satisfacción de Restricciones (CSP)](CSP.md.html). * [Espacios de Estados](EspaciosEstados.md.html). * [Planificación](Planificacion.md.html). 1. [Agentes Inteligentes y Sistemas Multiagente](agentes.md.html). * Sistemas de Implementación: [NetLogo](http://ccl.northwestern.edu/netlogo/), [Gamma](https://gama-platform.org/), [Repast](https://repast.github.io/) o [NIN](https://github.com/Deepknowledge-US/Selenitas). 3. [Agentes Basados en Utilidades: Procesos de Decisión de Markov](MDP.md.html). 4. [CSP Distribuido (DisCSP)](DisCSP.md.html). 5. [COP Distribuido (DisCOP)](DisCOP.md.html). 6. [Teoría de Juegos I: Juegos No Cooperativos](TeoriaJuegosNoCoop.md.html). 7. [Teoría de Juegos II: Juegos Cooperativos](TeoriaJuegosCoop.md.html). 8. [Aprendizaje](aprendizaje.md.html). 8. Temas Libres (ver **[Instrucciones](./svrai.md.html#evaluaci%C3%B3n/sobrelostemaslibres)**): 1. Comunicación (**Gabriel Gutiérrez**). 1. Deep-QLearning Multiagente (**Adrián Roldán**). 1. Agentes sociales (**Francisco J. Gañán** y **Juan A. Sánchez**). 1. Modelo BDI (**Elvin Reyes**). 4. Negociación (**Álvaro Molina**). 5. Subastas (**Víctor M. Quintana**). 6. Coordinación y aplicación a robótica (**Joaquín Borrego** y **Marco Montes**). 7. Argumentación (**Rafael Genao**). 8. Reputación (**José A. Rodríguez**). 9. Planificación. 1. Agentes Lógicos: Lógica Modal, Lógica Temporal (**Víctor Ramos**). 10. MAS y IoT. 11. Plataformas: NIN, NetLogo, GAMA,... 14. Aplicaciones: robótica, organización industrial,... 14. SMA y Videojuegos (**Claudio Bustamante**). 15. ... Otros... !!!Def:Recursos del Curso * [Algoritmos implementados](./modelos.md.html). * [Ejercicios por temas](./ejercicios.md.html). !!!note:NetLogo ![](img/netlogo.png align="right" width="120px") Para conocer los fundamentos de NetLogo: * [Transparencias de clase](../MCVA/slides/NetLogo.pptx) (están pensadas como explicación en clase). * [Curso introductorio de NetLogo](https://www.cs.us.es/~fsancho/?p=netlogo). * [NetLogo 6.0 QuickGuide](http://luis.izqui.org/resources/NetLogo-6-0-QuickGuide.pdf). * [Documentación Oficial](http://ccl.northwestern.edu/netlogo/docs/). # Evaluación La calificación completa de este módulo consta de dos partes: 1. Para superar el módulo será necesaria la realización individual de varios de los algoritmos que se verán a lo largo de los diversos temas que se proponen. Esta labor dará lugar a una nota de hasta 5 puntos (la variación dependerá de la participación en clase y la calidad y cantidad de soluciones aportadas). 2. Se pueden conseguir hasta 5 puntos extra por medio de la preparación y exposición de los Temas Libres del curso (con comunicación previa acordada con el profesor). ## Sobre Los Temas Libres * Un alumno o, a lo sumo, un grupo de 2 alumnos, debe **elegir uno de los temas propuestos** (o proponer un tema alternativo, que debe ser aprobado por el profesor). * Debe preparar una **exposición del tema como si fuera una clase** y presentar un documento adjunto con el contenido (que se pondrá a disposición del resto de compañeros). El tema puede llevar asociado modelos de demostración, ejercicios, etc. * Por ello, ha de tenerse presente que tenga un contenido apropiado como clase, que se pueda seguir sin grandes saltos entre temas, y que no dependa excesivamente de otros fundamentos no vistos. El objetivo **no es un documento técnico de investigación**, sino destacar las líneas fundamentales para entender la temática. También se pueden dejar partes como lecturas adicionales para el resto de alumnos y trabajos/ejercicios por completar. * Deben ir **referencias** adecuadas para que quien lo desee pueda profundizar en el tema. * Se dispondrá de **40min (estrictamente)** para la exposición pública, por lo que se esperan no menos de 35min de exposición (no es bueno pasarse, pero tampoco quedarse corto, así que se aconseja haber hecho alguna prueba previa). De esta forma, se planifican 3 exposiciones en cada clase. * El material debe ser, preferentemente, **preparado en Markdown**. Por ejemplo, el curso entero actual está montado usando **[Markdeep](https://casual-effects.com/markdeep/)**, que añade ciertas funcionalidades al uso habitual de Markdown estándar (por ejemplo, la inclusión de fórmulas matemáticas en Latex, referencias, etc.) por medio de la inclusión de una pequeña librería Javascript y un CSS que puede funcionar en local. * Todo el material desarrollado debe ser enviado al profesor de la asignatura un tiempo prudente antes de su exposición, para poder hacer una **valoración previa** (con tiempo para corregir algunos puntos si fuera necesario). * Si el seguimiento del tema requisiese alguna instalación adicional de software, sería conveniente indicarlo con antelación (y publicar un pequeño manual/instrucciones su fuera necesario) para que los compañeros pueda venir preparados a la exposición. * El objetivo es disponer de un **libro online de introducción a Sistemas Multiagente y Aplicaciones** (de autoría conjunta por los miembros del curso que colaboren), por lo que no caigais en plagio. El contenido no se espera novedoso (la forma de explicarlo y la aproximación, sí), por lo que todas las fuentes deben ser referenciadas. # Calendario El siguiente calendario se actualizará cada semana para dejar claro qué contenido será el objetivo de la semana siguiente. 19 Octubre 2021: Sesión 0: Presentación 26 Octubre 2021: Sesión 1: Fundamentos 2 Noviembre 2021: Sesión 2: Agentes 9 Noviembre 2021: Sesión 3: Procesos de Decisión de Markov - [Transparencias](../md-slides/ABUSVRAISlides.md.html) 16 Noviembre 2021: Sesión 4: Implementaciones MDP - [Modelos del Curso](./modelos.md.html) 23 Noviembre 2021: Sesión 5: DisCSP I - [Transparencias CSP](../md-slides/CSP_SVRAI.md.html) - [Transparencias DisCSP](../md-slides/disCSP_SVRAI.md.html) - ABT - [Modelos del Curso](./modelos.md.html) 30 Noviembre 2021: Sesión 6: DisCSP II - [Transparencias CSP](../md-slides/CSP_SVRAI.md.html) - [Transparencias DisCSP](../md-slides/disCSP_SVRAI.md.html) - AWCS - [Modelos del Curso](./modelos.md.html) 7 Diciembre 2021: Sesión 7: -> 10 de Diciembre 10 Diciembre 2021: Sesión 7: DisCOP - DisCOP 14 Diciembre 2021: Sesión 8: Teoría de Juegos I - Teoría de Juegos No Cooperativos. 21 Diciembre 2021: Sesión 9: Teoría de Juegos II - Teoría de Juegos Cooperativos. (28 Diciembre 2021): Vacaciones Navidad (4 Enero 2022): Vacaciones Navidad 11 Enero 2022: Sesión 10: Aprendizaje 18 Enero 2022: Sesión 11: Exposiciones 1 - Agentes Sociales (**F.J. Gañán** y **J.A. Sánchez**). - Modelo BDI (**E. Reyes**). 25 Enero 2022: Sesión 12: Exposiciones 2 - Comunicación (**G. Gutiérrez**). - Subastas (**V.M. Quintana**). - Reputación (**J.A. Rodríguez**). - Negociación (**A. Molina**). 1 Febrero 2022: Sesión 13: Exposiciones 3 - Deep-QLearning (**A. Roldán**). - Coordinación y aplicación a Robótica (**J. Borrego** y **M. Montes**). 8 Febrero 2022: Sesión 14: Exposiciones 4 - Agentes Lógicos (**V. Ramos**). - Argumentación (**R. Genao**). - SMA y Videojuegos (**C. Bustamante**).