33
1 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.

Sistemas multiagente (MAS) - upv.esF3n%20entre%20agentes.pdf · 3 Comunicación entre agentes Basada en la teoría de los actos del habla (“speech acts”) Locución “Ilocución”

Embed Size (px)

Citation preview

1

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 nila 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.

2

Problemática en MASDescomposición del problemaComunicación entre agentesCoherencia en las actuacionesRepresentación del conocimiento de otros agentesCoordinación de accionesGestionar el uso de recursosEvitar comportamientos globales no deseadosDiseño de MAS: metodología y desarrollo

ComunicaciónComunicar (l. comunicare)

1. Hacer a otro partícipe de lo que uno tiene2. Descubrir,manifestar, hacer saber a alguno

una cosa3. Conversar, tratar con alguno de palabra o

por escrito4. Consultar, conferir con otros un asunto,

tomando su parecer

3

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)

4

Niveles en la comunicaciónInferior: método de interconexiónMedio: formato (sintaxis) de la informaciónSuperior: significado (semántica) de la información

Mecanismo de transporteLos mensajes deben poder ser:

Planificables o servidos por eventosSíncronos o asíncronosDireciones físicas o por rolUnicast / multicast / broadcast

ImplementacionesCORBARMIDCOM

5

Lenguaje de comunicaciónDebe tener semántica bien definidaSemántica formalImplementaciones

KQMLFIPA ACLBasada en XML

Protocolos de comunicaciónRepresentan los patrones que modelan las posibles comunicacionesLos participantes en la conversación deben concer el protocoloDefinido formalmenteImplemetaciones

FIPA ACLPre- y post- condiciones (Labrou & Finin)

6

OntologíasProblemática

Diferentes términos para un mismo conceptoEl mismo término para diferentes conceptosDiferentes sistemas de clases

Ontología común para representar el conocimiento de distintos universos de discursoImplementaciones

OILOntolinguaKIFRDF / Esquemas XML / DTD

FIPA ACL

www.fipa.org

7

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íncronoLos 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.

8

Objetivos de los actos de habla

Completitud: cubrir un amplio rango de situaciones de comunicaciónSimplicidad: no sobredimensionar el diseño de agentes simplesConcisió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

9

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.

10

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.

11

Modelo de comunicacionesAgente iniciador

Agente receptor

Communicative ActTipo query | request

| inform | suscribe | ...Emisor :senderReceptor :receiverContenido :contentResponder con :reply-withEn respuesta a :in-reply-toInf. transporte :envelopeLenguaje :languageOntología :ontologyProtocolo :protocolConversación :conversatiod-id

Cualquier agente puede desempeñar el rol de

iniciador en un momento determinado

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

)

12

Tipos de mensaje

SuscribeRefuseInform-refConfirm

Request-whenever

Query-refInform-ifCfp

Request-whenQuery-ifInformCancel

RequestProposeFaliureAgree

Reject-proposalNot-understood

DisconfirmAccept-proposal

Protocolos FIPA-ACLTerminología:

Protocolo: Patrón fijos de intercambios de mensajesConversación: una instancia particular de uno de estos diálogos

Los agentes deben conocer en todo momento qué protocolo se está utilizando

13

FIPA-query

se emplea para solicitar a un agente que realice una acción de tipo informdos tipos:

query-ifquery-ref

FIPA-request

permite a un agente solicitar que otro agente realice una acción.El receptor debe realizarla o responder que no puede

14

FIPA-request-when

análogo a FIPA-request-whenel receptor debe esperar a que se cumpla una precondición para responder

FIPA-contract-net

un agente desea que se realice una acciónhay varios candidatosse desea minimizar una función que caracteriza la tarea (precio)

15

FIPA-iterated-contract-net

contract-net con varias rondasflujo general

se inicia con una cfpcada parcitipante emite su ofertael iniciador puede

aceptar unarechazarlas todasemitir un cfp revisada

FIPA-english-auction

método de subasta a la alzacuando se emite una oferta, el iniciador genera un cfp con el nuevo precio

16

FIPA-dutch-auction

método de subasta a la bajasuele haber un precio mínimo por debajo del cual no se realiza la venta

FIPA-brokering

intermediación entre agentesel broker envía la petición a un conjunto de agentesel brokerproporciona las respuestas

17

FIPA-recruiting

análogo a FIPA-brokeringel broker envía la petición a un conjunto de agenteslos 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

18

FIPA-propose

el emisor propone a los participantes la realización de una acciónhabitualmente, sigue la realización de la acción y la notificación del estado

KQML

www.cs.umbc.edu/kqml

19

GeneralidadesDefine la comunicación a cuatro niveles:

transporte: cómo se envían y reciben mensajeslenguaje: qué significa cada mensajepolítica: cómo se estructuran las conversacionesarquitectura: cómo conectar los sistemas

Es un lenguaje para comunicar actitudes sobre la informaciónEs indiferente al formato de la información en sí misma

Lenguaje KQMLNivel de contenido

incorpora el contenido en la representación empleada por las aplicacioneses ignorado por KQML

Nivel de comunicacióncodifica las características del mensaje para niveles inferiores (p.ej. emisor y receptor)

Nivel de mensajeidentifica el acto de habla adecuadoincluye información para poder interpretar el mensaje (p.qj. lenguaje y ontología)

20

Modelo de comunicacionesAgente iniciador

Agente receptor

Communicative ActTipo query | request

| inform | suscribe | ...Emisor :senderReceptor :receiverContenido :contentResponder con :reply-withEn respuesta a :in-reply-toInf. transporte :envelopeLenguaje :languageOntología :ontologyProtocolo :protocolConversación :conversatiod-id

Cualquier agente puede desempeñar el rol de

iniciador en un momento determinado

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)))

21

Parámetros (identificación)

Indican el emisor y el receptor “reales” del mensaje

:sender <word>:receiver <word>

Parámetros (conversación)

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 respuestadebe contener :in-reply-to exp

:reply-with <expression>:in-reply-to <expression>

22

Parámetros (mensaje)

establecen las características del mensaje concretocontent: objeto de la ejecutivalanguage: codificación del mensajeontology: reglas de validez del mensaje

:content <expression>:language <word>:ontology <word>

Clasificación de las “performatives”

broker-one, broker-all, recommend-one, recommend-all, recruit-one, recruit-allservicio

register, unregister, forward, broadcast, pipe, break, transport-addressred

suscribe, monitornotificación

advertisehabilidades

standby, ready, next, rest, discard, generatorgeneración

achieve, unachieveactuación

stream-about, stream-all, eos, sorrymultirespuesta

evaluate, reply, ask-if, ask-about, ask-one, ask-all, sorry

consultas básicas

error, sorryrespuesta

insert, delete, delete-one, delete-allbase de datos

tell, deny, untellinformación

23

P. información (básicas)telldenyuntell

(tell:sender agent1:receiver agent2:language KIF:ontology blocks-world:content

(and (block A)(block B)(on A B))

)

P. bases de datosinsertdeletedelete-onedelete-all

24

P. respuestaserrorsorry

P. consultas básicasevaluatereplyask-ifask-aboutask-oneask-allsorry

25

P. multi-respuestastream-aboutsorrystream-alleos (stream-all

:sender AgentA:receiver AgentB:reply-with id1:language Prolog:ontology Blocks-World:content “on(X,Y)” )

P. actuación (básicas)achieveunachieve

(achieve

:sender AgentA

:receiver AgentB

:language KIF

:ontology motors

:reply-with q1

:content (= (val (torque motor1) (sim-time 5 )) (scalar 2 kgf))))

26

P. generaciónstandbyreadynextrestdiscardgenerator

1. –> standby2. ready <–3. –>next4. tell <–5. –>next6. tell <–7. ...8. –>discard

P. def. habilidadesadvertise

(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))”))

27

P. notificaciónsuscribemonitor

(suscribe:sender AgentA:receiver AgentB:reply-with s1:language KQML:ontology K10:content (stream-about

:language KIF:ontology motors:content motor1))

P. redregisterunregisterforwardbroadcastpipebreaktransport-address

(forward:from Agent1:to Agent2:sender Agent1:receiver Agent3:language KQML:ontology kqml-ontology:content (tell

:sender Agent1:receiver Agent2:language KIF:ontology Blocks-World:content (AND (Block A) (BlockB) (On A B))))

28

P. serviciobroker-onebroker-allrecommend-onerecommend-allrecruit-onerecruit-all

KIF

www.cs.umbc.edu/kse/kif

29

Lenguajes de contenidoLenguaje natural

AmbiguoDifícil de procesar para máquinas

Implícito en procedimientosDifícil de entender y de procesar

Declarado en un lenguaje formalEntendible, precisoPoco eficiente

KIFKIF: Knowledge Interchange FormatKIF no es un lenguaje para…

la interacción con personasla representación interna del conocimiento

KIF es un lenguaje para el intercambio de conocimiento

entre computadoras

30

Características de KIFEsenciales

Semántica declarativaCompletoPermite representar meta-conocimiento

OptimizacionesCapacidad de ser traducidoLegibilidadUsabilidad

Representación del conocimiento

KIF emplea una base de conocimiento (KB)Es un conjunto (no secuencia) finito de fórmulas

Términos objetos del mundoSentencias hechos sobre el mundoReglas pasos de inferenciaDefiniciones declaraciones categóricas

y axiomas

31

Términosvariablessímbolos de objetosímbolos de funciónsímbolos de relacióntérminos funcionaleslistas de términos(listof … )

conjuntos de términos(setof … )

anotaciones(quote … )

términos lógicos(if …(cond …

términos cuantificados(the … (setofall … (kappa …(lambda …

SentenciasConstantes lógicasecuaciones (= … desigualdades (/= …sentencias relacionalessentencias lógicasnot and or=> <= <=>

sentencias cuantificadas(forall … (exists …

32

ReglasKIF permite la definición de reglas de inferencia hacia delante y hacia atrás(=>> … (<<= …

cuando las premisas de una regla son sentencias se denominan prerrequisitossi las premisas son de la forma

(consis φ)se denominan justificaciones.

DefinicionesCompletas: expresión que define el comportamiento completamente

objeto (defobject …

función (deffunction …

relación (defrelation …

Parciales: restringen el concepto sin proporcionar necesariamente una equivalencia completa

conservativasson restricción

33

Referencias de interés

ReferenciasSistemas multiagente

G. Weiss (ed.). Multiagent Systems. MIT Press. 2000

FIPAhttp://www.fipa.org

KQMLhttp:// www.cs.stanford.edu/kqml

KIFhttp:// logic.stanford.edu/kif

Ontologíashttp:// www.ontoknowledge.org