Dibujo de Vlad Guzner publicado en The New York Times Review, EEUU Sistemas multi-agente (1) Una parte de los trabajos de Inteligencia Artificial se basa en el paradigma de resolución colectiva de problemas, cuyos principios pueden resumirse como: Diseñar sistemas compuestos de programas (que llamaremos agentes) capaces de resolver problemas de manera conjunta. tópicos diversos (1) sistemas multi-agente Concebir soluciones descentralizadas a problemas de cómputo (distribución de tareas, implantación de mecanismos de interacción, de coordinación y de comunicación). 2 Sistemas multi-agente (2) Sistemas multi-agente (3) La Inteligencia Artificial Distribuida (IAD) y los Sistemas Multi-Agente (SMA) se interesan en la resolución colectiva de problemas. Se usan ambos términos para definir a esta comunidad de la IA (IAD&SMA) porque surgen de investigaciones independientes: Ambas disciplinas (IAD y SMA) se concentran en un nivel de abstracción medio: el diseño de programas y de mecanismos de interacción y de intercambio de información entre estos programas. inteligencia artificial distribuida (IAD): surge con la necesidad de paralelizar aplicaciones tradicionales de ia. Un sistema de IAD o de tipo SMA no es una red de computadoras ni tampoco es un conjunto de protocolos de red, sino más bien un conjunto de agentes. sistemas multi-agente (SMA): se ocupa de las interacciones de un conjunto de agentes inteligentes. distribución funcional de actividades, descentralización del conocimiento, modularización & especialización . descentralización de acciones, interacción, comunicación & cooperación. 3 4 Sistemas multi-agente (4) Sistemas multi-agente (5) Un agente es un programa de cómputo que se encuentra situado en un medio ambiente, y que es capaz de actuar de manera autónoma en ese ambiente con objeto de alcanzar sus objetivos (Wooldridge 2001). El medio ambiente está definido por el contexto del problema, e.g. Internet, el buzón de un usuario, una red local. • El tipo de medio ambiente en el que residen los agentes es, por lo general, dinámico y no determinista. También se le conoce como agente inteligente, agente de software. • Un agente puede modificar, a través de sus acciones, su medio ambiente de manera parcial o total. 5 6 Sistemas multi-agente (6) Sistemas multi-agente (7) Un agente actúa de manera autónoma pues él decide, por sus propios medios, las acciones que debe realizar para satisfacer sus objetivos. La autonomía es el atributo principal de un agente, y el cual lo distingue de cualquier otro programa o componente de computadora. Autonomía según el diccionario de la RAE en línea (www.rae.es): Los objetivos del agente son las tareas para las cuales fue diseñado y programado, de manera explícita o implícita. condición de quien, para ciertas cosas, no depende de nadie. tiempo máximo que puede funcionar un aparato sin repostar. autónomo sinónimo de independiente, que no depende de otro, que trabaja por cuenta propia. 7 8 Sistemas multi-agente (8) Sistemas multi-agente (9) Análisis/revisión/comparación de datos adquiridos & Toma de decisión/Selección de acción/ Definición de un plan En el área de IAD&SMA, la autonomía concierne los siguientes aspectos: Adquisición/colecta de datos del medio ambiente/dominio del problema agentes de software: independencia de la plataforma (agentes móviles). agentes físicos: movilidad, autonomía energética. Conoce usted un agente de éstos? Ejecución de decisión/ acción/plan con efectos en el ambiente o dominio del problema ambos tipos de agente: recursos o equipamiento propios, capacidad para tomar decisiones. Un agente está equipado con los dispositivos necesarios que le permiten percibir la situación de su medio ambiente (sensores), así como actuar en ese medio ambiente (efectores, activadores). Un agente autónomo tiene inmersos mecanismos propios para adquisión de datos, procesamiento y ejecución de sus acciones. 9 Sistemas multi-agente (10) 10 Sistemas multi-agente (11) Compara palabras escritas con entradas de su diccionario / Revisa concordancia de género y número entre sujeto/adjetivo/verbo. Colecta el texto escrito por el usuario en un documento de un procesador de palabras Subraya texto no reconocido como correcto / Sustituye texto El asistente de los procesadores de palabras es un agente puramente reactivo. La aplicación acepta la extensión de diccionarios o adición de reglas pero el agente en sí no tiene memoria, ni es capaz de aprender de su experiencia 11 12 Sistemas multi-agente (12) Sistemas multi-agente (13) Un sistema multi-agente es un sistema conformado por un conjunto de agentes autónomos interactuando entre sí y con el medio ambiente en el que residen, con objeto de resolver problemas conjuntamente. La resolución de un problema en conjunto no necesariamente significa que los agentes son cooperativos. Un SMA puede estar constituido de agentes que compiten entre ellos por recursos, en donde el problema global estaría definido por la asignación de recursos. Un SMA se compone de una multitud de agentes autónomos 13 14 Sistemas multi-agente (14) Sistemas multi-agente (15) Los SMA están naturalmente descentralizados lo cual significa que las acciones, esfuerzos o recursos para resolver un problema o completar una tarea se encuentran distribuidos entre los agentes. Diversas modalidades de división de acciones: sistemas especializados: los agentes tienen distintas habilidades o funciones y se complementan para lograr un objetivo común. Diversas modalidades de control: sistemas jerárquicos: uno o varios supervisores a cargo del flujo de control. sistemas redundantes: los agentes tienen las mismas habilidades o funciones y se sustituyen o relevan fácilmente para lograr un objetivo común. sistemas heterárquicos: no hay supervisores predeterminados, cualquier agente puede asumir la función de controlador o líder, de ser necesario. 15 16 Sistemas multi-agente (16) Sistemas ubicuos (1) Un área relacionada con la IAD&SMA: Ubicuo es sinónimo de omnipresente. Sistemas Ubicuos/Computación Ubicua, Computación Pervasiva, Computación dependiente del Contexto, Inteligencia Ambiental (Ubiquitous Systems/Ubiquitous Computing, Pervasive Computing, Context-aware Computing, Ambient Intelligence). La computación ubicua representa un cambio de paradigma cuyo principal ingrediente es la descentralización: múltiples procesos y múltiples dispositivos -generalmente heterogéneos- interactuando y generando datos en tiempo real. 17 Sistemas ubicuos (2) 18 Sistemas ubicuos (3) Ejemplos de sistemas ubicuos: Una casa o ambiente inteligente (smart house, ambient intelligence), que de forma invisible es capaz de reaccionar a sus habitantes, para adecuar, por ejemplo, la iluminación, el aire acondicionado, o bien para monitorizarlos y proveerles ayuda. Un ejemplo de sistema ubicuo es un sistema avanzado de tele-cuidado que comprende, por ejemplo, módulos o dispositivos a cargo de la medición de eventos o parámetros particulares, capaces de emitir una primera evaluación de la situación y de recomendar e incluso tomar acciones. Tecnologías “vestibles” (wearable) para seguimiento personalizado de la actividad de las personas. 19 20 Sistemas ubicuos (4) Sistemas multi-agente (17) Los sistemas ubicuos se apoyan también de tecnología inmersa en los espacios habitados, en la ropa, en los accesorios de uso común. Estos tópicos se estudian en el posgrado en las materias a cargo de los grupos de Robótica, y Cómputo y Procesamiento Ubicuo: Se trata de objetos cotidianos que han sido “intervenidos” con elementos para procesar y comunicar datos, que no resulten invasivos a sus usuarios. 21 Referencias Bamberg S., Benbasat A., Scarborough D., Krebs D., et Paradiso J. (2008). Gait analysis using a shoe-integrated wireless sensor system. IEEE Transactions on Information Technology in Biomedicine, 212(4):413 – 423. Liu J., Lockhart T. E., Jones M., et Martin T. (2008). Local dynamic stability assessment of motion impaired elderly using electronic textile pants. IEEE Transactions on Automation Science and Engineering, 5(4):696– 702. Woldridge M. (2001) Intelligent agent: the key concepts. MASA 2001, LNAI 2322, pp. 3-43. Springer-Verlag, Berlin. 23 • Inteligencia Artificial Distribuida y Sistemas Multi-Agente (primavera, verano). • Cómputo Paralelo (primavera). • Cómputo y Procesamiento Ubicuo (verano). • Introducción a la robótica (primavera). • Aprendizaje automático (otoño, primavera, verano). • Redes (otoño). • Sistemas Distribuidos (primavera). 22