Planning
Planning
Planning
Outline
Partial-order planning
Conditional planning
Divide-and-conquer by subgoaling
STRIPS
Standford Research Institute Problem Solver
Tidily arranged actions descriptions
Efficient algorithms
STRIPS: States
Example
At(Home), Have(Bread)
STRIPS: States
Example
At(Home), Have(Bread)
Example
State: At(Home), Have(Bread)
Implicitly: ¬Have(Milk), ¬Have(Bananas), ¬Have(Drill)
STRIPS: Operators
Operator schema
Operator applicability
Subst(precond(o)) ⊆ s
STRIPS: Operator Application
Operator applicability
Subst(precond(o)) ⊆ s
Example
Resulting state
Resulting state
Formally
Example
Application of
Drive(a, b)
precond: At(a), Road(a, b)
effect: At(b), ¬At(a)
STRIPS: Operator Application
Example
Application of
Drive(a, b)
precond: At(a), Road(a, b)
effect: At(b), ¬At(a)
to state
Example
Application of
Drive(a, b)
precond: At(a), Road(a, b)
effect: At(b), ¬At(a)
to state
Planning problem
Planning problem
Planning problem
Open condition
Open condition
Note
Note
Different paths in partial plan are not alternative plans,
but alternative sequences of actions
Partially Ordered Plans
Complete plan
Complete plan
Si ≺ Sj
c ∈ effect(Si)
Complete plan
Si ≺ Sj
c ∈ effect(Si)
Clobberer / threat
A potentially intervening step that destroys the condition achieved
by a causal link
Clobbering and Promotion/Demotion
Example
Demotion
Promotion
choose a step Sadd from operators or STEPS( plan) that has c as an effect
if there is no such step then fail
c
add the causal link Sadd −→ Sneed to LINKS( plan)
add the ordering constraint Sadd ≺ Sneed to ORDERINGS( plan)
if Sadd is a newly added step from operators then
add Sadd to STEPS( plan)
add Start ≺ Sadd ≺ Finish to ORDERINGS( plan)
POP Algorithm
(Cont’d)
procedure RESOLVE-THREATS(plan)
Incomplete information
Incomplete information
Incorrect information
Current state incorrect Example: spare NOT intact
Incomplete information
Incorrect information
Current state incorrect Example: spare NOT intact
Qualification problem
Conditional planning
Plan to obtain information (observation actions)
Conditional planning
Plan to obtain information (observation actions)
Monitoring/Replanning
[. . . , If(p,[thenPlan], [elsePlan]), . . .]
Check p against current knowledge base, execute thenPlan or elsePlan
Conditional Planning
[. . . , If(p,[thenPlan], [elsePlan]), . . .]
Check p against current knowledge base, execute thenPlan or elsePlan
Conditional planning
Execution monitoring
Execution monitoring
Action monitoring
Execution monitoring
Action monitoring
Consequence of failure
Need to replan
Preconditions for Remaining Plan
Replanning
Simplest
Simplest
Better
plans
POP algorithm