Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.