koen hindriks, birna van riemsdijkmulti-agent systemen agent programming in g oal multi-agent...
TRANSCRIPT
![Page 1: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/1.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemen
Agent Programming in GOALMulti-agent Systems & Communication
Koen HindriksDelft University of Technology, The Netherlands
![Page 2: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/2.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
GOAL So Far
• mental states (beliefs, goals)
• mental state conditions & macros
• action specifications, built-in actions
• action rules
• environment & perception
• modules
![Page 3: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/3.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Outline (today)
• Intro Multi-Agent Systems (MAS)
• Specifying a MAS in GOAL
• Communication in GOAL
• Coordination in MAS
![Page 4: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/4.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Multi-Agent Systems (MAS)
![Page 5: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/5.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Multi-Agent System
Environment
A1Agents A2
A3A4
Intersecting spheres of influence of multiple agents acting in an environment
Intersecting spheres:•Action perspective: may interfere, change same parts of environment•Perception perspective: agents may have different views on environment
![Page 6: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/6.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Multi-Agent System
Environment
A1Agents A2
A3
A4
Various approaches to coordinate activity of multiple agents
Various coordination techniques have been proposed, main ideas:•Communication protocols impose structure on agent communication•Add organization structure on top of multi-agent system
Note: Without explicit agent communication still implicit communication possible via environment if perception spheres overlap
![Page 7: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/7.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Multi-Agent System
Environment
A1Agents A2
A3
A4
Not all agents need to be ‘connected’ to the environment
![Page 8: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/8.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Specifying a MAS
![Page 9: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/9.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
MAS Specification
In GOAL, a .mas file is a recipe for launching a
multi-agent system, specifying:
• which environment will be launched,
• how many agents will be launched,
• the agent names for agent processes
• which agents are connected to environment
• which .goal file is used to create an agent.
![Page 10: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/10.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
MAS Specification
A .mas file is a recipe for launching a MAS:
• which environment will be launched
• environment started by jar file,
• some of which may be initialized using the init command (check out environment doc).
environment{ "blocksworld.jar".
init[configuration="bwconfigEx1.txt"].}
![Page 11: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/11.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
MAS Specification
A .mas file is a recipe for launching a MAS:
• which agent files will be used
• agent file defines a possible agent type.
agentfiles { "coffeemaker.goal".
"coffeegrinder.goal".}
![Page 12: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/12.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
MAS Specification
A .mas file is a recipe for launching a MAS:
• which agent processes will be created
• a launch policy specifies when, which and how many agent processes will be created.
• launch maker:coffeemaker. launches one agent process called maker using the agent file referenced by coffeemaker (coffeemaker.goal).
• does not connect agent to an environment.
launchpolicy { launch maker:coffeemaker. launch grinder:coffeegrinder.
}
![Page 13: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/13.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
MAS Specification
A .mas file is a recipe for launching a MAS:
• which agent processes will be created
• a conditional launch rule is triggered by the environment:
whenever a controllable entity becomes available in the environment, an event is generated.
• the agent created by the launch part of the rule is connected to that entity.
launchpolicy { when entity@env do launch elevator:file1. }
![Page 14: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/14.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
MAS Specification
A .mas file is a recipe for launching a MAS:
• additional checks in launch rule
• this launch rule can only be applied if there is an available entity of type car, and the rule can be applied at most 3 times.
Remark: launch rules are applied in linear order.
launchpolicy { when [type=car,max=3]@env do launch elevator:file1. }
![Page 15: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/15.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
MAS Specification: Example
A .mas file is a recipe for launching a MAS:
• environment section may be empty, in that case mas is run without an environment.
• agentfiles and launchpolicy must be non-empty.
agentfiles { "coffeemaker.goal".
"coffeegrinder.goal".}
launchpolicy { launch maker:coffeemaker. launch grinder:coffeegrinder.
}
![Page 16: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/16.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Agent Identity and Other AgentsHow does an agent know it is not alone?• The names of all agents generated by GOAL are
inserted in the belief base of all other agents.• For example, agent(tarzan) is inserted in the
belief base of agent jane when tarzan is created.
How is an agent able to differentiate itself from other agents? I.e. how does agent jane know she is not tarzan?
• Upon creation, the fact me(<name>) where name is the agent’s name is inserted in the belief base of that agent.
![Page 17: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/17.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Communication in GOAL
![Page 18: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/18.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Communication: Primitives
• Communication primitives:– send(<recipients>, <content>)– sendonce(<recipients>, <content>)
• Example: Tarzan sends Jane a message:– send(jane, meeting(date(1,2,2010), time(12,0), duration(1,0), [jane, tarzan]))
![Page 19: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/19.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
GOAL Agent Architecture• The basis of communication in GOAL is a simple
mailbox semantics.
Agent
EnvironmentReal or simulatedworld of events
actionpercept
Beliefs
Goals
ActionRulesProcess
percepts
message Processmessage
![Page 20: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/20.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Communication: SemanticsAction: send(<recipients>, <content>)• ground send action can always be performed, i.e.
precondition is true,
• assume agent sender sends message to recipients
• then GOAL puts
sent(<recipients>, <content>)
in the mailbox of sender,• agents that receive message put
received(sender, <content>)
in their mailbox. NB: keep in mind it may take some time before agent b receives the message.
![Page 21: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/21.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Communication: SemanticsAction: sendonce(<recipients>, <content>)
• same as send(<recipients>, <content>), but
• sendonce action can only be performed if the mailbox of the sending agent does not contain:
sent(<recipients>, <content>)
i.e. precondition is:
not(sent(<recipients>, <content>)
![Page 22: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/22.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Using Messages in MailboxThe facts in the mailbox can be used like any other facts in the
belief base of an agent.
That is,
• sent(<recipient>, <content>) and• received(name, <content>)
can be used in:– in conditions in action rules– clauses in the knowledge or beliefs section
![Page 23: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/23.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Using Messages in Mailbox
• After receiving a message from tarzan, agent jane will have:received(tarzan, meeting(date(1,2,2010), time(12,0), duration(1,0), [jane,tarzan]))
in her mailbox.
• Consequently, jane will believe:bel(received(tarzan, meeting(date(1,2,2010), …, …, [jane,tarzan])))
![Page 24: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/24.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Processing Message Pattern• Inserting received information into belief base and
removing received message:
• Removing received message cleans up the mailbox and makes sure that the action rule is not applied repeatedly (even after the received info is outdated).
• Using received messages in mental state conditions other than for processing the message, and using them in knowledge base, gives less readable code.
if bel(received(A,Proposition)) then insert(Proposition) + delete(received(A,Proposition))
![Page 25: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/25.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Message Types• GOAL supports three message types, called
moods:
– declarative, typically used to inform
Example: The time is 2 o'clock
operator: ‘:’ : send(jane, :time(14,0))– imperative, typically used to indicate a goal
Example: I want the door to be closed!
operator: ‘!’ : send(jane, !door(closed))– interrogative, typically used to ask a question
Example: How much milk is left?
operator: ‘? : send(jane, ?amountMilk(_))
![Page 26: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/26.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Message TypesMood operators are translated to Prolog predicates in
mailbox:
– declarative: no predicatereceived(tarzan, time(14,0))
– imperative: impreceived(tarzan, imp(door(closed)))
– interrogative: intreceived(tarzan, int(amountMilk(_)))
See programming guide, section 6.5.
![Page 27: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/27.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Agent SelectorsFirst argument of a send action is called an agent selector, which can be:•An agent name: send(jane, …)•A variable (to be instantiated): send(Person, …)•A list of selectors: send([jane,tarzan,Person], …)•A quantor:
– send(self, …) : message sent to agent itself– send(all, …) : message sent to all agents (incl. itself)– send(allother, …) : message sent to all other agents
![Page 28: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/28.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Sending messages to oneself
• Messages sent to oneself change the agent’s own mental state! Sending messages to oneself has special meaning.
• Changes are different for different moods:– send(self, :fact) inserts fact in belief base– send(self, !fact) adopts fact as goal and
deletes fact from belief base.– send(self, ?fact) deletes fact from belief base
N.B.: Do not use messages to self as an alternative way of updating the agent’s beliefs and goals!
N.B.: Do not use messages to self as an alternative way of updating the agent’s beliefs and goals!
![Page 29: Koen Hindriks, Birna van RiemsdijkMulti-agent systemen Agent Programming in G OAL Multi-agent Systems & Communication Koen Hindriks Delft University of](https://reader036.vdocument.in/reader036/viewer/2022062511/551a7421550346545e8b61f6/html5/thumbnails/29.jpg)
Koen Hindriks, Birna van Riemsdijk Multi-agent systemenKoen Hindriks, Birna van Riemsdijk Multi-agent systemen
Selecting agents to send to
• Suppose agent wants to send to all other agents that are producers of milk that it wants to have milk.
Q: Write an action rule which achieves this:– Use predicates have/1 and producerOf/2.
A: if a-goal(have(milk)), bel(agent(X), producerOf(X, milk))
then send(X, !have(milk))