Chapter 17 Planning Based on Model Checking Dana S. Nau University - - PowerPoint PPT Presentation

chapter 17 planning based on model checking
SMART_READER_LITE
LIVE PREVIEW

Chapter 17 Planning Based on Model Checking Dana S. Nau University - - PowerPoint PPT Presentation

Lecture slides for Automated Planning: Theory and Practice Chapter 17 Planning Based on Model Checking Dana S. Nau University of Maryland 1:19 PM February 29, 2012 Dana Nau: Lecture slides for Automated Planning 1 Licensed under the


slide-1
SLIDE 1

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 1

Chapter 17 Planning Based on Model Checking

Dana S. Nau University of Maryland 1:19 PM February 29, 2012

Lecture slides for Automated Planning: Theory and Practice

slide-2
SLIDE 2

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 2

Motivation

  • Actions with multiple possible
  • utcomes

◆ Action failures

» e.g., gripper drops its load

◆ Exogenous events

» e.g., road closed

  • Nondeterministic systems are like Markov Decision

Processes (MDPs), but without probabilities attached to the outcomes

◆ Useful if accurate probabilities aren’t available, or if

probability calculations would introduce inaccuracies

a c b grasp(c) a c b Intended

  • utcome

a b Unintended

  • utcome
slide-3
SLIDE 3

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 3

Nondeterministic Systems

  • Nondeterministic system: a triple Σ = (S, A, γ)

◆ S = finite set of states ◆ A = finite set of actions ◆ γ: S × A → 2s

  • Like in the previous chapter, the book doesn’t commit to any particular

representation

◆ It only deals with the underlying semantics ◆ Draw the state-transition graph explicitly

  • Like in the previous chapter, a policy is a function from states into actions

◆ π: S → A

  • Notation: Sπ = {s | (s,a) ∈ π}

◆ In some algorithms, we’ll temporarily have nondeterministic policies

» Ambiguous: multiple actions for some states

◆ π: S → 2A, or equivalently, π ⊆ S × A ◆ We’ll always make these policies deterministic before the algorithm

terminates

slide-4
SLIDE 4

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 4

Goal Start

2

  • Robot r1 starts

at location l1

  • Objective is to

get r1 to location l4

  • π1 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4))}
  • π2 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4)),

(s5, move(r1,l3,l4))}

  • π3 = {(s1, move(r1,l1,l4))}

Example

slide-5
SLIDE 5

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 5

Goal Start

2

  • Robot r1 starts

at location l1

  • Objective is to

get r1 to location l4

  • π1 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4))}
  • π2 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4)),

(s5, move(r1,l3,l4))}

  • π3 = {(s1, move(r1,l1,l4))}

Example

slide-6
SLIDE 6

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 6

Goal Start

2

  • Robot r1 starts

at location l1

  • Objective is to

get r1 to location l4

  • π1 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4))}
  • π2 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4)),

(s5, move(r1,l3,l4))}

  • π3 = {(s1, move(r1,l1,l4))}

Example

slide-7
SLIDE 7

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 7

Goal Start

2

Execution Structures

  • Execution structure

for a policy π:

◆ The graph of all of

π’s execution paths

  • Notation: Σπ = (Q,T)

◆ Q ⊆ S ◆ T ⊆ S × S

  • π1 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4))}
  • π2 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4)),

(s5, move(r1,l3,l4))}

  • π3 = {(s1, move(r1,l1,l4))}

s2 s1 s5 s3 s4

slide-8
SLIDE 8

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 8

Execution Structures

  • Execution structure

for a policy π:

◆ The graph of all of

π’s execution paths

  • Notation: Σπ = (Q,T)

◆ Q ⊆ S ◆ T ⊆ S × S

  • π1 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4))}
  • π2 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4)),

(s5, move(r1,l3,l4))}

  • π3 = {(s1, move(r1,l1,l4))}

s2 s1 s5 s3 s4

slide-9
SLIDE 9

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 9

Goal Start

2

Execution Structures

  • Execution structure

for a policy π:

◆ The graph of all of

π’s execution paths

  • Notation: Σπ = (Q,T)

◆ Q ⊆ S ◆ T ⊆ S × S

  • π1 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4))}
  • π2 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4)),

(s5, move(r1,l3,l4))}

  • π3 = {(s1, move(r1,l1,l4))}

s2 s1 s5 s3 s4

slide-10
SLIDE 10

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 10

Execution Structures

  • Execution structure

for a policy π:

◆ The graph of all of

π’s execution paths

  • Notation: Σπ = (Q,T)

◆ Q ⊆ S ◆ T ⊆ S × S

  • π1 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4))}
  • π2 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4)),

(s5, move(r1,l3,l4))}

  • π3 = {(s1, move(r1,l1,l4))}

s2 s1 s5 s3 s4

slide-11
SLIDE 11

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 11

Goal Start

2

Execution Structures

  • Execution structure

for a policy π:

◆ The graph of all of

π’s execution paths

  • Notation: Σπ = (Q,T)

◆ Q ⊆ S ◆ T ⊆ S × S

  • π1 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4))}
  • π2 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4)),

(s5, move(r1,l3,l4))}

  • π3 = {(s1, move(r1,l1,l4))}

s1 s4

slide-12
SLIDE 12

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 12

Execution Structures

  • Execution structure

for a policy π:

◆ The graph of all of

π’s execution paths

  • Notation: Σπ = (Q,T)

◆ Q ⊆ S ◆ T ⊆ S × S

  • π1 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4))}
  • π2 = {(s1, move(r1,l1,l2)), (s2, move(r1,l2,l3)), (s3, move(r1,l3,l4)),

(s5, move(r1,l3,l4))}

  • π3 = {(s1, move(r1,l1,l4))}

s1 s4

slide-13
SLIDE 13

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 13

  • Weak solution: at least one execution path reaches a goal
  • Strong solution: every execution path reaches a goal
  • Strong-cyclic solution: every fair execution path reaches a goal

◆ Don’t stay in a cycle forever if there’s a state-transition out of it

s0 s1 s3 Goal

a0 a1 a2

s2

a3

s0 s1 s3 Goal

a0 a1 a2

s2 s0 s1 s3 Goal

a0 a1 a2

s2 Goal

Types of Solutions

a3

slide-14
SLIDE 14

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 14

Finding Strong Solutions

  • Backward breadth-first search
  • StrongPreImg(S)

= {(s,a) : γ(s,a) ≠ ∅, γ(s,a) ⊆ S}

◆ all state-action pairs for which

all of the successors are in S

  • PruneStates(π,S)

= {(s,a) ∈ π : s ∉ S}

◆ S is the set of states we’ve

already solved

◆ keep only the state-action

pairs for other states

  • MkDet(π')

◆ π' is a policy that may be nondeterministic ◆ remove some state-action pairs if

necessary, to get a deterministic policy

slide-15
SLIDE 15

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 15

π = failure π' = ∅ Sπ' = ∅ Sg ∪ Sπ' = {s4}

Goal Start s4

2

Example

slide-16
SLIDE 16

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 16

Start

π = failure π' = ∅ Sπ' = ∅ Sg ∪ Sπ' = {s4} π'' ← PreImage = {(s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))}

Goal s5 s3 s4

2

Example

slide-17
SLIDE 17

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 17

Start

π = failure π' = ∅ Sπ' = ∅ Sg ∪ Sπ' = {s4} π'' ← PreImage = {(s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} π ← π' = ∅ π' ← π' U π'' = {(s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))}

Goal s5 s3 s4

2

Example

slide-18
SLIDE 18

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 18

Example

Goal Start

π = ∅ π' = {(s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} Sπ' = {s3,s5} Sg ∪ Sπ' = {s3,s4,s5}

s5 s3 s4

2

slide-19
SLIDE 19

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 19

π = ∅ π' = {(s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} Sπ' = {s3,s5} Sg ∪ Sπ' = {s3,s4,s5} PreImage ← {(s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4)), (s3,move(r1,l4,l3)), (s5,move(r1,l4,l5))} π'' ← {(s2,move(r1,l2,l3))} π ← π' = {(s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} π' ← {(s2,move(r1,l2,l3), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))}

Goal Start s5 s3 s4 s2

2

Example

slide-20
SLIDE 20

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 20

π = {(s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} π' = {(s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} Sπ' = {s2,s3,s5} Sg ∪ Sπ' = {s2,s3,s4,s5}

Goal Start s2 s5 s3 s4

2

Example

slide-21
SLIDE 21

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 21

Goal Start s2 s5 s3 s4 s1

2

Example

π = {(s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} π' = {(s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} Sπ' = {s2,s3,s5} Sg ∪ Sπ' = {s2,s3,s4,s5} π'' ← {(s1,move(r1,l1,l2))} π ← π' = {(s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} π' ← {(s1,move(r1,l1,l2)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))}

slide-22
SLIDE 22

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 22

π = {(s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} π' = {(s1,move(r1,l1,l2)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} Sπ' = {s1,s2,s3,s5} Sg ∪ Sπ' = {s1,s2,s3,s4,s5}

Goal Start s2 s5 s3 s4 s1

2

Example

slide-23
SLIDE 23

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 23

π = {(s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} π' = {(s1,move(r1,l1,l2)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} Sπ' = {s1,s2,s3,s5} Sg ∪ Sπ' = {s1,s2,s3,s4,s5} S0 ⊆ Sg ∪ Sπ' MkDet(π') = π'

Goal Start s2 s1 s5 s3 s4

2

Example

slide-24
SLIDE 24

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 24

Finding Weak Solutions

  • Weak-Plan is just like Strong-Plan except for this:
  • WeakPreImg(S) = {(s,a) : γ(s,a) i S ≠ ∅}

◆ at least one successor is in S

Weak Weak

slide-25
SLIDE 25

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 25

π = failure π' = ∅ Sπ' = ∅ Sg ∪ Sπ' = {s4}

Example

Goal Start s4

2

Weak Weak

slide-26
SLIDE 26

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 26

Example

Start

π = failure π' = ∅ Sπ' = ∅ Sg ∪ Sπ' = {s4} π'' = PreImage = {(s1,move(r1,l1,l4)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} π ← π' = ∅ π' ← π' U π'' = {(s1,move(r1,l1,l4)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))}

Goal s5 s3 s4

2

s1 Weak Weak

slide-27
SLIDE 27

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 27

Example

Goal Start

π = ∅ π' = {(s1,move(r1,l1,l4)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4))} Sπ' = {s1,s3,s5} Sg ∪ Sπ' = {s1,s3,s4,s5} S0 ⊆ Sg ∪ Sπ' MkDet(π') = π'

s5 s3 s4

2

s1 Weak Weak

slide-28
SLIDE 28

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 28

Finding Strong-Cyclic Solutions

  • Begin with a “universal policy” π' that contains all state-action pairs
  • Repeatedly, eliminate state-action pairs that take us to bad states

◆ PruneOutgoing removes state-action pairs that go to states not in Sg∪Sπ

» PruneOutgoing(π,S) = π – {(s,a) ∈ π : γ(s,a) ⊆ S∪Sπ

◆ PruneUnconnected removes states from which it is impossible to get to Sg

» Start with π' = ∅, compute fixpoint of π' ← π ∩ WeakPreImg(Sg∪Sπ’)

slide-29
SLIDE 29

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 29

Finding Strong-Cyclic Solutions

Once the policy stops changing,

  • If it’s not a solution, return

failure

  • RemoveNonProgress

removes state-action pairs that don’t go toward the goal

◆ implement as

backward search from the goal

  • MkDet makes sure

there’s only one action for each state

Goal Start s5 s3 s4 s2

2

s1 s6

at(r1,l6)

slide-30
SLIDE 30

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 30

π ← ∅ π' ← {(s,a) : a is applicable to s}

Goal Start s5 s3 s4 s2

2

s1 s6

at(r1,l6)

Example 1

slide-31
SLIDE 31

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 31

π ← ∅ π' ← {(s,a) : a is applicable to s} π ← {(s,a) : a is applicable to s} PruneOutgoing(π',Sg) = π' PruneUnconnected(π',Sg) = π' RemoveNonProgress(π') = ?

Goal Start s5 s3 s4 s2

2

s1 s6

at(r1,l6)

Example 1

slide-32
SLIDE 32

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 32

π ← ∅ π' ← {(s,a) : a is applicable to s} π ← {(s,a) : a is applicable to s} PruneOutgoing(π',Sg) = π' PruneUnconnected(π',Sg) = π' RemoveNonProgress(π') = as shown

Start s5 s3 s4 s2

2

s1 s6 Goal

at(r1,l6)

Example 1

slide-33
SLIDE 33

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 33

π ← ∅ π' ← {(s,a) : a is applicable to s} π ← {(s,a) : a is applicable to s} PruneOutgoing(π',Sg) = π' PruneUnconnected(π',Sg) = π' RemoveNonProgress(π') = as shown MkDet(…) = either

{(s1,move(r1,l1,l4), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4), (s4,move(r1,l4,l6), (s5,move(r1,l5,l4)}

  • r {(s1,move(r1,l1,l2),

(s2,move(r1,l2,l3)), (s3,move(r1,l3,l4), (s4,move(r1,l4,l6), (s5,move(r1,l5,l4)} Start s5 s3 s4 s2

2

s1 s6

at(r1,l6)

Goal

Example 1

slide-34
SLIDE 34

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 34

π ← ∅ π' ← {(s,a) : a is applicable to s}

Goal Start s3 s4 s2

2

s1 s6

at(r1,l6)

Example 2: no applicable actions at s5

s5

slide-35
SLIDE 35

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 35

π ← ∅ π' ← {(s,a) : a is applicable to s} π ← {(s,a) : a is applicable to s} PruneOutgoing(π',Sg) = …

Goal Start s3 s4 s2

2

s1 s6

at(r1,l6)

s5

Example 2: no applicable actions at s5

slide-36
SLIDE 36

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 36

π ← ∅ π' ← {(s,a) : a is applicable to s} π ← {(s,a) : a is applicable to s} PruneOutgoing(π',Sg) = π'

Goal Start s3 s4 s2

2

s1 s6

at(r1,l6)

s5

Example 2: no applicable actions at s5

slide-37
SLIDE 37

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 37

π ← ∅ π' ← {(s,a) : a is applicable to s} π ← {(s,a) : a is applicable to s} PruneOutgoing(π',Sg) = π' PruneUnconnected(π',Sg) = as shown

Goal Start s3 s4 s2

2

s1 s6

at(r1,l6)

Example 2: no applicable actions at s5

slide-38
SLIDE 38

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 38

π ← ∅ π' ← {(s,a) : a is applicable to s} π ← {(s,a) : a is applicable to s} PruneOutgoing(π',Sg) = π' PruneUnconnected(π',Sg) = as shown π' ← as shown

Goal Start s3 s4 s2

2

s1 s6

at(r1,l6)

Example 2: no applicable actions at s5

slide-39
SLIDE 39

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 39

π' ← as hown π ← π' PruneOutgoing(π',Sg) = π' PruneUnconnected(π',Sg) = π' so π = π' RemoveNonProgress(π') = …

Goal Start s3 s4 s2

2

s1 s6

at(r1,l6)

Example 2: no applicable actions at s5

slide-40
SLIDE 40

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 40

π' ← shown π ← π' PruneOutgoing(π',Sg) = π' PruneUnconnected(π'',Sg) = π' so π = π' RemoveNonProgress(π') = as shown MkDet(shown) = no change

Goal Start s3 s4 s2

2

s1 s6

at(r1,l6)

Example 2: no applicable actions at s5

slide-41
SLIDE 41

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 41

Planning for Extended Goals

  • Here, “extended” means temporally extended

◆ Constraints that apply to some sequence of states

  • Examples:

◆ want to move to l3,

and then to l5

◆ want to keep going

back and forth between l3 and l5

Goal Start

move(r1,l2,l1)

wait wait wait wait

2

slide-42
SLIDE 42

Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 42

Planning for Extended Goals

  • Context: the internal state of the controller
  • Plan: (C, c0, act, ctxt)

◆ C = a set of execution contexts ◆ c0 is the initial context ◆ act: S × C → A ◆ ctxt: S × C × S → C

  • Sections 17.3 extends the ideas in Sections 17.1 and 17.2 to deal with extended

goals

◆ We’ll skip the details