22.07.2013 Views

Introduction to Belief Desire Intention Agents - RMIT University

Introduction to Belief Desire Intention Agents - RMIT University

Introduction to Belief Desire Intention Agents - RMIT University

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Introduction</strong> <strong>to</strong> <strong>Belief</strong> <strong>Desire</strong> <strong>Intention</strong><br />

<strong>Agents</strong><br />

Lin Padgham<br />

<strong>RMIT</strong> <strong>University</strong>, Melbourne, Australia


BDI Agent Systems Useful in Many Applications<br />

Unmanned (Aerial)<br />

Vehicles<br />

Trading <strong>Agents</strong><br />

Logistics<br />

E-Health<br />

Air Traffic Control<br />

BDI (<strong>Belief</strong> <strong>Desire</strong> <strong>Intention</strong>) agents have been used in many successful<br />

applications in complex environments.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 1 / 7


<strong>Belief</strong> <strong>Desire</strong> <strong>Intention</strong> Model of Agency<br />

• BDI is a framework for describing the behaviour of rational agents.<br />

• Based on work in the philosophy of mind:<br />

Dennett<br />

<strong>Intention</strong>al systems:<br />

“[..] whose behavior<br />

can be predicted by the<br />

method of attributing<br />

belief, desires and<br />

rational acumen.”<br />

Bratman<br />

• Human practical reasoning consists of two activities:<br />

Practical reasoning:<br />

“[..] a matter of<br />

weighing conflicting<br />

considerations [..]<br />

provided by what the<br />

agent desires [and]<br />

believes.”<br />

• Deliberation: deciding what <strong>to</strong> do i.e., form intentions.<br />

• Means-ends Reasoning: deciding how <strong>to</strong> do it i.e., form plans.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 2 / 7


<strong>Belief</strong>-<strong>Desire</strong>-<strong>Intention</strong> (BDI) Agent Architecture<br />

Environment<br />

SENSORS<br />

ACTUATORS<br />

<strong>Belief</strong>s<br />

<strong>Intention</strong> Stacks<br />

events<br />

Pending Events<br />

BDI engine<br />

actions<br />

dynamic static<br />

Plan<br />

library<br />

A plan is a programmed recipe for achieving a goal in some situation.<br />

A BDI execution engine selects from a plan library, based on the situation.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 3 / 7


Goal-Plan Tree: Decomposition and Selection<br />

P2<br />

G3<br />

P5 P6<br />

G2<br />

P3 P4<br />

P1<br />

G5<br />

G4<br />

P7 P8<br />

P9 P10 P11<br />

G6<br />

P12 P13 P14<br />

• A plan typically has a number<br />

of (sub)goal steps.<br />

• Each sub-goal generates an<br />

(internal) event which has<br />

some relevant plans.<br />

• So the plan library can be<br />

seen as a set of goal-plan<br />

trees.<br />

• At each goal node a plan must<br />

be selected (OR).<br />

• At each plan node the goals<br />

must be accomplished (AND).<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 4 / 7


BDI Agent Oriented Programming<br />

• BDI Agent-Oriented Programming provides abstraction at the level of<br />

mental attitudes <strong>to</strong> explain the operation of a system. <strong>Belief</strong>s, <strong>Desire</strong>s,<br />

<strong>Intention</strong>s.<br />

• The modularity of plans makes it easy <strong>to</strong> develop complexity<br />

incrementally.<br />

• The goal oriented approach makes it suitable for use in dynamic<br />

environments.<br />

• Many efficient and powerful development environments available. JACK,<br />

Jadex, Jason, PRS, 2APL, ...<br />

• BDI agent programs are fast <strong>to</strong> develop. A 2006 study showed:<br />

• Gain compared <strong>to</strong> Java programming 500%.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 5 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

ObtainTransport<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

EvacHouse<br />

RespondBushfire<br />

AssembleMembers<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

Walk(L)<br />

MoveSafeLoc<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

EvacHouse<br />

RespondBushfire<br />

1 2 3<br />

ObtainTransport<br />

AssembleMembers<br />

MoveSafeLoc<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

A plan is a sequence of steps<br />

Walk(L)<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

action<br />

EvacHouse<br />

RespondBushfire<br />

1 2 3 goal<br />

ObtainTransport<br />

AssembleMembers<br />

MoveSafeLoc<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

message<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

Walk(L)<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

A step can be a goal, an action, a message <strong>to</strong> another agent, or some<br />

computation.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

ObtainTransport<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

EvacHouse<br />

RespondBushfire<br />

AssembleMembers<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

Walk(L)<br />

MoveSafeLoc<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

A goal may have different plans, for achieving it in different situations.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

Context:<br />

have car &<br />

car at home<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

ObtainTransport<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

EvacHouse<br />

RespondBushfire<br />

AssembleMembers<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

Walk(L)<br />

MoveSafeLoc<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

A goal may have different plans, for achieving it in different situations.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

Context:<br />

have car &<br />

car at home<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

ObtainTransport<br />

Context: X<br />

is neighbour<br />

& X has car<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

EvacHouse<br />

RespondBushfire<br />

AssembleMembers<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

Walk(L)<br />

MoveSafeLoc<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

A goal may have different plans, for achieving it in different situations.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

Context:<br />

have car &<br />

car at home<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

ObtainTransport<br />

Context: X This can give<br />

is neighbour multiple plan<br />

& X has car instances<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

EvacHouse<br />

RespondBushfire<br />

AssembleMembers<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

Walk(L)<br />

MoveSafeLoc<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

A goal may have different plans, for achieving it in different situations.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

Context:<br />

have car &<br />

car at home<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

ObtainTransport<br />

Context: X This can give<br />

is neighbour multiple plan<br />

& X has car instances<br />

ArrangeLift<br />

OR OR<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

EvacHouse<br />

RespondBushfire<br />

AssembleMembers<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

Walk(L)<br />

MoveSafeLoc<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

For a goal <strong>to</strong> succeed one of the plans must succeed. If one fails try another.<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

AND<br />

ObtainTransport<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

EvacHouse<br />

RespondBushfire<br />

AssembleMembers<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

For a plan <strong>to</strong> succeed, all steps must succeed.<br />

WalkToLoc<br />

Walk(L)<br />

MoveSafeLoc<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

AND<br />

ObtainTransport<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

EvacHouse<br />

RespondBushfire<br />

AssembleMembers<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

If things fail, recovery happens as locally as possible<br />

Walk(L)<br />

MoveSafeLoc<br />

DetermineLoc<br />

DriveToLoc<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Example Plan Structure<br />

goal<br />

plan<br />

Action<br />

M:msg<br />

GetCar<br />

Walk(Car)Drive(Door)<br />

ObtainTransport<br />

ArrangeLift<br />

M:ReqLift<br />

NoTransport<br />

M:<strong>to</strong>Door<br />

EvacHouse<br />

RespondBushfire<br />

AssembleMembers<br />

HouseAssemble<br />

DistAssemble<br />

Stay&Defend<br />

M:<strong>to</strong>Door M:phoneInfo<br />

WalkToLoc<br />

Plan selection responsive <strong>to</strong> changing environment.<br />

Walk(L)<br />

MoveSafeLoc<br />

DetermineLoc<br />

DriveToLoc<br />

car home<br />

Drive(L)<br />

WaitPickUp<br />

GetFromRadio LocalShelter LeaveTown<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 6 / 7


Advantages<br />

• Intuitive representation<br />

• Late selection: situation aware...<br />

• Plan failure - retry new plan. Committed <strong>to</strong> choices, like humans.<br />

• Agent is responsive <strong>to</strong> environmental changes.<br />

• Huge number of options possible - over 2 million for modest tree.<br />

(Subgoal steps 4, Choices 2, Depth 3)<br />

<strong>RMIT</strong> <strong>Agents</strong> Group <strong>Introduction</strong> <strong>to</strong> BDI 7 / 7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!