Inteligencia Artificial Distribuida

Inteligencia Artificial Distribuida Sesión 1: Introducción a la IAD Marin Lujak [email protected] Universidad Rey Juan Carlos Inteligencia Artifici...
12 downloads 3 Views 2MB Size
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