Fariba Sadri - ICCL 08 Agent Examples 1 Agents Some Examples Fariba Sadri Imperial College London...

47
Fariba Sadri - ICCL 08 Ag ent Examples 1 Agents Some Examples Fariba Sadri Imperial College London ICCL Summer School Dresden August 2008

Transcript of Fariba Sadri - ICCL 08 Agent Examples 1 Agents Some Examples Fariba Sadri Imperial College London...

Fariba Sadri - ICCL 08 Agent Examples

1

AgentsSome Examples

Fariba Sadri Imperial College London

ICCL Summer School DresdenAugust 2008

Fariba Sadri - ICCL 08 Agent Examples

2

Contents

• Teleo-Reactive agents• Agent-0• BDI/AgentSpeak(L)

Fariba Sadri - ICCL 08 Agent Examples

3

Teleo-Reactive (TR) Programs

Some references:

• Nilsson, TR Programs for agent control, Journal of AI Research, 1994, 139-158

• Nilsson, Teleo-reactive programs and the triple-tower architecture, October 2001

Fariba Sadri - ICCL 08 Agent Examples

4

TR-Programs

They are named sequences of condition-action rules :

Program for Goal G:G => nil % i.e. do nothingC1 => A1C2 => A2..Cn => An.

Fariba Sadri - ICCL 08 Agent Examples

5

TR-Programs

They are intended to • direct the agent towards a goal, while• continuously taking into account

changing perceptions of the environment.

• No declarative semantics• Only procedural semantics

Fariba Sadri - ICCL 08 Agent Examples

7

TR-Programs

• The Ci are tests to be evaluated on the world model.

• The Ai are actions the agent can do.• At each cycle:

– observations are made – the rules are checked from the top.– The first rule with a true test fires, i.e. determines the

action to be done next.– The action is executed.

• Typically actions of later rules are intended to eventually result in the test of an earlier rule to become true (Regression Property).

• There is always a rule that will fire.

Fariba Sadri - ICCL 08 Agent Examples

8

TR-Program ExamplesExample (from Nilsson 2001):unpile(x); x is a block

Clear(x) =>nilOn(y,x) =>move-to-table(y)

move-to-table(x); x is a blockOn(x,Ta)=>nilHolding(y)=>putdown(y,Ta)Clear(x)=>pickup(x)T=>unpile(x)

Putdown and pickup are primitive actions.

Fariba Sadri - ICCL 08 Agent Examples

9

TR-Programs Example

Example (from Nilsson 2001): move(x,y);x and y are blocksOn(x,y)=>nilHolding(x) Clear(y)=>putdown(x,y)Holding(z)=>putdown(z,Ta)Clear(x) Clear(y)=>pickup(x)Clear(y)=> unpile(x)T=> unpile(y)

Fariba Sadri - ICCL 08 Agent Examples

10

TR Triple Tower Architecture

Perception

Tower

(Rules)

Model

Tower

(Predicates + TMS)

Action

Tower

(Action Routines)

Sensors

Environment

Fariba Sadri - ICCL 08 Agent Examples

11

TR Triple Tower ArchitectureExample

¬XOn(x,Y)

¬Holding(Y) Clear(Y)

Clear(A)

On(A,B)

Holding(C)

TR-Program

Sensors

Environment

Fariba Sadri - ICCL 08 Agent Examples

12

TR-Programs

• The actions Ai may be:– primitive, – Sets of actions that can be executed

simultaneously, or – refer to other TR programs.

• A TR program called will continue until the original condition leading to it being called remains the highest one in the original program that remains true.

Fariba Sadri - ICCL 08 Agent Examples

13

TR-Programs

• New Info from environment deletes old info (TMS).

• Also forward reasoning to derive all provable facts.

Fariba Sadri - ICCL 08 Agent Examples

14

TR-Programs

Where do TR-programs fit in within the agent classification given in the introduction ?

Fariba Sadri - ICCL 08 Agent Examples

15

Agent-0

• Reference:Yoav Shoham,Agent0: A simple agent language and its interpreter, Proceedings AAAI-91, 1991, 704-709

• One of the early multi-agent models and programming languages.

• Fairly simple• Motivation: partly to gain experience from

implementing an agent model

Fariba Sadri - ICCL 08 Agent Examples

16

Agent-0

Agents send messages to each other:Inform, Request, Unrequest

A1A2

Fariba Sadri - ICCL 08 Agent Examples

17

Agent-0 Mental State

Mental state is made up of :• Capabilities - fixed• Commitment rules - fixed• Beliefs - get updated• Commitments - get updated

Fariba Sadri - ICCL 08 Agent Examples

18

Agent-0 Capabilitiescap(time,private action, mental condition)e.g. cap(T, rotate(Degree1) ,not (cmtd(_,do(T,rotate(Degree2)) and Degree1\=Degree2 ) )where Degree1, Degree2, T are variables.

This says:The agent is able to rotate (something) by Degree1degrees at some future time T if it does not already

have a commitment to any agent to rotate (it) by a different number of degrees at the same time.

Fariba Sadri - ICCL 08 Agent Examples

19

Agent-0 Commitment Rules

commit(messpattern, mentalcond, agent, action)The action can be a single or a sequence of actions.e.g.commit( (Ag, REQUEST(Act)), (_,myfriend(Ag), Ag,

Act)This says: The agent can (perhaps) commit to do Act for agent

Ag if Ag has just requested Act and agent believes Ag is a friend.

• No declarative semantics, • Just operational semantics.

Fariba Sadri - ICCL 08 Agent Examples

20

Agent-0 Beliefs

• bel(Ag, F) where Ag is the agent who believes Fact F

• AGENT-0 agents trust one another. They believe anything they are told, incorporate it in their beliefs, and retract any older contradictory beliefs.

• Only atomic propositions or their negations are held as beliefs. This is to simplify knowledge assimilation. It makes consistency checking trivial.

Fariba Sadri - ICCL 08 Agent Examples

21

Agent-0 Commitments

• cmtd(agent, action)where the commitment is to agent.

• The set of commitments implicitly defines the future actions for the agent.

• Commitments are acted upon, by executing the action when its time comes.

Fariba Sadri - ICCL 08 Agent Examples

22

Agent-0 Time

• Agents measure time as cycle number (number of cycle executions) and synchronise their cycle executions using a global clock.

• So the time of a committed-to action comes when the agent’s cycle number equals the cycle time embedded in the action description.

Fariba Sadri - ICCL 08 Agent Examples

23

Agent0 Cycle

Fariba Sadri - ICCL 08 Agent Examples

24

Agent0 Cycle

• Initialisation: Initialises the Capabilities, Commitment rules, Beliefs, and Commitments

• After that the agent is continually involved in:– Updating its beliefs– Updating its commitments– Honouring commitments whose time has

come

Fariba Sadri - ICCL 08 Agent Examples

25

Agent-0 Commitments

• Commitments are only to primitive actions. So the agent cannot commit to bringing about a state that requires any element of planning.

Fariba Sadri - ICCL 08 Agent Examples

26

Agent-0 Actions

• Private – Can be anything

• Communicative– Inform(t a fact)– Request(t, a, action)– Unrequest(t, a, action)– Refrain(action)

Fariba Sadri - ICCL 08 Agent Examples

27

Agent-0 Actions

Actions can be• Conditional

If mntlcond then actionIf at time t you believe F holds at time t’ then at time t inform a that F holds at t’

• Unconditional

Fariba Sadri - ICCL 08 Agent Examples

28

BDI/AgentSpeak(L)

ReferencesA. Roa, AgentSpeak(L):BDI Agents speak out

in a logical language, Springer LNCS 1038, 1996

A. Rao, M. Georgeff, An abstarct architecture for rational agents, Proceedings of the 3rd International Conference on Principles of Knowledge Representation and Reasoning, KRR92, Boston, 1992

R. Bordini et al, Programming MAS in AgentSpeak using Jason, Wiley, 2007

Fariba Sadri - ICCL 08 Agent Examples

29

BDI/AgentSpeak(L)

Motivations:• BDI agents are “traditionally” specified in a modal

logic with modal operators to represent BDI (Beliefs, Desires and Intentions).

• Their implementations (e.g. PRS, dMARS), however, have typically simplified their specifications and used non-logical procedural approaches.

• AgentSpeak is a programming language based on restricted FOL.

• AgentSpeak attempts to provide operational and proof theoretic semantics for PRS and dMARS ( and thus by a roundabout way for BDI agents)

Fariba Sadri - ICCL 08 Agent Examples

30

BDI/AgentSpeak(L)

Further Motivations:• To incorporate some practical

reasoning:– Means ends reasoning, deciding how to

achieve goals– Reaction to events, for example when

something unexpected happens– Choice deliberation, deciding what we

want to achieve (our intention) from amongst our desires

Fariba Sadri - ICCL 08 Agent Examples

31

BDI/AgentSpeak(L)Internal (Mental) State

– A set of beliefs (similar to Agent0 beliefs)

– A set of current desires (or goals)• typically of the form !b where b is belief• interpreted as desire for state of the world in which b holds.

– A set of pending events • typically perceptions of messages interpreted as belief

updates: +b, -b or as goals to be achieved: +!b• including request messages from other agents usually

recorded as new belief events, perhaps as a new belief that the request has been made.

– A set of intentions (similar to agent0 commitments)

– A plan library. A plan has a triggering condition (an event), a mental state applicability condition, and a collection of sub-goals and actions (similar to ECA rules).

Fariba Sadri - ICCL 08 Agent Examples

32

AgentSpeak(L) Beliefs and Event Terms

• No modal opeartors• Beliefs: a conjunction of ground literals• adjacent(room1, room2) & loc(room1) &

¬empty(room1)• Events: If b is an atomic belief then the following

are event terms:– !b represents an achievement goal, e.g. !loc(room2)– ?b represents a test goal, e.g. ?empty(room1)– +b, -b representing events of adding or deleting beliefs

(events generated by messages)– +!b, -!b– +?b, -?b

• Agent can have explicit goals, given by events

Fariba Sadri - ICCL 08 Agent Examples

33

AgentSpeak Agent Cycle

see

environment

beliefs

desires

plansgenerate new intentions

intentions

actionexecute next step of some intention

events

Fariba Sadri - ICCL 08 Agent Examples

34

AgentSpeak Agent Cycle

• Notice external/internal changes• Update belief and record as events in event

storese.g. +!location(robot, b), +location(waste, a)

• Choose event (from event store) or desire (from desire store for which there is at least one plan)

• Select plan – this becomes new intention• Drop intentions no longer believed viable• Resume intention

– Execute an action, or– Post subgoal as a new goal event

• Repeat cycle

Fariba Sadri - ICCL 08 Agent Examples

35

AgentSpeak Plans• Each agent has its own repertoire of (primitive)

actions and plan library.

Plans are ECA rules of the form:

e:b1,…,bm <- h1;..;hk

e is an event term the bi are belief terms – b1, …, bm is called context the hi are goals or (primitive) actions

Plans are used to respond to belief update events and new goal events

Fariba Sadri - ICCL 08 Agent Examples

36

AgentSpeak Plans Examples

+location(waste, X) : location(robot,X) &

location(bin,Y) <-pick(waste); !location(robot,Y);drop(waste).

Fariba Sadri - ICCL 08 Agent Examples

37

AgentSpeak Plans Examples

+location(waste, X) : location(robot,X) & location(bin,Y) <-

pick(waste); !location(robot,Y);

drop(waste).

ContextTriggering Event-Addition Body of the plan of a fact

Fariba Sadri - ICCL 08 Agent Examples

38

AgentSpeak Plans Examples

+location(waste, X) : location(robot,X) & location(bin,Y) <-

pick(waste); !location(robot,Y);

drop(waste).The intended reading of this is very similar

to event-condition-action rules (except that the action part is more sophisticated):

On event of noticing waste at X, if robot is at X and bin at Y, then (robot) pick waste, make its location Y and drop waste.

Fariba Sadri - ICCL 08 Agent Examples

39

AgentSpeak Plans Examples

+!location(robot, X) : location(robot,X) <- true.

+!location(robot, X) : location(robot,Y) & not X=Y & adjacent(Y,Z) & not location(car,Z) <-

move(Y,Z); +!location(robot,X).

Fariba Sadri - ICCL 08 Agent Examples

40

AgentSpeak Plans Examples

+!location(robot, X) : location(robot,Y) & not X=Y & adjacent(Y,Z) & not location(car,Z) <-

move(Y,Z); +!location(robot,X).

The intended reading of this is similar to goal reduction rules:

To achieve a goal location(robot,X) ….

Fariba Sadri - ICCL 08 Agent Examples

41

AgentSpeak Plan Example

+!quench_thirst:have_glass <-!have_soft_drink; fill_glass, drink

+!have_soft_drink:soft_drink_in_fridge<- open_fridge; get_soft_drink

Fariba Sadri - ICCL 08 Agent Examples

42

AgentSpeak Plans Some statements from Anand

Rao• “Rules in a pure logic program are not

context-sensitive as plans.”????

– Situation calculus and its many descendents - State context

– Event calculus - Temporal context– Conditions/preconditions of plan provide

context

Fariba Sadri - ICCL 08 Agent Examples

43

AgentSpeak Plans Some statements from Anand

Rao• “Rules execute successfully returning

a binding for unbound variables; however, execution of plans generates a sequence of ground actions that affect the environment.”

compare with Abductive Logic Programs

Fariba Sadri - ICCL 08 Agent Examples

44

location(robot, X) current_location(robot,Y) & ¬ X=Y & adjacent(Y,Z) & ¬ current_location(car,Z) &move(Y,Z) & location(robot,X).

Fariba Sadri - ICCL 08 Agent Examples

45

AgentSpeak Plans Some statements from Anand

rao• “In a pure logic program there is no

difference between a goal in the body of a rule and the head of a rule. In an agent program the head consists of a triggering event, rather than a goal.

... allows both goal-directed and data-directed invocation of plans.”

compare with Abductive Logic Programs

Fariba Sadri - ICCL 08 Agent Examples

46

location(robot, X) current_location(robot,Y) & not X=Y & adjacent(Y,Z) & not current_location(car,Z) &move(Y,Z) & location(robot,X).

location(waste, X) & ¬X=bin pick(waste) &

drop(waste, bin)

Fariba Sadri - ICCL 08 Agent Examples

47

AgentSpeak Plans Some statements from Anand

rao• “While a goal is being queried the

execution of that query cannot be interrupted in a logic program. However, the plans in an agent program can be interrupted.”

compare with Abductive logic programs run within An Agent Cycle