# Planning

Jeremy Wyatt

AI Principles, Lecture on Planning

Plan  Situation calculus  The frame problem  The STRIPS representation for planning  State space planning:  Forward chaining search (progression planning)  Backward chaining search (regression planning)  Reading: Russell and Norvig pp. Lecture on Planning .375-387 AI Principles.

¬Holding(G1. Lecture on Planning .g.S0) says that the agent is not holding G1 in situation S0 AI Principles. it has some flaws that took a long time to iron out«  The situation calculus is composed of  Situations: S0 is the initial situation Result(a.S0) is the situation that results from applying action a in situation S0  Fluents: functions and predicates that may be true of some situation e.  However.Situation 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.

AI Principles. These are handled by Frame Axioms. But in the meantime researchers began to look for representations to support more efficient planning. is that  Effect Axioms only say what changes. and hence this is called the Representational Frame Problem. but reasoning in the situation calculus requires the explicit representation of all the things that don¶t change.  Reasoning about all the effects and non-effects of a sequence of actions is thus very inefficient.Situation Calculus  Actions are described in the situation calculus using two kinds of axioms:  Possibility Axioms: say when you can apply an action  Effect Axioms: that say what happens when you apply them  The essential problem with situation calculus however. This is known as the Inferential Frame Problem. Lecture on Planning .  Eventually solutions to both the Frame Problems were found. not what stays the same.

The STRIPS representation  The Grandad of planning representations  Avoids the difficulties of more general representations (e. situation calculus) for reasoning about action effects and change  Devised for. doesn¶t change  It is this assumption (sometimes called the STRIPS assumption) that avoids the representational frame problem AI Principles. and used in the Shakey project  The key contribution of the representation of action effects is to assume that anything that isn¶t said to change as the result of an action.g. Lecture on Planning .

x) ^ ¬Clear(y)  All effects are modelled. so Move(C.x) ^ Clear(b) ^ Clear(y) Effects: On(b. AI Principles.x.A.e.y) ^ Clear(x) ^ ¬On(b. x) must be bound (unified) with entities in the description of the world to apply the operator. i. Lecture on Planning C A B C B A . b is substituted by C etc.x/A.STRIPS operators Action(Move(b.B) requires {b/C. 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.y))Preconditions: On(b.y/B}.g.

y))Preconditions: On(b.A. Lecture on Planning  C A B C B   A  .y) ^ Clear(x) ^ ¬On(b.x.Table) whenever the effects are slightly different AI Principles.g. b) to indicate that there is no block x on block b Also we actions like Move(C.x) ^ ¬Clear(y) STRIPS doesn¶t allow us to use full first order logic So we have to create a Clear(b) predicate.x) ^ Clear(b) ^ Clear(y) Effects: On(b.x.A) create inconsistent effects And we may need additional special operators e. Move_to_table(b.STRIPS operators Action(Move(b. rather than use x On( x.

Lecture on Planning .C)  In the state description anything that isn¶t stated is assumed to be false (Closed World Assumption)  So only +ve literals are allowed in the state description  Only ground literals are allowed in the goals. So not On(Next_Alpha(x).The STRIPS state and goal descriptions State On(A.Table) On(C.C)  The goal description specifies a set of states AI Principles.B) On(B.A) Clear(B) On(B.Table) Clear(C) Goal C A B A B C On(A.C) or On(x.

Table) Clear(C) On(A.A) On(C.A) Clear(B) On(B.x) ^¬Clear(y) Clear(A) ¬On(C.B)^^Clear(x) ^^¬On(b.x.y))Action(Move(C.B) On(C.x) ^^¬Clear(y) On(b.x) Clear(C) Clear(B) Preconditions: On(C. Lecture on Planning .Table) Clear(C) C A B Action(Move(C.y))- A C B  Apply Move(C.y) Clear(A) ¬On(C.x.A.A) ^ ¬Clear(y) Effects: On(C.y) ^ Clear(x) ^^¬On(C.B))Action(Move(b.y))Action(Move(C.A) ¬Clear(B) AI Principles.Table) On(C.B) Clear(B) Clear(A) State On(B.x) ^ Clear(C) ^ Clear(y) Clear(y) On(C.Application of an action State On(A.Table) On(C.A.A)^^Clear(b) ^^Clear(y) On(b.A.

Table) On(C.Forward Chaining Search Move(C.Table) On(C.B) Clear(C) Clear(A) AI Principles. Lecture on Planning .Table) Clear(A) Clear(C) Clear(B) On(A.A.Table) On(B.Table) On(B.A) Clear(C) Clear(B) Move(C. Table) On(A.B) On(A.A.Table) On(B.Table) On(C.

Forward Chaining Search  Because of the restrictions on STRIPS representation there can only be a finite number of states  You need a graph search algorithm (e.g. A*)  You need a decent heuristic to control search behaviour  Forward search is inefficient in the number of irrelevant actions there are. Lecture on Planning . D C A B F E AI Principles.

x.x.Table) On(C.x) ^ ¬Clear(y) A {x/Table} B C Move(A.y))Preconditions: On(b.C) On(A.x) ^ Clear(b) ^ Clear(y) Effects: On(b.Table) Clear(C) On(A.y) ^ Clear(x) ^ ¬On(b.B) AI Principles.A) Clear(B) C A B Action(Move(b.B) On(B. Lecture on Planning .Backward Chaining Search Initial State: On(B.

y) ^ Clear(x) ^ ¬On(b.B) AI Principles.x) ^ ¬Clear(y) On(A. Lecture on Planning .B) B C A On(B.C) On(A.Backward Chaining Search Initial State: On(B.y))Preconditions: On(b.Table) On(C.x.Table) Clear(A) Clear(B) On(B.Table) Clear(C) On(A.C) A {x/Table} B C Move(A.x.A) Clear(B) C A B Action(Move(b.x) ^ Clear(b) ^ Clear(y) Effects: On(b.

A) Clear(B) C A B Action(Move(b.y) ^ Clear(x) ^ ¬On(b.A.A) Clear(C) AI Principles.y))Preconditions: On(b.B) On(A.x.x.Table) Clear(B) On(B.x) ^ ¬Clear(y) On(A.Table) On(C.C) A {x/Table} B C B C A Move(b.B) B C A On(B.Table) Clear(C) On(A.C) On(A.x) {x/C.Backward Chaining Search Initial State: On(B. b/B} Move(A.x) ^ Clear(b) ^ Clear(y) Effects: On(b. Lecture on Planning .Table) Clear(A) Clear(B) On(B.

Table) Clear(A) Clear(B) On(B.A) Clear(B) C A B Action(Move(b.C) On(A.Table) On(B.C) A {x/Table} B C B C A Move(b.Table) Clear(B) Clear(C) Clear(A) {x/Table} On(A.Table) Clear(B) On(B.A. b/B} Move(A.x) ^ Clear(b) ^ Clear(y) Effects: On(b. Lecture on Planning .A) Clear(C) AI Principles.Backward Chaining Search Initial State: On(B.x.C) On(A.y))Preconditions: On(b.x.x.x) {x/C.B) On(A.x) ^ ¬Clear(y) C A B Move(B.Table) Clear(C) On(A.y) ^ Clear(x) ^ ¬On(b.B) B C A On(B.Table) On(C.

Lecture on Planning .Backward Chaining Search  An operator is chosen that achieves one of the unachieved parts of the goal state  Variables in the action are bound to entities in the world  When an operator is applied  Its positive effects are deleted to create the predecessor  Each precondition is added to the list of sub-goals  A sub-goal that is not true in the initial state is then chosen to be achieved AI Principles.

the Sussman Anomaly) Non-linear planners attempt to solve this problem     C A B AI Principles. Lecture on Planning A B C .g. 1975). but it is incomplete (not guaranteed to find solutions when they exist) because it doesn¶t interleave the solutions.Linear vs non-linear planning  In early planners it was assumed that sub-goals could be solved completely independently And the plans produced for these sub-goals could then be sequenced This approach is called Linear Planning (Sacerdoti. Non-interleaved planners can¶t solve some problems (e.

Conclusion  Planning is an important area of AI. succeeded by ADL and the overarching framework of PDDL  State space planning still requires search. State of the art planners are now beyond human level performance. Lecture on Planning . and also planning under uncertainty (decision theoretic planning) (1997 on). and then the resurgence of state space planning (1996 on).  Specialist representations of action effects have been used to overcome issues of representational and inferential inefficiency  The STRIPS representation has been influential. satisfiability planners (1992 on). either forward or backward chaining  This is the ancient history of planning. graph planning (1995 on). later on came partial order planning (1975-1995). AI Principles.