Download Automated Planning Lecture: Model Checking-Based Planning (Ch. 17) - Prof. Dana S. Nau and more Study notes Computer Science in PDF only on Docsity! 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 CMSC 722, AI Planning University of Maryland, Spring 2008 Lecture slides for Automated Planning: Theory and Practice 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 outcomes ◆ 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 a c b Grasp block c a c b Intended outcome a b c Unintended outcome 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 m ove(r1,l2,l1) wait wait wait wait 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 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 m ove(r1,l2,l1) wait wait wait wait 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 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 m ove(r1,l2,l1) wait wait wait wait 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 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 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 m ove(r1,l2,l1) wait wait wait wait 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 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 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 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 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 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,s4,s5} Sg ∪ Sπ' = {s2,s3,s4,s5} Goal Start s2 s5 s3 s4 2 Example 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,s4,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))} 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,s4,s5} Sg ∪ Sπ' = {s1,s2,s3,s4,s5} Goal Start s2 s5 s3 s4 s1 2 Example 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 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 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,s4,s5} Sg ∪ Sπ' = {s1,s3,s4,s5} S0 ⊆ Sg ∪ Sπ' MkDet(π') = π' s5 s3 s4 2 s1 Weak Weak 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 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 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(π') = … Goal Start s5 s3 s4 s2 2 s1 s6 at(r1,l6) Example 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/ 35 π ← ∅ π' ← {(s,a) : a is applicable to s} Goal Start s3 s4 s2 2 s1 s6 at(r1,l6) Example 2 s5 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) Example 2 s5 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) = … Goal Start s3 s4 s2 2 s1 s6 at(r1,l6) Example 2 s5 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(π') = … Goal Start s3 s4 s2 2 s1 s6 at(r1,l6) Example 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/ 41 Goal Start s3 s4 s2 2 s1 s6 π' ← shown π ← π' PruneOutgoing(π',Sg) = π' PruneUnconnected(π'',Sg) = π' so π = π' RemoveNonProgress(π') = shown MkDet(shown) = shown at(r1,l6) Example 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/ 42 Planning for Extended Goals ● 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 forth between l3 and l5 Goal Start m ove(r1,l2,l1) wait wait wait wait 2