Presentation is loading. Please wait.

Presentation is loading. Please wait.

Communication in Multi-Agent Systems

Similar presentations


Presentation on theme: "Communication in Multi-Agent Systems"— Presentation transcript:

1 Communication in Multi-Agent Systems

2 Procedural Reasoning System
rational reasoning autonomy, proactiveness, reactiveness, social ability communication based on human speech prs Georgeff + Lansky 1987 Autonomie, Eigeninitiative/proaktives Verhalten, reaktives Verhalten, Sozialkompetenz/Fähigkeit zur Kooperation ^^ Wooldridge + Jennings 1995

3 Speech Act Theory type content performative verb / illucutionary force
type of action representatives, directives, commissives content propositional content / perlocutionary force sat Austin Searle 1969 Aussagen stellen eine Handlung dar

4 Communication Languages
Knowledge Query and Manipulation Language (KQML) FIPA Agent Communication Language (ACL) no communication in original AgentSpeak .send and .broadcast kqml Labrou + Finin 1994 foundation for intelligent physical agents asl Rao 1996 ia Bordini et al. 2002

5 List of KQML performatives

6 Annotations belief(arg)[source(percept)]

7 Annotations belief(arg)[source(percept)] +belief(arg);

8 Annotations belief(arg)[source(percept), source(self)]

9 Annotations belief(arg)[source(percept), source(self)] -belief(arg);

10 Annotations belief(arg)[source(percept)]

11 tell inform about something add expression to receiver’s belief base

12 tell inform about something add expression to receiver’s belief base
open(door1)[source(percept)] +open(Door)[source(percept)] <- .send(red, tell, open(Door)).

13 tell inform about something add expression to receiver’s belief base
open(door2)[source(percept)] open(door1)[source(percept)] +open(Door)[source(percept)] <- .send(red, tell, open(Door)).

14 tell inform about something add expression to receiver’s belief base
open(door2)[source(percept)] open(door1)[source(percept)] open(door2)[source(silver)] +open(Door)[source(percept)] <- .send(red, tell, open(Door)).

15 untell retract previous statement
remove expression from receiver’s belief base

16 untell retract previous statement
remove expression from receiver’s belief base open(door1)[source(percept)] open(door2)[source(silver)] +open(Door)[source(percept)] <- .send(red, tell, open(Door)). -open(Door)[source(percept)] <- .send(red, untell, open(Door)).

17 untell retract previous statement
remove expression from receiver’s belief base open(door1)[source(percept)] +open(Door)[source(percept)] <- .send(red, tell, open(Door)). -open(Door)[source(percept)] <- .send(red, untell, open(Door)).

18 achieve/unachieve directive tell other agent to do something
add intention unachieve removes intention

19 achieve .send(red, achieve, open(door1));

20 socAcc social acceptance function
agent illocutionary force propositional content message is discarded if socAcc returns false

21 KQML Plans /* ---- achieve performatives ---- */ @kqmlReceivedAchieve
+!kqml_received(KQML_Sender_Var, achieve, KQML_Content_Var, KQML_MsgId) <- .add_annot(KQML_Content_Var, source(KQML_Sender_Var), CA); !!CA. @kqmlReceivedUnAchieve[atomic] +!kqml_received(KQML_Sender_Var, unachieve, KQML_Content_Var, KQML_MsgId) <- .drop_desire(KQML_Content_Var).

22 askOne retrieve one expression from the other agent’s belief base

23 askOne retrieve one unifying expression from the other agent’s belief base (asynchronous) open(door1)[source(percept)] open(door2)[source(percept)] .send(red, askOne, open(Door));

24 askOne retrieve one unifying expression from the other agent’s belief base (asynchronous) open(door1)[source(red)] open(door1)[source(percept)] open(door2)[source(percept)] .send(red, askOne, open(Door));

25 askOne /* ---- ask performatives ---- */ @kqmlReceivedAskOne1
+!kqml_received(KQML_Sender_Var, askOne, KQML_Content_Var, KQML_MsgId) <- ?KQML_Content_Var; .send(KQML_Sender_Var, tell, KQML_Content_Var, KQML_MsgId). […]

26 askOne retrieve one unifying expression from the other agent’s belief base (synchronous) open(door1)[source(percept)] open(door2)[source(percept)] .send(red, askOne, open(Door), Reply); Reply = open(Door);

27 askAll retrieve all unifying expressions from the other agent’s belief base open(door1)[source(percept)] open(door2)[source(percept)] .send(red, askAll, open(Door), Reply);

28 askAll retrieve all unifying expressions from the other agent’s belief base open(door1)[source(percept)] open(door2)[source(percept)] .send(red, askAll, open(Door), Reply); [open(door1)[source(red)], open(door2)[source(red)]]

29 Sources Rafael H. Bordini, Jomi Fred Hübner, Michael Wooldridge: programming multi-agent systems in AgentSpeak using Jason Renata Vieira, Alvaro Moreira, Michael Wooldridge, Rafael H. Bordini: On the Formal Semantics of Speech-Act Based Communication in an Agent-Oriented Programming Language Specification of the KQML Agent-Communication Language FIPA 97 Specification Part 2 Agent Communication Language


Download ppt "Communication in Multi-Agent Systems"

Similar presentations


Ads by Google