1 chapter 4 state-space planning. 2 motivation nearly all planning procedures are search procedures...
TRANSCRIPT
![Page 1: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/1.jpg)
1
Chapter 4 State-Space Planning
![Page 2: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/2.jpg)
2
Motivation Nearly all planning procedures are search procedures Different planning procedures have different search spaces
Two examples: State-space planning
Each node represents a state of the world
» A plan is a path through the space Plan-space planning
Each node is a set of partially-instantiated operators, plus some constraints
» Impose more and more constraints, until we get a plan
![Page 3: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/3.jpg)
3
Outline State-space planning
Forward search Backward search Lifting STRIPS Block-stacking
![Page 4: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/4.jpg)
4
Planning: Search Space
AC
B A B C A CB
CBA
BA
C
BAC
B CA
CAB
ACB
BCA
A BC
AB
C
ABC
![Page 5: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/5.jpg)
5
Forward Search
take c3
move r1
take c2 …
…
![Page 6: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/6.jpg)
6
Forward Search (Recursive Version)
![Page 7: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/7.jpg)
7
Properties Forward-search is sound
for any plan returned by any of its nondeterministic traces, this plan is guaranteed to be a solution
Forward-search also is complete if a solution exists then at least one of Forward-search’s
nondeterministic traces will return a solution.
![Page 8: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/8.jpg)
8
Deterministic Implementations Some deterministic implementations
of forward search: breadth-first search depth-first search best-first search (e.g., A*) greedy search
Breadth-first and best-first search are sound and complete But they usually aren’t practical because they require too much memory Memory requirement is exponential in the length of the solution
In practice, more likely to use depth-first search or greedy search Worst-case memory requirement is linear in the length of the solution In general, sound but not complete
» But classical planning has only finitely many states
» Thus, can make depth-first search complete by doing loop-checking
s0
s1
s2
s3
a1
a2
a3
s4
s5
sg
a4
a5 …
![Page 9: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/9.jpg)
9
Branching Factor of Forward Search
Forward search can have a very large branching factor E.g., many applicable actions that don’t progress toward goal
Why this is bad: Deterministic implementations can waste time trying lots of
irrelevant actions Need a good heuristic function and/or pruning procedure
See Section 4.5 (Domain-Specific State-Space Planning)and Part III (Heuristics and Control Strategies)
a3
a1
a2
…a1 a2 a50a3
initial state goal
![Page 10: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/10.jpg)
10
Backward Search
For forward search, we started at the initial state and computed state transitions new state = (s,a)
For backward search, we start at the goal and compute inverse state transitions new set of subgoals = –1(g,a)
To define -1(g,a), must first define relevance: An action a is relevant for a goal g if
» a makes at least one of g’s literals true
• g effects(a) ≠ » a does not make any of g’s literals false
• g+ effects–(a) = and g– effects+(a) =
![Page 11: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/11.jpg)
11
Inverse State Transitions
If a is relevant for g, then –1(g,a) = (g – effects(a)) precond(a)
Otherwise –1(g,a) is undefined
Example: suppose that g = {on(b1,b2), on(b2,b3)} a = stack(b1,b2)
What is –1(g,a)?
![Page 12: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/12.jpg)
12
g0
g1
g2
g3
a1
a2
a3
g4
g5
s0
a4
a5
![Page 13: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/13.jpg)
13
Backward Search (Recursive Version)
![Page 14: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/14.jpg)
14
Efficiency of Backward Search
Backward search can also have a very large branching factor E.g., many relevant actions that don’t regress toward the initial
state As before, deterministic implementations can waste lots of time
trying all of them
a3
a1
a2
…a1 a2 a50a3
initial state goal
![Page 15: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/15.jpg)
15
Lifting
Can reduce the branching factor of backward search if we partially instantiate the operators this is called lifting
q(a)foo(a,y)
p(a,y)
q(a)
foo(x,y)precond: p(x,y)effects: q(x)
foo(a,a)
foo(a,b)
foo(a,c)
…
p(a,a)
p(a,b)
p(a,c)
![Page 16: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/16.jpg)
16
Lifted Backward Search More complicated than Backward-search
Have to keep track of what substitutions were performed But it has a much smaller branching factor
![Page 17: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/17.jpg)
17
The Search Space is Still Too Large Lifted-backward-search generates a smaller search space than
Backward-search, but it still can be quite large Suppose a, b, and c are independent, d must precede all of
them, and d cannot be executed We’ll try all possible orderings of a, b, and c before realizing
there is no solution More about this in Chapter 5 (Plan-Space Planning)
c
b
a
goal
a b
b a
b a
a c
b c
c b
d
d
d
d
d
d
![Page 18: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/18.jpg)
18
STRIPS π the empty plan do a modified backward search from g
instead of -1(s,a), each new set of subgoals is just precond(a) whenever you find an action that’s executable in the current
state, then go forward on the current search path as far as possible, executing actions and appending them to π
repeat until all goals are satisfied
g
g1
g2
g3
a1
a2
a3
g4
g5
g3
a4
a5
current search path
a6
π = a6, a4s = ((s0,a6),a4)
g6
a3
satisfied in s0
![Page 19: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/19.jpg)
19
A ground version of the STRIPS algorithm.
![Page 20: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/20.jpg)
20
unstack(x,y)Pre: on(x,y), clear(x), handemptyEff: ~on(x,y), ~clear(x), ~handempty,
holding(x), clear(y)
stack(x,y)Pre: holding(x), clear(y)Eff: ~holding(x), ~clear(y),
on(x,y), clear(x), handempty
pickup(x)Pre: ontable(x), clear(x), handemptyEff: ~ontable(x), ~clear(x), ~handempty, holding(x)
putdown(x)Pre: holding(x)Eff: ~holding(x), ontable(x), clear(?x), handempty
Quick Review of Blocks World
c
a b
ca b
c
a b
c
a b
c
a b
![Page 21: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/21.jpg)
21
Current state:Current state: ontable(A), on(C, B), ontable(B), ontable(D), clear(A), clear(C), clear(D), ontable(A), on(C, B), ontable(B), ontable(D), clear(A), clear(C), clear(D),
he.he. GoalGoal
on(A,C), on(D, A)on(A,C), on(D, A)
STRIPS PlanningSTRIPS Planning
A
C
B D
C
A
D
![Page 22: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/22.jpg)
22
ontable(A), on(C, B), ontable(B), ontable(D), clear(A), clear(C), clear(D), he.
STRIPS PlanningSTRIPS Planning
on(A,C), on(D,A)
Current State
Plan: Goalstack:
on(A,C)
Stack(A, C)
holding(A), clear(C)
holding(A)
Pickup(A)
ontable(A), clear(A), he
ACB D
CAD
![Page 23: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/23.jpg)
23
STRIPS PlanningSTRIPS Planning
on(A,C), on(D,A)
ontable(A), on(C, B), ontable(B), ontable(D), clear(A), clear(C), clear(D), he.
Current State
Plan: Goalstack:
on(A,C)
Stack(A, C)
holding(A), clear(C)
holding(A)
Pickup(A)
ACB D
CAD
Pickup(A)
Pre: ontable(A), clear(A), he
Del: ontable(A), clear(A), he,
Add: holding(A)
holding(A), on(C, B), ontable(B), ontable(D), clear(C), clear(D).
![Page 24: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/24.jpg)
24
holding(A), on(C, B), ontable(B), ontable(D), clear(A), clear(C), clear(D).on(A,C), on(C, B), ontable(B), ontable(D), clear(A), clear(D), he.
STRIPS PlanningSTRIPS Planning
on(A,C), on(D,A)
Current State
Plan: Goalstack:
on(A,C)
Stack(A, C)
A
CB D
CAD
Stack(A, C)
Pre: holding(A), clear(C)
Del: holding(A), clear(C)
Add: on(A, C), he
Pickup(A)
![Page 25: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/25.jpg)
25
on(A,C), on(C, B), ontable(B), ontable(D), clear(A), clear(D), he.
STRIPS PlanningSTRIPS Planning
on(A,C), on(D,A)
Current State
Plan: Goalstack:
on(D, A)
Stack(D,A)
holding(D), clear(A)
holding(D)
Pickup(D)
ontable(D), clear(D), he
ACB D
CAD
on(A,C), on(C, B), ontable(B), holding(D), clear(A)on(A,C), on(C, B), ontable(B), holding(D), clear(A)
Stack(A, C)
Pickup(A)
![Page 26: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/26.jpg)
26
STRIPS PlanningSTRIPS Planning
on(A,C), on(D,A)
Current State
Plan: Goalstack:
on(D, A)
Stack(D,A)
holding(D), clear(A)
holding(D)
Pickup(D)
ACB
D
CAD
on(A,C), on(C, B), ontable(B), holding(D), clear(A)
Stack(A, C)
Pickup(A)
on(A,C), on(C, B), ontable(B), on(D,A), clear(D), he
![Page 27: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/27.jpg)
27
ontable(A), on(C, B), ontable(B), ontable(D), clear(A), clear(C), clear(D), he.ontable(A), on(C, B), ontable(B), holding(D), clear(A), clear(C)
STRIPS Planning: Getting it Wrong!STRIPS Planning: Getting it Wrong!
on(A,C), on(D,A)
Current State
Plan: Goalstack:
on(D,A)
Stack(D, A)
holding(D), clear(A)
holding(D)
Pickup(D)
ontable(D), clear(D), he
ACB D
CAD
![Page 28: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/28.jpg)
28
ontable(A), on(C, B), ontable(B), on(D, A), clear(C), clear(D), he
STRIPS Planning: Getting it Wrong!STRIPS Planning: Getting it Wrong!
on(A,C), on(D,A)
ontable(A), on(C, B), ontable(B), holding(D), clear(C)
Current State
Plan: Goalstack:
on(D,A)
Stack(D, A)
Pickup(D)
ACB
D
CAD
![Page 29: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/29.jpg)
29
STRIPS Planning: Getting it Wrong!STRIPS Planning: Getting it Wrong!
on(A,C), on(D,A)
ontable(A), on(C, B), ontable(B), on(D,A), clear(C), clear(D), he.
Current State
Plan: Goalstack:
Stack(D, A)
Pickup(D)
ACB
D
CAD
Now What?
– We chose the wrong goal first
– A is no longer clear.
– stacking D on A messes up the preconditions for actions to accomplish on(A, C)
– either have to backtrack, or else we must undo the previous actions
![Page 30: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/30.jpg)
30
The Sussman Anomaly
Initial state goal
On this problem, STRIPS can’t produce an irredundant solution Try it and see
c
a b c
a
b
![Page 31: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/31.jpg)
31
The Register Assignment Problem
State-variable formulation:
Initial state: {value(r1)=3, value(r2)=5, value(r3)=0}
Goal: {value(r1)=5, value(r2)=3}
Operator: assign(r,v,r’,v’)
precond: value(r)=v, value(r’)=v’
effects: value(r)=v’
STRIPS cannot solve this problem at all
![Page 32: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/32.jpg)
32
How to Fix?
Several ways:
Do something other than state-space search
» e.g., Chapters 5–8
Use forward or backward state-space search, with domain-specific knowledge to prune the search space
» Can solve both problems quite easily this way
» Example: block stacking using forward search
![Page 33: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/33.jpg)
33
Domain-Specific Knowledge A blocks-world planning problem P = (O,s0,g) is solvable
if s0 and g satisfy some simple consistency conditions
» g should not mention any blocks not mentioned in s0
» a block cannot be on two other blocks at once
» etc.
• Can check these in time O(n log n) If P is solvable, can easily construct a solution of length O(2m),
where m is the number of blocks Move all blocks to the table, then build up stacks from the
bottom
» Can do this in time O(n) With additional domain-specific knowledge can do even better …
![Page 34: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/34.jpg)
34
Additional Domain-Specific Knowledge
A block x needs to be moved if any of the following is true: s contains ontable(x) and g contains on(x,y) - see a below s contains on(x,y) and g contains ontable(x) - see d below s contains on(x,y) and g contains on(x,z) for some y≠z
» see c below s contains on(x,y) and y needs to be moved - see e below
initial state goal
e
d
d
ba
c c
a
b
![Page 35: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/35.jpg)
35
Domain-Specific Algorithmloop
if there is a clear block x such that x needs to be moved and x can be moved to a place where it won’t need to be
movedthen move x to that place
else if there is a clear block x such that x needs to be movedthen move x to the table
else if the goal is satisfiedthen return the plan
else return failurerepeat
initial state goal
e
d
d
ba
c c
a
b
![Page 36: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/36.jpg)
36
Easily Solves the Sussman Anomalyloop
if there is a clear block x such that x needs to be moved and x can be moved to a place where it won’t need to be
movedthen move x to that place
else if there is a clear block x such that x needs to be movedthen move x to the table
else if the goal is satisfiedthen return the plan
else return failurerepeat
initial state goal
ba
c
c
a
b
![Page 37: 1 Chapter 4 State-Space Planning. 2 Motivation Nearly all planning procedures are search procedures Different planning procedures have different search](https://reader030.vdocuments.mx/reader030/viewer/2022032702/56649cf75503460f949c6c9b/html5/thumbnails/37.jpg)
37
Properties The block-stacking algorithm:
Sound, complete, guaranteed to terminate
Runs in time O(n3)
» Can be modified to run in time O(n)
Often finds optimal (shortest) solutions But sometimes only near-optimal
» Recall that PLAN LENGTH for the blocks world is NP-complete