Inteligencia Artificial Distribuida Sesión 1: Introducción a la IAD Marin Lujak marin.lujak@urjc.es Universidad Rey Juan Carlos Inteligencia Artificial Distribuida 1 Programa de contenidos 1. Introducción a la Inteligencia Artificial Distribuida 2. Agentes Inteligentes y los Sistemas Multiagente 3. Técnicas de coordinación en la IAD. 4. Aplicaciones de la IAD a los problemas en el mundo real. Inteligencia Artificial Distribuida 2 ¿Qué es la IAD? La IAD es una subrama de la IA que se centra en la resolución de problemas mediante aplicación tanto de técnicas de la Inteligencia Artificial como de múltiples solucionadores de sistemas. Se involucran además mínimo dos agentes que funcionarían como solucionadores de problemas, estos agentes serían autónomos o semi-autónomos, tendrían un cierto conocimiento del problema y serían razonables. Inteligencia Artificial Distribuida 3 Inteligencia Artificial Distribuida (IAD) aparece en la década de los 80's como una nueva rama de la IA, estudia sistemas inteligentes formados por un conjunto de varios agentes, intenta resolver problemas donde una conducta colectiva es más eficiente que una conducta individual. Inteligencia Artificial Distribuida 4 ¿Por qué IAD? Cuando propuestas centralizadas para solucionar problemas mediante la IA se muestran insuficientes ante la aparición de múltiples agentes en un entorno social, En los problemas esencialmente distribuidos, En la integración de los sistemas de IA para mejorar la capacidad mediante la distribución del conocimiento. Inteligencia Artificial Distribuida 5 ¿Por qué IAD? Grandes desafíos para desarrolladores de software: Delegación – actuar de modo independiente. Inteligencia – actuar del modo que represente nuestros mejores intereses mientras se interactúa con otros humanos o sistemas. Sistemas que actúen de un modo efectivo y eficiente en nuestro nombre. Sistemas con habilidad de cooperación y capaces de alcanzar consensos con otros sistemas. Sistemas adaptables a los cambios en el ambiente. Inteligencia Artificial Distribuida 6 Ventajas de la IAD Incremento de la flexibilidad: Se permite la adición de nuevos agentes. Mejor seguridad y efectividad: Los agentes se pueden especializar en una tarea específica. Mejor tiempo de respuesta: Los agentes pueden resolver sus problemas particulares al mismo tiempo. Reducción de la complejidad: Una tarea puede ser descompuesta en varias sub-tareas. Reutilización: La solución presentada por un agente en un sistema puede ser incorporada a otro. Inteligencia Artificial Distribuida 7 Usos de la IAD Servicios de información en Provisión de servicios bajo Internet Recuperación y extracción de la información Comercio Electrónico Personalización de servicios Mercado de servicios electrónico Negociación Equipos móviles y PCs domésticos Redes públicas de telecomunicaciones Inteligencia Artificial Distribuida demanda Descentralización del control y gestión de redes Flexibilidad de la distribución Gestión de procesos (workflow) Simulación de sistemas dinámicos Juegos Robótica Delegación de tareas 8 Tipos de sistemas de la IAD 1. Solución de Problemas Distribuidos DPS el problema se divide entre los nodos que conforman el conjunto de agentes, agentes cooperan y comparten conocimiento sobre el problema y la solución desarrollada, todos los agentes tienen conocimiento homogéneo y completo del problema así como de la solución, están interconectados y el desarrollo de la solución se obtiene a partir de una secuencia de operaciones. Inteligencia Artificial Distribuida 9 Tipos de sistemas de la IAD 2. Sistemas MultiAgente la conducta inteligente de agentes autónomos. Estos agentes hacen parte de una colección y pueden coordinar su conocimiento, objetivos, habilidades y planes juntamente para tomar una acción o resolver una meta global, pueden tener conocimiento parcial sobre el problema y las soluciones. En estos sistemas debe haber un proceso de racionalización para la coordinación del conjunto de agentes. Inteligencia Artificial Distribuida 10 1. Agentes Software ¿Qué es un agente? RAE 1. adj. Que obra o tiene virtud de obrar. 2. adj. Gram. Dicho de una palabra o de una expresión: que designa a la persona, animal o cosa que realiza la acción del verbo. U. m. c. s. m. 3. m. Persona o cosa que produce un efecto. 4. m. Persona que obra con poder de otra. Inteligencia Artificial Distribuida 11 1. Agentes Software Un agente: percibe Percibe el entorno sensores Actúa en el entorno efectores Asigna percepciones a acciones Mide lo “bien” que lo ha hecho Entorno actúa Inteligencia Artificial Distribuida 12 1. Agentes Software Tipos de agentes: Naturales Cuerpos biológicos Entorno Naturaleza Medida de rendimiento: supervivencia, reproducción, etc. Inteligencia Artificial Distribuida 13 1. Agentes Software Tipos de agentes: Artificiales Hardware (robots): Actúan directamente en el entorno físico Sensores: cámaras, odómetros, etc. Efectores: ruedas, brazos mecánicos, … Inteligencia Artificial Distribuida 14 1. Agentes Software Tipos de agentes: Artificiales Software (softbots): Entornos virtuales (e.g. Internet) Sensores y efectores: dependientes del dominio Inteligencia Artificial Distribuida 15 1. Agentes Software Programa de agente: Determina el comportamiento del agente memory ← perceive(memory, percept) action ← action-selection(memory, performance-measure) memory ← act(memory, action) Arquitectura del agente: Qué componentes forman al agente Estructura de los programas de agente Componente de percepción Componente de selección de acciones Componente de acción Inteligencia Artificial Distribuida 16 1. Agentes Software Orígenes de los agentes La computación siempre ha buscado: 1. 2. 3. 4. Eficiencia: reducción del coste computacional Comunicación: entre distintos sistemas (ej. Redes) Inteligencia: resolución de problemas complejos delegando en las computadoras Orientación humana: uso de conceptos y metáforas antropomorfas Esto es el mundo de los agentes Inteligencia Artificial Distribuida 17 1. Agentes Software Área relacionadas con los agentes (Teoría) • • • • • • • • • Programación OO Sistemas distribuidos Economía Sociología Psicología IA e IA distribuida Teoría de la decisión Biología … Inteligencia Artificial Distribuida 18 1. Agentes Software Área relacionadas con los agentes (Práctica) • • • • • • • • • • • Internet Sistemas de Información IA Sistemas Cooperativos E-Commerce Recuperación de Información Gestión del conocimiento Sistemas distribuidos Robótica Interfaces de usuario … Inteligencia Artificial Distribuida 19 1. Agentes Software Definiciones de agente software Houston, we’ve got a problem!!! No hay definición universalmente aceptada Literatura: depende del dominio, del autor, … Terminología diversa para referirse a lo mismo Inteligencia Artificial Distribuida 20 1. Agentes Software [Franklin & Graesser, 96] But agents sound just like computer Autonomous What are programs. How are youagents? working they different? What on these the hell days? is that? Bob Inteligencia Artificial Distribuida Control structures for bla Bla, bla, autonomous agents Alice 21 1. Agentes Software The MuBot agent “The term agent is used to represent two orthogonal concepts. The first is the agent's ability for autonomous execution. The second is the agent's ability to perform domain oriented reasoning” [Virhagriswaran] Inteligencia Artificial Distribuida 22 1. Agentes Software The AIMA agent [Russell & Norvig, 1995] “An agent is anything that can be viewed as perceiving its environment through sensors and acting upon that environment through effectors” Inteligencia Artificial Distribuida 23 1. Agentes Software The Maes Agent [Maes, 95] “Autonomous agents are computational systems that inhabit some complex dynamic environment, sense and act autonomously in this environment, and by doing so realize a set of goals or tasks for which they are designed” Inteligencia Artificial Distribuida 24 1. Agentes Software The KidSim Agent [Smith et al., 94] “Let us define an agent as a persistent software entity dedicated to a specific purpose. 'Persistent' distinguishes agents from subroutines; agents have their own ideas about how to accomplish tasks, their own agendas. ’Special purpose' distinguishes them from entire multifunction applications; agents are typically much smaller” Inteligencia Artificial Distribuida 25 1. Agentes Software The Hayes-Roth Agent [Hayes-Roth, 95] “Intelligent agents continuously perform three functions: perception of dynamic conditions in the environment; action to affect conditions in the environment; and reasoning to interpret perceptions, solve problems, draw inferences, and determine actions” Inteligencia Artificial Distribuida 26 1. Agentes Software The IBM Agent “Intelligent agents are software entities that carry out some set of operations on behalf of a user or another program with some degree of independence or autonomy, and in so doing, employ some knowledge or representation of the user's goals or desires” Inteligencia Artificial Distribuida 27 1. Agentes Sofware The W-J Agent [Wooldridge & Jennings, 95] “... a hardware or (more usually) software-based computer system that enjoys the following properties: · autonomy: agents operate without the direct intervention of humans or others, and have some kind of control over their actions and internal state; · social ability: agents interact with other agents (and possibly humans) via some kind of agent-communication language; · reactivity: agents perceive their environment, (which may be the physical world, a user via a graphical user interface, a collection of other agents, the INTERNET, or perhaps all of these combined), and respond in a timely fashion to changes that occur in it; · pro-activeness: agents do not simply act in response to their environment, they are able to exhibit goal-directed behavior by taking the initiative Inteligencia Artificial Distribuida 28 1. Agentes Software The IBM Agent [Coen, 94] “Software agents are programs that engage in dialogs [and] negotiate and coordinate transfer of information” Inteligencia Artificial Distribuida 29 1. Agentes Software The Brustoloni Agent [Brustoloni, 91] “Autonomous agents are systems capable of autonomous, purposeful action in the real world” Inteligencia Artificial Distribuida 30 1. Agentes Software The Franklin & Graesser Agent [Franklin & Graesser, 95] “Un agente autónomo es un sistema situado dentro de un entorno, percibe dicho entorno y actúa sobre él, a lo largo del tiempo, en busca de cumplir sus objetivos y, por tanto, para llevar a cabo lo que percibe en el futuro” Inteligencia Artificial Distribuida 31 1. Agentes Software Agentes Inteligentes Comportamiento racional Los agentes inteligentes interactúan racionalmente con su entorno Secuencia de percepciones hasta el momento actual + conocimiento a priori sobre el entorno Seleccionan la acción que les reporta mayor utilidad (individual) Racionalidad ≠ Omnisciencia Autonomía Al comienzo “sólo” la inteligencia del diseñador Un agente es más autónomo cuanto… … más experiencia tiene y más guía ésta su comportamiento … menos depende de su comportamiento a priori Agente Inteligente = Comportamiento Racional+Autonomía Inteligencia Artificial Distribuida 32 1. Agentes Software Agentes Inteligentes • Ejemplo: agentes deliberativos en el mundo de los bloques • Racionalidad: encontrar el plan más corto desde el estado actual hasta el estado deseado • Autonomía: debe adaptarse dinámicamente si el plan va mal A A B B C D E C D E Inteligencia Artificial Distribuida 33 1. Agentes Software Agentes Inteligentes Is there any difference I between see, but… agents and objects? Bob Inteligencia Artificial Distribuida Alice 34 1. Agentes Software Agentes Inteligentes vs. Objetos Objetivos: un agente puede mostrar un comportamiento proactivo Concurrencia: un agente tiene su propio thread de control Agentes autónomos vs. objetos activos Objetos Activos Controlan su estado, pero no su comportamiento Si un método es público, será ejecutado si es invocado La decisión está en el objeto que invoca (no en el invocado) Agentes Controlan su estado y su comportamiento Pueden rechazar la ejecución de una acción “Objects do it for free; agents do it for money” La decisión de realizar una acción está en el agente y está basada en sus intereses (racionalidad!!!) Inteligencia Artificial Distribuida 35 1. Agentes Software Agentes Inteligentes vs. Objetos Agentes y objetos están relacionados: En sistemas cerrados proporcionan un nivel más alto de abstracción en análisis, diseño e… implementación? En sistemas abiertos el concepto de autonomía es relevante Pero… Programamos agentes usando lenguajes de OO Inteligencia Artificial Distribuida 36 Índice 1. Agentes Software 2. Sistemas Multiagente 3. Trabajos propuestos 4. Bibliografía Inteligencia Artificial Distribuida 37 2. Sistemas Multiagente Entornos multiagente Varios agentes interactuando en el mismo entorno Las acciones de un agentes influencian las acciones del resto (utilidad individual) Autonomía: un agente NO puede controlar las acciones de los otros Racionalidad: un agente SÍ puede predecir las acciones de los otros Inteligencia Artificial Distribuida 38 2. Sistemas Multiagente Líneas de investigación Heterogeneidad: Agent communication languages (ACLs) Semántica: ontologies, service directories, matchmaking Coordinación: Alcanzar consenso resolviendo conflictos de intertés: Regular agreement mechanisms : Coalition formation, Negotiation, Trust, … Virtual Organisations, Norms, Incentive Engineering, … Hacer que la información esté disponible: MA Planning, MA Optimisation, POMDPs, … AOSE: SOC, OOP, Grid, AOP Plataformas,middleware, herramientas Metodologías AOP Interacción Humano-Computadora Avatares, agentes emocionales, … Inteligencia Artificial Distribuida 39 2. Sistemas Multiagente ¿Algo nuevo? ¿No es lo mismo que Sistemas Distribuidos/Ingeniería del SW? Sí, pero añadiendo autonomía + racionalidad Coordinación no precompilada No hay asunción de benevolencia ¿No es lo mismo que Sistemas Expertos/Inteligencia Artificial? Sí, pero añadiendo interoperatividad + sociabilidad Percepción, planificación, razonamiento, aprendizaje, … Interacciones sociales: Negociación, Compromisos, Trust ¿No es lo mismo que Economía/Teoría de Juegos? Sí, pero añadiendo computación y racionalidad limitada Inteligencia Artificial Distribuida 40 Índice 1. Agentes Software 2. Sistemas Multiagente 3. Trabajos propuestos 4. Bibliografía Inteligencia Artificial Distribuida 41 3. Trabajos propuestos Lectura + comentario crítico del artículo “Intelligent Agents: Theory and Practice” – Jennings & Wooldridge, Knowledge Engineering Review Volume 10 No 2, June 1995 (Discusión próxima clase) Aplicación usando alguna plataforma de programación y ejecución de agentes (ej. JADE, MadKIT, Zeus, …) (Trabajo fin de curso) Otras propuestas son bienvenidas… ☺ Inteligencia Artificial Distribuida 42 Bibliografía básica http://www.cs.ox.ac.uk/people/michael.wooldridge/pubs/imas/IMAS2e.html Inteligencia Artificial Distribuida 43 4. Bibliografía Franklin S.; Graesser A.: “Is It an Agent, or Just a Program?: A Taxonomy for Autonomous Agents” in Proceedings of the Workshop on Intelligent Agents III, Agent Theories, Architectures, and Languages (ATAL’96). Springer-Verlag. Págs. 21-35. Russell, S.; Norvig, P.: “Artificial Intelligence: A Modern Approach (2nd ed.)”. Prentice Hall, 2003. Chapter 2. Wooldridge, M.: “An Introduction to Multiagent Systems”, Wiley, 2002. Chapters 1 and 2. Ossowski, S.: “Coordination in Artificial Agent Societies”. Springer, 1999. Chapter 1. Inteligencia Artificial Distribuida 44