Story Transcript
Comunicación entre agentes
Sistemas multiagente (MAS)
Sistema formado por un conjunto de componentes (semi-)autónomos que poseen las siguientes características:
Cada agente no tiene información completa ni la capacidad para resolver el problema. Tienen puntos de vista limitados. No hay un sistema de control global. Los datos están descentralizados. Computación asíncrona.
1
Problemática en MAS
Descomposición del problema Comunicación entre agentes Coherencia en las actuaciones Representación del conocimiento de otros agentes Coordinación de acciones Gestionar el uso de recursos Evitar comportamientos globales no deseados Diseño de MAS: metodología y desarrollo
Comunicación Comunicar (l. comunicare) 1. 2. 3.
4.
Hacer a otro partícipe de lo que uno tiene Descubrir,manifestar, hacer saber a alguno una cosa Conversar, tratar con alguno de palabra o por escrito Consultar, conferir con otros un asunto, tomando su parecer
2
Comunicación entre agentes
Basada en la teoría de los actos del habla (“speech acts”)
Locución “Ilocución” “Perlocución”
“Performative”:
“ilocución” de una clase de expresiones. Ej: promise, report, tell, request, demand...
Clasificación de las “ilocuciones”
Asertivas (informar) Directivas (pedir y preguntar) Comisivas (prometer) Permisivas, prohibitivas y declarativas (causan eventos) Expresivas (emociones y evaluaciones)
3
Niveles en la comunicación
Inferior: método de interconexión Medio: formato (sintaxis) de la información Superior: significado (semántica) de la información
Mecanismo de transporte
Los mensajes deben poder ser:
Planificables o servidos por eventos Síncronos o asíncronos Direciones físicas o por rol Unicast / multicast / broadcast
Implementaciones
CORBA RMI DCOM
4
Lenguaje de comunicación
Debe tener semántica bien definida Semántica formal Implementaciones
KQML FIPA ACL Basada en XML
Protocolos de comunicación
Representan los patrones que modelan las posibles comunicaciones Los participantes en la conversación deben concer el protocolo Definido formalmente Implemetaciones
FIPA ACL Pre- y post- condiciones (Labrou & Finin)
5
Ontologías
Problemática
Diferentes términos para un mismo concepto El mismo término para diferentes conceptos Diferentes sistemas de clases
Ontología común para representar el conocimiento de distintos universos de discurso Implementaciones
OIL Ontolingua KIF RDF / Esquemas XML / DTD
FIPA ACL www.fipa.org
6
Servicio de transporte (I)
es capaz de enviar un mensaje, codificarlo para su transmisión como una secuencia de bytes. En el caso más habitual, el servicio es
de confianza (los mensajes bien formados llegan a su destino) fiable (el mensaje se recibe tal y como se envía) ordenado
Un agente tiene la opción de decidir si usa procesamiento síncrono o asíncrono Los parámetros del acto de envío de mensajes, como un plazo máximo si no hay respuesta, no se codifican en el nivel de mensaje, pero son parte del interfaz proporcionado por el servicio de envío de mensajes.
Servicio de transporte (y II)
El servicio de envío de mensajes detecta condiciones de error, como mensaje mal formado, no-enviable, agente no alcanzable, etc... Un agente tendrá un nombre tal que permita al servicio de envío de mensajes remitir el mensaje a la dirección correcta. El servicio de envío de mensajes debe ser capaz de determinar el mecanismo de transporte correcto (TCP/IP, SMTP, HTTP, etc...) y permitir cambios en la ubicación del agente si es necesario.
7
Objetivos de los actos de habla
Completitud: cubrir un amplio rango de situaciones de comunicación Simplicidad: no sobredimensionar el diseño de agentes simples Concisión: minimizar la redundancia y la ambigüedad para facilitar a los agentes la elección del acto comunicativo que deben emplear
Requerimiento 1:
Los agentes deben enviar un mensaje not-understood si reciben un mensaje que no reconocen o cuyo contenido no son capaces de procesar. Un agente debe estar preparado para recibir y manejar adecuadamente un mensaje not-understood de otros agentes
8
Requerimiento 2:
Un agente ACL puede escoger implementar cualquier subconjunto de tipos de mensajes y protocolos predefinidos. La implementación de estos mensajes debe ser correcta respecto a la definición semántica de los actos referenciados.
Requerimiento 3:
Un agente ACL que utilice actos comunicativos cuyos nombres están definidos en esta especificación, debe implementarlos correctamente de acuerdo a su definición.
9
Requerimiento 4:
Los agentes pueden usar actos comunicativos con otros nombres, no definidos en el presente documento, y son responsables de asegurarse de que el agente receptor comprende el significado del acto. Sin embargo, los agentes no deben definir nuevos actos con un significado que coincida con alguno de los actos estándares predefinidos.
Requerimiento 5:
Un agente ACL debe ser capaz de generar mensajes sintácticamente bien formados en la forma de transporte que corresponde al mensaje que desea enviar. De la misma forma, debe ser capaz de traducir una secuencia de caracteres que esté bien formada en la sintaxis del mensaje correspondiente.
10
Modelo de comunicaciones Agente iniciador
Cualquier agente puede desempeñar el rol de iniciador en un momento determinado
Agente receptor
Communicative Act Tipo Emisor Receptor Contenido Responder con En respuesta a Inf. transporte Lenguaje Ontología Protocolo Conversación
query | request | inform | suscribe | ... :sender :receiver :content :reply-with :in-reply-to :envelope :language :ontology :protocol :conversatiod-id
Ejemplo de mensaje FIPA (request :sender an-agent :receiver df-agent :content (action an-agent (search (:df-agent-description (:services (:service-type email))))) :language SL0 :ontology fipa-agent-management :protocol FIPA-request )
11
Tipos de mensaje Acceptproposal
Disconfirm
Notunderstood
Reject-proposal
Agree
Faliure
Propose
Request
Cancel
Inform
Query-if
Request-when
Cfp
Inform-if
Query-ref
Requestwhenever
Confirm
Inform-ref
Refuse
Suscribe
Protocolos FIPA-ACL
Terminología:
Protocolo: Patrón fijos de intercambios de mensajes Conversación: una instancia particular de uno de estos diálogos
Los agentes deben conocer en todo momento qué protocolo se está utilizando
12
FIPA-query
se emplea para solicitar a un agente que realice una acción de tipo inform dos tipos:
query-if query-ref
FIPA-request
permite a un agente solicitar que otro agente realice una acción. El receptor debe realizarla o responder que no puede
13
FIPArequestwhen
análogo a FIPArequest-when el receptor debe esperar a que se cumpla una precondición para responder
FIPAcontractnet
un agente desea que se realice una acción hay varios candidatos se desea minimizar una función que caracteriza la tarea (precio)
14
FIPA-iteratedcontract-net
contract-net con varias rondas flujo general
se inicia con una cfp cada parcitipante emite su oferta el iniciador puede aceptar una rechazarlas todas emitir un cfp revisada
FIPAenglishauction
método de subasta a la alza cuando se emite una oferta, el iniciador genera un cfp con el nuevo precio
15
FIPAdutchauction
método de subasta a la baja suele haber un precio mínimo por debajo del cual no se realiza la venta
FIPAbrokering
intermediación entre agentes el broker envía la petición a un conjunto de agentes el broker proporciona las respuestas
16
FIPArecruiting
análogo a FIPAbrokering el broker envía la petición a un conjunto de agentes los agentes son quienes envían la respuesta al iniciador
FIPA-suscribe
el iniciador solicita ser avisado cada vez que se cumpla la condición inidicada en el mensaje
17
FIPA-propose
el emisor propone a los participantes la realización de una acción habitualmente, sigue la realización de la acción y la notificación del estado
KQML www.cs.umbc.edu/kqml
18
Generalidades
Define la comunicación a cuatro niveles:
transporte: cómo se envían y reciben mensajes lenguaje: qué significa cada mensaje política: cómo se estructuran las conversaciones arquitectura: cómo conectar los sistemas
Es un lenguaje para comunicar actitudes sobre la información Es indiferente al formato de la información en sí misma
Lenguaje KQML
Nivel de contenido
Nivel de comunicación
incorpora el contenido en la representación empleada por las aplicaciones es ignorado por KQML codifica las características del mensaje para niveles inferiores (p.ej. emisor y receptor)
Nivel de mensaje
identifica el acto de habla adecuado incluye información para poder interpretar el mensaje (p.qj. lenguaje y ontología)
19
Modelo de comunicaciones Agente iniciador
Cualquier agente puede desempeñar el rol de iniciador en un momento determinado
Agente receptor
Communicative Act Tipo Emisor Receptor Contenido Responder con En respuesta a Inf. transporte Lenguaje Ontología Protocolo Conversación
query | request | inform | suscribe | ... :sender :receiver :content :reply-with :in-reply-to :envelope :language :ontology :protocol :conversatiod-id
Ejemplo de mensaje KQML (tell :sender agent1 :receiver agent2 :in-reply-to id1 :language KIF :ontology blocks-world :content (and (block A) (block B) (on A B)) )
20
Parámetros (identificación) :sender :receiver
Indican el emisor y el receptor “reales” del mensaje
Parámetros (conversación) :reply-with :in-reply-to
controlan el flujo de la comunicación :reply-with nil Æ no se espera respuesta :reply-with t Æ se requiere una respuesta :reply-with exp
se requiere una respuesta debe contener :in-reply-to exp
21
Parámetros (mensaje) :content :language :ontology
establecen las características del mensaje concreto content: objeto de la ejecutiva language: codificación del mensaje ontology: reglas de validez del mensaje
Clasificación de las “performatives” información
tell, deny, untell
base de datos
insert, delete, delete-one, delete-all
respuesta
error, sorry
consultas básicas
evaluate, reply, ask-if, ask-about, ask-one, ask-all, sorry
multirespuesta stream-about, stream-all, eos, sorry actuación
achieve, unachieve
generación
standby, ready, next, rest, discard, generator
habilidades
advertise
notificación
suscribe, monitor
red
register, unregister, forward, broadcast, pipe, break, transport-address
servicio
broker-one, broker-all, recommend-one, recommendall, recruit-one, recruit-all
22
P. información (básicas)
tell deny untell
(tell :sender agent1 :receiver agent2 :language KIF :ontology blocks-world :content (and (block A) (block B) (on A B)) )
P. bases de datos
insert delete delete-one delete-all
23
P. respuestas
error sorry
P. consultas básicas
evaluate reply ask-if ask-about ask-one ask-all sorry
24
P. multi-respuesta
stream-about sorry stream-all (stream-all eos
:sender AgentA :receiver AgentB :reply-with id1 :language Prolog :ontology Blocks-World :content “on(X,Y)” )
P. actuación (básicas)
achieve unachieve (achieve :sender
AgentA
:receiver
AgentB
:language KIF :ontology motors :reply-with q1 :content (= (val (torque motor1) (sim-time 5 )) (scalar 2 kgf))))
25
P. generación
standby ready next rest discard generator
1. 2. 3. 4. 5. 6. 7. 8.
–> standby ready next tell next tell discard
P. def. habilidades
advertise (advertise :sender Agent2 :receiver Agent1 :language KQML :ontology kqml-ontology :content (ask-all :sender Agent1 :receiver Agent2 :in-reply-to id1 :language Prolog :ontology Blocks-World :content “(On X,Y))”))
26
P. notificación
suscribe monitor
(suscribe :sender AgentA :receiver AgentB :reply-with s1 :language KQML :ontology K10 :content (stream-about :language KIF :ontology motors :content motor1))
P. red
register (forward Agent1 unregister:from :to Agent2 forward :sender Agent1 :receiver Agent3 broadcast :language KQML :ontology kqml-ontology :content (tell pipe :sender Agent1 break :receiver Agent2 :language KIF transport-address :ontology Blocks-World
B) (On A B)))):content (AND (Block A) (Block
27
P. servicio
broker-one broker-all recommend-one recommend-all recruit-one recruit-all
KIF www.cs.umbc.edu/kse/kif
28
Lenguajes de contenido
Lenguaje natural
Implícito en procedimientos
Ambiguo Difícil de procesar para máquinas Difícil de entender y de procesar
Declarado en un lenguaje formal
Entendible, preciso Poco eficiente
KIF
KIF: Knowledge Interchange Format KIF no es un lenguaje para…
la interacción con personas la representación interna del conocimiento
KIF es un lenguaje para el intercambio de conocimiento entre computadoras
29
Características de KIF
Esenciales
Semántica declarativa Completo Permite representar meta-conocimiento
Optimizaciones
Capacidad de ser traducido Legibilidad Usabilidad
Representación del conocimiento
KIF emplea una base de conocimiento (KB) Es un conjunto (no secuencia) finito de fórmulas
Términos Sentencias Reglas Definiciones
Æ Æ Æ Æ
objetos del mundo hechos sobre el mundo pasos de inferencia declaraciones categóricas y axiomas
30
Términos
variables símbolos de objeto símbolos de función símbolos de relación términos funcionales listas de términos (listof … ) conjuntos de términos (setof … )
anotaciones (quote … ) términos lógicos (if … (cond … términos cuantificados (the … (setofall … (kappa … (lambda …
Sentencias
Constantes lógicas ecuaciones (= … desigualdades (/= … sentencias relacionales sentencias lógicas not and or => > … (