Transcript
Page 1: Chapter 17 Planning Based on Model Checking

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

Chapter 17Planning Based on Model Checking

Dana S. Nau

Dept. of Computer Science, and

Institute for Systems Research

University of Maryland

Lecture slides forAutomated Planning: Theory and Practice

Page 2: Chapter 17 Planning Based on Model Checking

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

Motivation

Actions with multiple possibleoutcomes Action failures

» e.g., gripper drops its load Exogenous events

» e.g., road closed 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

acb

Graspblock c

a

c

b

Intendedoutcome

a b c

Unintendedoutcome

Page 3: Chapter 17 Planning Based on Model Checking

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

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

At certain points we will also have nondeterministic policies π: S 2A, or equivalently, π S A

Page 4: Chapter 17 Planning Based on Model Checking

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

Robot r1 startsat location l1

Objective is toget 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))}

Goal

Start

Example

2

Page 5: Chapter 17 Planning Based on Model Checking

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

Robot r1 startsat location l1

Objective is toget 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))}

Goal

Start

Example

2

Page 6: Chapter 17 Planning Based on Model Checking

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

Robot r1 startsat location l1

Objective is toget 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))}

Goal

Start

Example

2

Page 7: Chapter 17 Planning Based on Model Checking

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

Execution Structures

Execution structurefor 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))}

Goal

Start

s2

s1

s5

s3

s4

2

Page 8: Chapter 17 Planning Based on Model Checking

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

Execution Structures

Execution structurefor 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

Page 9: Chapter 17 Planning Based on Model Checking

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

Execution Structures

Execution structurefor 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))}

Goal

Start

s2

s1

s5

s3

s4

2

Page 10: Chapter 17 Planning Based on Model Checking

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

Execution Structures

Execution structurefor 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

Page 11: Chapter 17 Planning Based on Model Checking

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

Execution Structures

Execution structurefor 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))}

Goal

Start s1 s4

2

Page 12: Chapter 17 Planning Based on Model Checking

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

Execution Structures

Execution structurefor 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

Page 13: Chapter 17 Planning Based on Model Checking

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

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

Goala0a1

a2s2

a3

s0

s1

s3

Goala0a1

a2s2

s0

s1

s3

Goala0a1

a2s2

Goal

Types of Solutions

a3

Page 14: Chapter 17 Planning Based on Model Checking

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

Finding Strong Solutions Backward breadth-first search

StrongPreImg(S) = {(s,a) : (s,a) ≠ , (s,a) S} all state-action pairs for which

all 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

Page 15: Chapter 17 Planning Based on Model Checking

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

π = failure

π' = Sπ' =

Sg Sπ' = {s4}

Example

Goal

Start s4

2

Page 16: Chapter 17 Planning Based on Model Checking

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

Example

Start

π = failure

π' = Sπ' =

Sg Sπ' = {s5}

PreImage = {(s3,move(r1,l3,l4)),

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

π'' = {(s3,move(r1,l3,l4)),

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

Goal

s5

s3

s4

2

Page 17: Chapter 17 Planning Based on Model Checking

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

Example

Start

π = failure

π' = Sπ' =

Sg Sπ' = {s5}

PreImage = {(s3,move(r1,l3,l4)),

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

π'' = {(s3,move(r1,l3,l4)),

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

π = π' = {(s3,move(r1,l3,l4)),

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

Goal

s5

s3

s4

2

Page 18: Chapter 17 Planning Based on Model Checking

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

Example

Goal

Start

π = π' = {(s3,move(r1,l3,l4)),

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

Sπ' = {s3,s4,s5}

Sg Sπ' = {s3,s4,s5}

s5

s3

s4

2

Page 19: Chapter 17 Planning Based on Model Checking

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

π = π' = {(s3,move(r1,l3,l4)),

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

Sπ' = {s3,s4,s5}

Sg Sπ' = {s3,s4,s5}

PreImage = {(s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)), (s5,move(r1,l5,l4)), (s4,move(r1,l4,l3)),

(s4,move(r1,l4,l5))}

π'' = {(s2,move(r1,l2,l3)}

Example

Goal

Start

s5

s3

s4

s2

2

Page 20: Chapter 17 Planning Based on Model Checking

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

π = {(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))}

Sg Sπ' = {s2,s3,s4,s5}

Example

Goal

Start

s2

s5

s3

s4

2

Page 21: Chapter 17 Planning Based on Model Checking

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

π = {(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))}

Sg Sπ' = {s2,s3,s4,s5}

PreImage = {(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))}

Example

Goal

Start

s2

s5

s3

s4s1

2

Page 22: Chapter 17 Planning Based on Model Checking

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

π = {(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))}

Sg Sπ' = {s1,s2,s3,s4,s5}

Example

Goal

Start

s2

s5

s3

s4s1

2

Page 23: Chapter 17 Planning Based on Model Checking

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

π = {(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))}

Sg Sπ' = {s1,s2,s3,s4,s5}

S0 Sg Sπ'

MkDet(π') = π'

Example

Goal

Start

s2

s1

s5

s3

s4

2

Page 24: Chapter 17 Planning Based on Model Checking

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

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

Page 25: Chapter 17 Planning Based on Model Checking

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

π = failure

π' = Sπ' =

Sg Sπ' = {s5}

Example

Goal

Start s4

2

Weak

Weak

Page 26: Chapter 17 Planning Based on Model Checking

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

Example

Start

π = failure

π' = Sπ' =

Sg Sπ' = {s5}

PreImage = {(s1,move(r1,l1,l4)), (s3,move(r1,l3,l4)),

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

π'' = PreImage

Goal

s5

s3

s4

2

s1

Weak

Weak

Page 27: Chapter 17 Planning Based on Model Checking

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

Example

Goal

Start

π = π' = {(s1,move(r1,l1,l4)),

(s3,move(r1,l3,l4)),

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

Sπ' = {s1,s3,s4,s5}

Sg Sπ' = {s1,s3,s4,s5}

PreImage = {(s1,move(r1,l1,l4)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)),

(s5,move(r1,l5,l4)), …}

π'' = {(s1,move(r1,l1,l4)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)),

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

s5

s3

s4

2

s1

s2

Weak

Weak

Page 28: Chapter 17 Planning Based on Model Checking

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

π = {(s1,move(r1,l1,l4)), (s3,move(r1,l3,l4)),

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

π' = {(s1,move(r1,l1,l4)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)),

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

Sπ' = {s1,s3,s4,s5}

Sg Sπ' = {s1,s3,s4,s5}

Example

Goal

Start

s5

s3

s4

s2

2

s1

Weak

Weak

Page 29: Chapter 17 Planning Based on Model Checking

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

π = {(s1,move(r1,l1,l4)), (s3,move(r1,l3,l4)),

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

π' = {(s1,move(r1,l1,l4)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)),

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

Sπ' = {s1,s3,s4,s5}

Sg Sπ' = {s1,s3,s4,s5}

PreImage = {(s1,move(r1,l1,l4)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)),

(s5,move(r1,l5,l4)), …}

π'' =

Example

Goal

Start

s5

s3

s4

s2

2

s1

Weak

Weak

Page 30: Chapter 17 Planning Based on Model Checking

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

π = {(s1,move(r1,l1,l4)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)),

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

π' = {(s1,move(r1,l1,l4)), (s2,move(r1,l2,l3)), (s3,move(r1,l3,l4)),

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

Sg Sπ' = {s1,s2,s3,s4,s5}

S0 Sg Sπ'

MkDet(π') = π'

Example

Goal

Start

s2

s1

s5

s3

s4

2

Weak

Weak

Page 31: Chapter 17 Planning Based on Model Checking

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

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 u Sπ

» PruneOutgoing(π,S) = π – {(s,a) π : (s,a) subset S u Sπ

» ) PruneUnconnected removes states from which it is impossible to get to Sg

» Details are in the book Once the policy

stops changing If the policy

is a solution,return adeterministicsubpolicy

Else returnfailure

Page 32: Chapter 17 Planning Based on Model Checking

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

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

Example 1

Goal

Start

s5

s3

s4

s2

2

s1

s6

at(r1,l6)

Page 33: Chapter 17 Planning Based on Model Checking

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

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

π = {(s,a) : a is applicable to s}

PruneOutgoing(π',Sg) = π'

PruneUnconnected(π',Sg) = π'

RemoveNonProgress(π') =…

Example 1

Goal

Start

s5

s3

s4

s2

2

s1

s6

at(r1,l6)

Page 34: Chapter 17 Planning Based on Model Checking

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

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

π = {(s,a) : a is applicable to s}

PruneOutgoing(π',Sg) = π'

PruneUnconnected(π',Sg) = π'

RemoveNonProgress(π') =… as shown …

Example 1

Start

s5

s3

s4

s2

2

s1

s6Goal

at(r1,l6)

Page 35: Chapter 17 Planning Based on Model Checking

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

Example 1

Start

s5

s3

s4

s2

2

s1

s6

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

π = {(s,a) : a is applicable to s}

PruneOutgoing(π',Sg) = π'

PruneUnconnected(π',Sg) = π'

RemoveNonProgress(π') =… as shown …

MkDet(RemoveNonProgress(π')) =

either{(s1,move(r1,l1,l4), (s4,move(r1,l4,l6))}

or

{all the black edges}

at(r1,l6)Goal

Page 36: Chapter 17 Planning Based on Model Checking

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

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

Example 2

Goal

Start

s5

s3

s4

s2

2

s1

s6

at(r1,l6)

Page 37: Chapter 17 Planning Based on Model Checking

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

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

π = {(s,a) : a is applicable to s}

PruneOutgoing(π',Sg) = as shown

Example 2

Goal

Start

s5

s3

s4

s2

2

s1

s6

at(r1,l6)

Page 38: Chapter 17 Planning Based on Model Checking

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

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

π = {(s,a) : a is applicable to s}

PruneOutgoing(π',Sg) = as shown

PruneUnconnected(…)= as shown

Example 2

Goal

Start

s3

s4

s2

2

s1

s6

at(r1,l6)

Page 39: Chapter 17 Planning Based on Model Checking

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

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

π = {(s,a) : a is applicable to s}

PruneOutgoing(π',Sg) = π'

PruneUnconnected(π'',Sg)= as shown

π' = as shown

Example 2

Goal

Start

s3

s4

s2

2

s1

s6

at(r1,l6)

Page 40: Chapter 17 Planning Based on Model Checking

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

π' = as shown

π = π'

PruneOutgoing(π',Sg) = π'

PruneUnconnected(π'',Sg) = π'

RemoveNonProgress(π') =…

Example 2

Goal

Start

s3

s4

s2

2

s1

s6

at(r1,l6)

Page 41: Chapter 17 Planning Based on Model Checking

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

Example 2

Goal

Start

s3

s4

s2

2

s1

s6

π' = as shown

π' = as shown

PruneOutgoing(π',Sg) = π'

PruneUnconnected(π'',Sg) = π'

RemoveNonProgress(π') =π'' as shown

MkDet(π'') = π''

at(r1,l6)

Page 42: Chapter 17 Planning Based on Model Checking

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

Planning for Extended Goals

2

s6at(r1,l6)

Here, “extended” means temporally extended Constraints that apply to some sequence of states

Examples: move to l3,

and then to l5 keep going

back and forthbetween l3 and l5

Page 43: Chapter 17 Planning Based on Model Checking

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

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


Recommended