Jeremy Wyatt
|
Plan
© Àituation calculus
|
Àituation Calculus
© The situation calculus is a general system for allowing you
to reason automatically about the effects of actions, and to
search for plans that achieve goals.
|
Àituation Calculus
© |ctions are described in the situation calculus using two kinds of
axioms:
Possibility |xioms: say when you can apply an action
Effect |xioms: that say what happens when you apply them
Effect |xioms only say what changes, not what stays the same, but
reasoning in the situation calculus requires the explicit representation of all
the things that don¶t change. These are handled by Frame |xioms, and
hence this is called the Representational Frame Problem.
© Eventually solutions to both the Frame Problems were found. But in the
meantime researchers began to look for representations to support more
efficient planning.
|
The ÀTRIPÀ representation
© The Grandad of planning representations
|
ÀTRIPÀ operators
|ction(Move(b,x,y))-
Preconditions: On(b,x) ^ Clear(b) ^ Clear(y)
Effects: On(b,y) ^ Clear(x) ^ ¬On(b,x) ^ ¬Clear(y)
© |ll effects are modelled, anything that isn¶t
in the effects list stays the same
| ë
© The effect P^¬Q adds P to the world
description and removes Q
© Variables in the operator (e.g. x) must be
bound (unified) with entities in the | ë
description of the world to apply the
operator, so Move(C,|,B) requires
{b/C,x/|,y/B}, i.e. b is substituted by C etc.
|
ÀTRIPÀ operators
|ction(Move(b,x,y))-
Preconditions: On(b,x) ^ Clear(b) ^ Clear(y)
Effects: On(b,y) ^ Clear(x) ^ ¬On(b,x) ^ ¬Clear(y)
© ÀTRIPÀ doesn¶t allow us to use full first order
logic
| ë
© Ào we have to create a Clear(b) predicate,
rather than use ' p Ô to indicate that
there is no block x on block b
|lso we actions like Move(C,|,|) create
©
inconsistent effects | ë
© |nd we may need additional special operators
e.g. Move_to_table(b,x,Table) whenever the
effects are slightly different
|
The ÀTRIPÀ state and goal descriptions
Àtate Goal
On(|,Table) On(B,Table) On(|,B)
On(C,|)
Clear(B)
Clear(C) | On(B,C)
ë
| ë
© In the state description anything that isn¶t stated is assumed to be false
(Closed World |ssumption)
|
Forward Chaining Àearch
On(|,Table)
On(B,Table)
On(C,Table)
Clear(|)
| Clear(C) Clear(B)
On(|,Table)
On(B,Table)
On(C,|)
Clear(C) Clear(B)
|ë
On(|,Table)
On(B,Table)
On(C,B)
Clear(C) Clear(|)
|
Forward Chaining Àearch
© Because of the restrictions on ÀTRIPÀ representation there
can only be a finite number of states
| ë
|
Backward Chaining Àearch
Initial Àtate: On(|,Table)
On(B,Table) On(C,|)
Clear(C) Clear(B) | ë
|ction(Move(b,x,y))-
Preconditions: On(b,x) ^ Clear(b) ^ Clear(y)
Effects: On(b,y) ^ Clear(x) ^ ¬On(b,x) ^ ¬Clear(y)
|
ë
|ë
On(B,C) On(|,B)
|
Backward Chaining Àearch
Initial Àtate: On(|,Table)
On(B,Table) On(C,|)
Clear(C) Clear(B) | ë
|ction(Move(b,x,y))-
Preconditions: On(b,x) ^ Clear(b) ^ Clear(y)
Effects: On(b,y) ^ Clear(x) ^ ¬On(b,x) ^ ¬Clear(y)
|
On(|,Table)
Clear(|) ë
Clear(B)
On(B,C)
|ë
On(B,C) On(|,B)
ë
|
|
Backward Chaining Àearch
Initial Àtate: On(|,Table)
On(B,Table) On(C,|)
Clear(C) Clear(B) | ë
|ction(Move(b,x,y))-
Preconditions: On(b,x) ^ Clear(b) ^ Clear(y)
Effects: On(b,y) ^ Clear(x) ^ ¬On(b,x) ^ ¬Clear(y)
|
On(|,Table)
Clear(|) ë
Clear(B)
On(B,C)
ë |ë
|
| On(B,C) On(|,B)
ë
ë
On(|,Table) |
Clear(B)
On(B,|)
Clear(C)
|
Backward Chaining Àearch
Initial Àtate: On(|,Table)
On(B,Table) On(C,|)
Clear(C) Clear(B) | ë
On(|,Table) |ction(Move(b,x,y))-
On(B,Table) Preconditions: On(b,x) ^ Clear(b) ^ Clear(y)
Clear(B) Effects: On(b,y) ^ Clear(x) ^ ¬On(b,x) ^ ¬Clear(y)
Clear(C)
Clear(|)
| ë ë
|
On(|,Table)
Clear(|) ë
Clear(B)
On(B,C)
ë |ë
|
| On(B,C) On(|,B)
ë
ë
On(|,Table) |
Clear(B)
On(B,|)
Clear(C)
|
Backward Chaining Àearch
|
Linear vs non-linear planning
© In early planners it was assumed that sub-goals could be solved completely
independently
© |nd the plans produced for these sub-goals could then be sequenced
|