Inteligencia Artificial Distribuida Sesión 1: Introducción a la IAD Marin Lujak
[email protected] 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