Part II Methods of AI Chapter 4 Planning

  • Slides: 22
Download presentation
Part II: Methods of AI Chapter 4 - Planning 4. 1 State Space Planning

Part II: Methods of AI Chapter 4 - Planning 4. 1 State Space Planning 4. 2 Partial Order Planning 4. 3 Planning in the Real World

Partial Order Planning (POP) See: Russell, Norvig, AI; chapter 11

Partial Order Planning (POP) See: Russell, Norvig, AI; chapter 11

Partial Plans ► Partial plan: a partially ordered set of operator instances The partial

Partial Plans ► Partial plan: a partially ordered set of operator instances The partial order gives only some constraints on the order in which the operations have to be performed ► Start a dummy operator ► Finish another dummy operator a c a b unstack(? x, a) putdown(? y) pickup(a) b c Start pickup(b) stack(b, c) stack(a, b) Finish

Partial Plans putdown(? y) unstack(? x, a) Start pickup(b) pickup(a) ? x = ?

Partial Plans putdown(? y) unstack(? x, a) Start pickup(b) pickup(a) ? x = ? y, ? y = c clear(a) stack(b, c) stack(a, b) Finish ► Partial plans can also contain the following information: ♦ variable binding constraints ? x = ? y, ? y = c ♦ causal links pickup(a) unstack(? x, a) clear(a) often called protected conditions

Transform Partial Order Plan into Total-order Plan: Start Left Sock Right Sock Start Start

Transform Partial Order Plan into Total-order Plan: Start Left Sock Right Sock Start Start Right Sock Left Sock Left Sock Right Shoe Left Shoe Right. S hoe Left Sock Right. S hoe Left Shoe Right Shoe Finish Finish Left. Sock. On Right. Sock. On Left Shoe Right Shoe Left. Shoe. On, Right. Shoe. On Finish

- actions - order constraints L – links agenda - set of goals POP(<A,

- actions - order constraints L – links agenda - set of goals POP(<A, O, L>, agenda) Q - preconds of A 1. Termination: If agenda is empty return <A, O, L> The Poplan Algorithm A O 2. Goal selection: Let <Q, Aneed> be a pair on the agenda 3. Action selection: Let Aadd = choose an action that adds Q if no such action exists, then return failure Let L’= L {Aadd → Aneed}, and let O’ = O {Aadd < Aneed}. If Aadd is newly instantiated, then A’ = A {Aadd} and O’ = O {A 0 < Aadd < A } (otherwise, A’ = A) 4. Updating of goal set: Let agenda’ = agenda -{<Q, Aneed>}. If Aadd is newly instantiated, then for each conjunction, Qi, of its precondition, add <Qi, Aneed> to agenda’ 5. Causal link protection: For every action At that might threaten a causal link Ap → Ac, add a consistent ordering constraint, either (a) Demotion: Add At < Ap to O’ (b) Promotion: Add Ac < At to O’ (c) Inequality constraints If neither constraint is consistent, then return failure 6. Recursive invocation: POP((<A’, O’, L’>, agenda’, )

THREATS DEFINITION: Let s t be a causal link with condition c in a

THREATS DEFINITION: Let s t be a causal link with condition c in a partial plan P. Suppose P also contains a step r with an effect q such that Ø consistent. P (s r ) and consistent. P ( r t ) i. e. , P’s ordering constraints allow putting r between s and t Ø Suppose q is unifiable with ~c, and P ’s variable-binding constraints do not prevent us from unifying it either Then r is a threat to the causal link s t

Threats: Example r = stack( b, ? z) below is a threat to the

Threats: Example r = stack( b, ? z) below is a threat to the causal link clear (a) ? x = ? y = c unstack(? x, a) Start putdown(? y) pickup(a) clear(a) Finish stack(b, ? z) Ø Threats “threaten” correctness!

Threat Detection and Removal (1) • Detection: for each causal link s positive and

Threat Detection and Removal (1) • Detection: for each causal link s positive and negative threats t and for each step r, check • Threat removal: • (i) demotion, (ii) promotion and (iii) separation (i) Demotion: order r before s ? x=? y, ? y=c stack(b, ? z) putdown(? y) Start Finish unstack(? x, a) pickup(a) clear(a)

Threat Detection and Removal Ø (ii) Promotion: order r after t ? x=? y,

Threat Detection and Removal Ø (ii) Promotion: order r after t ? x=? y, ? y=c stack(b, ? z) putdown(? y) Start unstack(? x, a) pickup(a) Finish clear(a) Ø (iii) Separation: introduce a variable-binding constraint unstack(? x, a) Start putdown(? y) pickup(a) ? x = ? y = c ? z a clear(a) Finish stack(b, ? z)

POPLAN Search Space (1) Start on(c, a) ontable(a) clear(c) ontable(b) clear(b) handempty Finish A

POPLAN Search Space (1) Start on(c, a) ontable(a) clear(c) ontable(b) clear(b) handempty Finish A C B A B C on(b, c) on(a, b) clear(a)

Poplan Search Space (2) Start Finish Start unstack(c, a) Finish putdown(c) Finish . .

Poplan Search Space (2) Start Finish Start unstack(c, a) Finish putdown(c) Finish . . . putdown(c) Start stack(b, c) pickup(b) unstack(c, a) Finish . . . Start . . . putdown(c) unstack(c, a) stack(b, c) pickup(b) stack(a, b) pickup(a) Finish

Plan Space Search Move A to B Move B to C Move A to

Plan Space Search Move A to B Move B to C Move A to B Move A to Table, Move A to B Move C to Table, Move B to C Move A to B

State-Space Search C B A A C B Initial state C B A B

State-Space Search C B A A C B Initial state C B A B C A B C A B B A C A B B C A B C Goal B A C

Another Example • • • At(Home) Sells(SM, Banana) Sells(HS, Drill) Have(Milk) Have(Banana) SM: Super

Another Example • • • At(Home) Sells(SM, Banana) Sells(HS, Drill) Have(Milk) Have(Banana) SM: Super Market HS: Hardware Store

Partial Order Planning At(Home) Start Buy(Banana) Buy(Milk) Buy(Drill) Causal links At(Home) Have(Banana) End Have(Milk)

Partial Order Planning At(Home) Start Buy(Banana) Buy(Milk) Buy(Drill) Causal links At(Home) Have(Banana) End Have(Milk) Have(Drill)

Refining the Plan (1) At(Home) Start NB: all causal links are also ordering links

Refining the Plan (1) At(Home) Start NB: all causal links are also ordering links Ordering links At(s) Sells(s, Banana) Buy(Banana) At(s) Sells(s, Milk) Buy(Milk) At(s) Sells(s, Drill) Buy(Drill) Causal links At(Home) Have(Banana) End Have(Milk) Have(Drill)

Refining the Plan (2) At(Home) Start At(SM) Sells(SM, Banana) At(SM) Sells(SM, Milk) Buy(Banana) Buy(Milk)

Refining the Plan (2) At(Home) Start At(SM) Sells(SM, Banana) At(SM) Sells(SM, Milk) Buy(Banana) Buy(Milk) NB: all causal links are also ordering links At(HWS) Sells(HWS, Drill) Buy(Drill) Causal links At(Home) Have(Banana) End Have(Milk) Have(Drill)

Refining the Plan (3) At(Home) Start At(s) Go(SM) Go(HWS) At(SM) Sells(SM, Banana) At(SM) Sells(SM,

Refining the Plan (3) At(Home) Start At(s) Go(SM) Go(HWS) At(SM) Sells(SM, Banana) At(SM) Sells(SM, Milk) Buy(Banana) Buy(Milk) At(Home) Have(Banana) End Have(Milk) At(HWS) Sells(HWS, Drill) Buy(Drill) Have(Drill)

Refining the Plan (4) At(Home) Start At(Home) Go(SM) Go(HWS) At(SM) Sells(SM, Banana) At(SM) Sells(SM,

Refining the Plan (4) At(Home) Start At(Home) Go(SM) Go(HWS) At(SM) Sells(SM, Banana) At(SM) Sells(SM, Milk) Buy(Banana) Buy(Milk) At(Home) Have(Banana) End Have(Milk) At(HWS) Sells(HWS, Drill) Buy(Drill) Have(Drill)

Threats to Causal Links At(Home) Start At(Home) Go(SM) Go(HWS) At(SM) Sells(SM, Banana) At(SM) Sells(SM,

Threats to Causal Links At(Home) Start At(Home) Go(SM) Go(HWS) At(SM) Sells(SM, Banana) At(SM) Sells(SM, Milk) Buy(Banana) Buy(Milk) At(Home) Have(Banana) End Have(Milk) At(HWS) Sells(HWS, Drill) Buy(Drill) Have(Drill)

Threats to Causal Links: Demotion Start At(Home) At(HWS) At(Home) Go(SM) Go(HWS) At(SM) Sells(SM, Banana)

Threats to Causal Links: Demotion Start At(Home) At(HWS) At(Home) Go(SM) Go(HWS) At(SM) Sells(SM, Banana) At(SM) Sells(SM, Milk) At(HWS) Sells(HWS, Drill) Buy(Banana) At(SM) Go(Home) At(Home) Buy(Milk) Have(Banana) End Have(Milk) Buy(Drill) Have(Drill)