علوم مهندسی

برنامه ریزی AI

صفحه 1:

صفحه 2:
The planning problem ا لش ‎Inputs:‏ © ‎A description of the world state‏ .1 ‎The goal state description‏ .2 ‎A set of actions‏ .3 © Output: A sequence of actions that if applied to the initial state, transfers the world to the goal state

صفحه 3:
An example - Blocks world << ‏لل‎ ‎" Blocks on a table " Can be stacked, but only one block on top of another " A robot arm can pick up a block and move to another position * On the table * On another block © Arm can pick up only one block at a time * Cannot pick up a block that has another one on it

صفحه 4:
STRIPS Representation ‎١‏ شخ ‎State is a conjunction of positive ground‏ 5 ‎literals‏ ‎On(B, Table) A Clear (A)‏ ‎Goal is a conjunction of positive ground‏ " ‎literals‏ ‎Clear(A) A On(A,B) A On(B, Table)‏ ‎STRIPS Operators‏ © ‎Conjunction of positive literals as preconditions‏ * ‎* Conjunction of positive and negative literals as effects

صفحه 5:
More on action schema ‏ليسي ا‎ ©" Example: Move (b, x, y) * Precondition: Block(b) A Clear(b) A Clear(y) A On(b,x) A (b # x) A(b # y) A (y # x) * Effect: =Clear(y) A ~On(b,x) A Clear(x) A On(b,y) سپس سسپست Deets best (Bet best " An action is applicable in any state that satisfies its precondition

صفحه 6:
STRIPS assumptions ۳ © Closed World assumption * Unmentioned literals are false (no need to explicitly list out) © STRIPS assumption * Every literal not mentioned in the “effect” of an action remains unchanged 5 Atomic Time (actions are instantaneous)

صفحه 7:
STRIPS expressiveness "_______ ‏ا‎ ‎“Literals are function free: Move (Block(x), y, Z) © operators can be propositionalized Move(b,x,y) and 3 blocks and table can be expressed as 48 purely propositional actions 5 No disjunctive goals: On(B, Table) V On(B, C) No conditional effects: On(B, Table) if -On(A, Table)

صفحه 8:
Planning algorithms —_ _ _ _ © Planning algorithms are search procedures = Which state to search? * State-space search ™ Each node is a state of the world ™ Plan = path through the states * Plan-space search ™ Each node is a set of partially-instantiated operators and set of constraints = Plan = node

صفحه 9:
State search 5* ‏[آ[آ[كك سس سي‎ © Search the space of situations, which is connected by operator instances " The sequence of operators instances = plan © We have both preconditions and effects available for each operator, so we can try different searches: Forward vs. Backward

صفحه 10:
Planning: Search Space 6 1 B ۱۱ (B Aj |B IA] |C B 0 2 A 0 ‏عالظالفا‎ 6 B 2 A} |B Al ‏ع6‎ ‎AI 2 ‏اظ‎ BI |C اهاس تداع

صفحه 11:
Forward state-space search 211592 ay ° Progression 5 Initial state: initial state of the problem © Actions: » Applied to a state if all the preconditions are satisfied * Succesor state is built by updating current state with add and delete lists = Goal test: state satisfies the goal of the problem

صفحه 12:
Progression (forward م77 لوعتقعع ProgWS(world-state, goal-list, PossibleActions, path) If world-state satisfies all goals in goal-list, 1. Then return path. 2. Else Act = choose an action whose precondition is true in world-state ) If no such action exists Then fail Else return ProgWS( result(Act, world- state), goal-list, PossibleActions, concatenate(nath. Act) )

صفحه 13:
Forward search in the Blocks world CS | es 35 و _ Ie ta Ho /

صفحه 14:
Forward state-space search a ‏ل‎ ‎cs ‎5 Advantages * No functions in the declarations of goals J] search state is finite * Sound * Complete (if algorithm used to do the search is complete) 5 Limitations * Irrelevant actions {j not efficient * Need heuristic or pruning procedure

صفحه 15:
Backward state-space search (1) a © Regression © Initial state: goal state of the problem 5 Actions: * Choose an action that = Is relevant; has one of the goal literals in its effect set = Is consistent; does not negate another literal * Construct new search state = Remove all positive effects of A that appear in goal ™ Add all preconditions, unless already appears © Goal test: state is the initial world state

صفحه 16:
Regression (backward path) 1 If initial-state satisfies all of current-goals 2. Then return path 3. Else Act = choose an action whose effect matches one of current-goals If no such action exists, or the effects of Act contradict some of current-goals, then fail ». G = (current-goals - goals-added- by(Act)) + preconds(Act) If G contains all of current-goals, then fail Return RegWS(initial-state, G, PossibleActions, concatenate(Act, path))

صفحه 17:
Backward state-space search (2) 7 5 Advantages * Consider only relevant actions J much smaller branching factor 5 Limitations * Still need heuristic to be more efficient

صفحه 18:
Comparing ProgWS and EE ° Both algorithms are * sound (they always return a valid plan) * complete (if a valid plan exists they will find one) | Running time is O(b") where b = branching factor, n = number of “choose” operators

صفحه 19:
Blocks world: STRIPS wy OS OS ‏سا7‎ 5 Pickup(x) © OvGraok(x,y) Pre: on(x, Table), ret va(x, v), oe clear(x), ae et: va(x, y), oF Del: on(x, Table), ae ‏ل اك‎ (v) Add: holding(x) "G x, “ Putdown(x) er vleur(v) Pre: holding(x) Oet: kokdicrey(x), chear(v) Del: holding(x) Odd: va(x, y), 3 Add: on(x, Table), ae

صفحه 20:
STRIPS Planning ‏لها‎ 5 [o] ۲ [1 © Current state: * on(A,table), on(C, B), on(B,table), on(D,table), clear(A), clear(C), clear(D), ae. = Goal » on(A,C), on(C,D)

صفحه 21:
STRIPS Planning lan: Goalstackoniasc).onio.a) ‏ا‎ on(A,C) Stack(A, C) holding(A), clear(C) holding(A) Pickup(A) on(A,Table), clear(A), ae جا وله ۲ jtable), on(C, B), on(B,table), on(D,table), clear(A), clear(C), clear(D), ae irrent State

صفحه 22:
STRIPS Planning Plan: Goalstackoniac),onto.a) fl on(A,C) Stack(A, C) Pickup(x) holding(A), clear(C) Pre: on(x,Table), clear(x), ae holding(A) Pickup(A) Del: on(x, Table), ae, Add: holding(x) جا وله ۲ (0)) له , (۱))انه ,)ان ,)9 ننه ‎con((D)‏ , (ها هر )۳۲ ,((۳ ‎ibg(A), on(C,,‏ irrent State

صفحه 23:
STRIPS Planning Plan: Goalstackoniac,onto.a) fl Pickup(A) on(A,C) Stack(A, C) Stack(x, y) Pre: holding(x), clear(y) Del: holding(x), clear(y) Add: on(x, y), ae 0 ۳1 inGIAdNG( G) BONdB (Ebab)leo nD (fbicled adeGr| AdjadesDICheclear(D). irrent State

صفحه 24:
STRIPS Planning Pickup(A) on(D, A) Stack(A, C) Stack(D,A) holding(D), clear(A) holding(D) Pickup(D) on(D,Table), clear(D), ae “he ۳1 AD) ond CE) oon ‏اجه اه [( راهن تلاصا و3‎ )0( ae. irrent State

صفحه 25:
STRIPS Planning Plan Goalstackaniac).onio.a fl Pickup(A) on(D, A) Stack(A, C) Stack(D,A) Pickup(D) holding(D), clear(A) holding(D) 0 1 ۳1 M6) con{(C, EB), con( ER tedts), hen DIlecdeGk|Adeclear(D) irrent State

صفحه 26:
STRIPS Planning: Getting it Wrong! on(D,A) Stack(D, A) holding(D), clear(A) holding(D) Pickup(D) on(D,Table), clear(D), ae جا وله ۲ .table), on(C, B), on(B,table), oo BitahD3), clen(), cisen(O), cltsan(), a€ irrent State

صفحه 27:
STRIPS Planning: Getting it Wrong! Plans GoalstackoniA.c),onto.a) Pickup(D) on(D,A) Stack(D, A) Hi ۳221 ١ Herts), con((C, EB), cov( EB Heidt), Fooling LD | ‏(۲)0هع۱ععع] هه که له‎ irrent State

صفحه 28:
STRIPS Planning: Getting it Wrong! Plans Goalstackoniasc).onio.a) ‏ا‎ Pickup(D) Stack(D, A) Now What? — We chose the wrong goal first — Ais no longer clear. — stacking D on A messes up the preconditions for actions to accomplish on(A, C) SNS — either have to backtrack, or else we must undo ga the previous actions ۳221 \,table), on(C, B), on(B,table), on(D,A), clear(C), clear(D), ae. irrent State

صفحه 29:
STRIPS planning (Goalstack planning) شش يفك ‎Works on one subgoal at a time‏ " ‎Insists on completely achieving that‏ 5 ‎subgoal before considering other subgoals‏ ‎May have to backtrack:‏ | * If it chooses the wrong order to work on the subgoals * If it chooses the wrong action to achieve a subgoal | Searches backwards from goal - uses goal to guide choice of actions

صفحه 30:
Limitation of state-space search © Linear planning or Total order planning = Example * Initial state: all the blocks are clear and on the table * Goal: On(A,B) A On(B,C) * If search achieves On(A,B) first, then needs to undo it in order to achieve On(B,C) © Have to go through all the possible permutations of the subgoals

صفحه 31:
Search through the space of plans ‏ص‎ ‎© Nodes are partial plans, links are plan refinement operations and a solution is a node (not a path). © This can be powerful if the plan representation and refinements change the search space. © POP creates partial-order plans following a “least commitment” principle.

صفحه 32:
Partial Order Plans: Total Order Plans: Start Start| |Start||Start| |Start|/Start| |Start 2 1 1 1 1 1 1 ‏عم ]| تحونظ | غطونعا‎ | [Left |[Right ]/ Lett Left Right Sock | | Sock || Sock | | Sock |] Sock || Sock Sock Sock | | | | | | Left ]/ Left | [Right |[Right ] [Right] Left ‎on Right Sqckon | Sock || Sock |_| Sock || Sock | | Shoe | Shoe‏ دي ‎Left Right 1 | 1 J‏ ‎Shoe Shoe‏ ‎ ‎ ‎ ‎ ‎Right] [Left |[Right]/ Left ] [Left |[Right Shoe| | Sock || Shoe || Shoe | | Sock || Sock ‎ ‎ ‎ ‎ ‎Left ] [Right]/ Left ||Right|) Left | Right Shoe| | Shoe || Shoe || Shoe || Shoe | Shoe ‏لا 1 ] | ‎Finish Finish Finish Finish Finish Finish ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 33:
P.O. plans in POP 211101111111111 = Plan = (A, O, L), where * Ais the set of actions in the plan * Ois a set of temporal orderings between actions * Lis a set of causal links linking actions via a literal Causal link ‏,)مت رن‎ means that Ac has precondition Q that is established in the plan by Ap. move-a-from-b-to-table ("=") move-c-from-d-to- b

صفحه 34:
Threats to causal links <<) ‏آذآ‎ Step At threatens link —— if: 1. At has (~Q) as an effect 2. At could come between Ap and Ac, i.e., 0 is consistent with Ap < At < Ac

صفحه 35:
Threat Removal " Threats must be removed to prevent a plan from failing © Demotion adds the constraint A, < A, to prevent clobbering, i.e. push the clobberer before the producer 4 Promotion adds the constraint A, < A, to prevent clobbering, i.e. push the clobberer after the consumer

صفحه 36:
Initial (Null) Plan © Initial plan has ~A={A,A} -O={A, <A} *L={} 4 A, (Start) has no preconditions but all facts in the initial state as effects. © A, (Finish) has the goal conditions as preconditions and no effects.

صفحه 37:
POP algorithm 1 If agenda is empty, return (A, O, L) 2. Pick (Q, An) from agenda 3. Ad = choose an action that adds Q. If no such action exists, fail. add the link Ad.) , Ac to L and the ordering Ad < Ac to If Ad is new, add it to A. « Remove (Q, An) from agenda. If Ad is new, for each of its preconditions P add (P, Ad) to agenda. s. For every action At that threatens any like —— > Pe 1. Choose to add At < Ap or Ac > At to O. If neither choice is consistent, fail. «. POP((A, O, L), agenda, PossibleActions)

صفحه 38:
Sussman Anomaly ‏ا اط‎ Po (oO ®) ‏فا و‎ (cher O) (cer ®) ‎(os ®) ) 0 0(‏ روصم ‎© ‎3

صفحه 39:
Work on open precondition (on B C) Po (oO ®) ‏فا و‎ (cher O) (cer ®) (cer ®) (cea ©) ‏یی‎ B) 0: wove 0 ‏مس‎ © -(ownble ®) {ele ©) (vg 0) (okt ©) — (ex ®®) (a OO) © 3

صفحه 40:
Work on open precondition (on A B) ‎(ce ©) (eer)‏ ی سس وم ‎(cea ®) (cer) — (ote ®) ‎2: wove © Prow Dab ® Loy end) 4 3 eee) ‏(ماحطع‎ OO), 0: wove © Prow Poble i 0 ‎orb) -(cear ©) (oa ® OC) ‎(orkbeO) (oa) (a BO) ‎© ‎3

صفحه 41:
Work on open precondition (on-table C) (or ‏یی (ه‎ ©( (2M. ©) (dew 0( (clear ®) (0 ®) ‏سم‎ 0( 9: wore O Prow © ۵ Publ (orth ©) (oa ®) (ck ®) (cher @) (clear ®) (oerteble ©( (cea ®) (cea ©) ‏یی‎ ©( OO: wre O Prow Table to © —_————O1: woe © Prow Doble by O شنت 7° )® جام )® ‎“(ort‏ (orb ©) (oa) (a BO) © 3

صفحه 42:
Analysis my |" POP can be much faster than the state- space planners because it doesn’t need to backtrack over goal orderings (so less branching is required). © Although it is more expensive per node, and makes more choices than RegWS, the reduction in branching factor makes it faster, i.e., 7 is larger but 6 is smaller!

صفحه 43:
More analysis a ۲7 Does POP make the least possible amount of commitment? © Lifted POP: Using Operators, instead of ground actions, 5 Unification is required

صفحه 44:
POP in the Blocks world a PutOn(x,y) C(x), Cl(y), On(x,y), Cx), On(x,z) ~Ci(y), ~On(x,z) PutOnTable(x) On(x, z) On(x,Table), 0100 Cl(x), ~On(x,z)

صفحه 45:
POP in the Blocks world as (On(A) OmA, Table) CKB) OMB, Table) CHC) On(AB) 6980 FINISH

صفحه 46:
POP in the Blocks world yy ۳ On{C,A) On(A, Table) CB) On(B, Table) CXC) START Puton(B,c) گام _ دامن FINISH

صفحه 47:
POP in the Blocks world On(C,A) On(A, Table) ChB) On(B Table) CC) ۳ Puon(AB) Clobbers ‏رها‎ ‏تست‎ ‎2 ‏«هله_«‎ 40 ‎OntAz) CIB)‏ اس ‎ ‎ ‎ ‎-| Purons,c) ‎ ‎ ‏سا هبو [ ۳:۸ ‎۱ ‏واه _ همه ‎ ‎BEE ‎FINISH ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 48:
POP in the Blocks world (On(C.A) OniA, Table) CNB) On(B. Table) C1/C) 2 9:6 PutOn(A.8) clobbers CHB) SSorder after PutOn(E.c) PuOnTable(c) ‏وه‎ لي 0001 واه عجامه واه 5 بح ره مه ره .008نم ۳ PutOA.B) ١ onda.) onc) FINISH

صفحه 49:
Example 2 ‏سس اا‎ 5 Ay: Start » At(Home) Sells(SM,Banana) Sells(SM,Milk) Sells(HWS, Drill) oA, : Finish * Have(Drill) Have(Milk) Have(Banana) At(Home) Buy (y,x) GO (x,y) At(x), Sells(x,y) | Have(y) At(x) At(y) ~At(x)

صفحه 50:
POP Example 1521 ‏ع ات‎ start 1 finish

صفحه 51:
POP Example 2 start Sells(SM, M) Sells(SM,B) At(H) 1 Have(M)} Have(B) finish

صفحه 52:
POP Example Sells(SM, M) Sells(SM,B) At(H) ١ At(x,) Sells(x,,M) Buy (M,x,) Have(M) Have(M)} Have(B) finish

صفحه 53:
POP Example ۲ ‏تسه‎ start Sells(SM, M) Sells(SM,B) At(H) ١ At(x,) Sells(x,,M) Buy (M,x,) Have(M) Have(M)} Have(B) finish

صفحه 54:
POP Example 2 start Sells(SM, M) Sets(SM,B) At(H) | 7 7 7 2 7 At(x,) Sells(x,,M) »” Buy (M,x,) Have(M) ۰ ۰ ۰ ۷2۷۵ Have(B) finish

صفحه 55:
POP Example 5 ‏مح‎ start Sells(SM, M) Sets(SM,B) At(H) | 7 7 7 2 7 At(x,) Sells(x,,M) Ke At(x,) Sells(x,, B) Buy (B,x2) Have(B) Buy (M,x,) Have(M) ۰ ۰ ۰ ۷2۷۵ Have(B) finish

صفحه 56:
POP Example 211101111111111 start Sells(SM, M) Sefs(SM,B) At(H) 7 0 ‏َه‎ ۰ ۰ ۰ 7 7 2 7 ۰ At(x,) Sells(x,,M) Ke S\At(x,) Sells(x,, B) Buy (B,x2) ‏*م‎ _Have(B) 2 2 2 ۳2/۵ saves) finish Buy (M,x,) Have(M) 4 ۰ ١ ١ ١ ١ I 1 ١ ١ 1 1 ۰ 1 ١

صفحه 57:
POP Example go xX, = SM start Sells(SM, M) seinem.) At(H) 5 ۰ ۰ ۰ ۰ ۰ ۰ S\At(x,) Sells(x,, B) 7 7 3 5 7 At(x,) Sells(x,,M) »” Buy (B,x2) Have(B) Buy (M,x,) Have(M) + ۰ Sy FavetMy saves) finish 2 2

صفحه 58:
POP Example ۲: xX, = SM x,=5M start Sells(SM, M) sea 8) At(H) Sy 1 7 1 ۰ At(x,) Sells(x,,M) »” 1 ‏0اه‎ “Sells(x,, B) 1 Buy (M,x,) ۱ Buy (B,x,) ۱۲۷۵۷۵۲۷ +. ۱ Have(B) . i 3 0 FavetMy saves) finish

صفحه 59:
POP Example 211101111111111 eg xX, = SM x, = SM stale At(x,) Sells(SM, M) sea B) At(H) GO (x,5M) 5 3 ۱ = At(SM) 9 ۰ 5 1 2 i \ At(x,) Sells(x,,M) 2 At(x,) ‏,یل)کااع5‎ 8( Buy (M,x,) ۱ Buy (B,x,) ۱۲۱۵۷۵) 7+. ۱ Have(B) . i 7 1 FavetMy saves) finish

صفحه 60:
POP Example xX, = SM x, = SM stat At(x;) Sells(SM, M) Sefs(SM.B) At(H) GO (x,,5M) ‘ 0 ۰ --77 7 At(SM) 4 ۰ At(x,) Sells(x,,M) acc om: ! SV At(x# 2 ells(x,, B) Buy (M,x,) ۱ Buy (B,x,) ۱۲۷۵۷۵۲۷ +. ۱ Have(B) ۰ i er 1 Tan sete

صفحه 61:
‎ells(x,, B)‏ ۳ ل ‎ ‎Buy (B,x2) 77 _Have(B) ‎ ‎start ‎ ‎ ‎POP Example ‎ ‎3 ‎. ‎ ‎ ‎۰ ‎ ‎ ‎xX, = SM xX, = SM ‎ ‎At(x,) Sells(x;,M) g2-- 7 ‎ ‎Buy (M,x,) Have(M) ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 62:
POP Example ey tart 1 x, = SM Stal 14 At) x= Sells(SM, M) S€FXSWB) AH) GO (x,,SM) Zh At(x,) Sells(x,,M) acc ar SV At(x# 2 ells(x,, B) Buy (B,x2) ‎_Have(B)‏ *م ‎Buy (M,x,) Have(M) 4 ۰ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

صفحه 63:
POP Example xX, = SM fait x = SM sta ” ‏لس‎ At(x,) Sells(x,,M) acc ar SV At(x# 2 ells(x,, B) Buy (B,x2) ‎_Have(B)‏ *م ‎Buy (M,x,) Have(M) 4 ۰ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎ ‎

1 07 Alireza yousefpouryousefpour@shomal.ac.ir The planning problem 2  Inputs: 1. A description of the world state 2. The goal state description 3. A set of actions  Output: A sequence of actions that if applied to the initial state, transfers the world to the goal state An example – Blocks world 3    Blocks on a table Can be stacked, but only one block on top of another A robot arm can pick up a block and move to another position    On the table On another block Arm can pick up only one block at a time  Cannot pick up a block that has another one on it STRIPS Representation 4  State is a conjunction of positive ground literals On(B, Table) Λ Clear (A)  Goal is a conjunction of positive ground literals Clear(A) Λ On(A,B) Λ On(B, Table)  STRIPS Operators   Conjunction of positive literals as preconditions Conjunction of positive and negative literals as effects More on action schema 5  Example: Move (b, x, y)  Precondition: Block(b) Λ Clear(b) Λ Clear(y) Λ On(b,x) Λ (b ≠ x) Λ (b ≠ y) Λ (y ≠ x)  Effect: ¬Clear(y) Λ ¬On(b,x) Λ Clear(x) Λ On(b,y) Delete list  Add list An action is applicable in any state that satisfies its precondition STRIPS assumptions 6  Closed World assumption   STRIPS assumption   Unmentioned literals are false (no need to explicitly list out) Every literal not mentioned in the “effect” of an action remains unchanged Atomic Time (actions are instantaneous) STRIPS expressiveness 7  Literals are function free: Move (Block(x), y, z)  operators can be propositionalized Move(b,x,y) and 3 blocks and table can be expressed as 48 purely propositional actions  No disjunctive goals: On(B, Table) V On(B, C)  No conditional effects: On(B, Table) if ¬On(A, Table) Planning algorithms 8   Planning algorithms are search procedures Which state to search?  State-space search  Each node is a state of the world  Plan = path through the states  Plan-space search  Each node is a set of partially-instantiated operators and set of constraints  Plan = node State search 9    Search the space of situations, which is connected by operator instances The sequence of operators instances = plan We have both preconditions and effects available for each operator, so we can try different searches: Forward vs. Backward Planning: Search Space 10 A C B B C A C A B C A B C A B A B C C B A B A C A B C A A B C B C A B C B A C Forward state-space search 11 (1)    Progression Initial state: initial state of the problem Actions:    Applied to a state if all the preconditions are satisfied Succesor state is built by updating current state with add and delete lists Goal test: state satisfies the goal of the problem 12 Progression (forward search) ProgWS(world-state, goal-list, PossibleActions, path) If world-state satisfies all goals in goal-list, 1. Then return path. 2. Else Act = choose an action whose precondition is true in world-state a) If no such action exists b) Then fail c) Else return ProgWS( result(Act, worldstate), goal-list, PossibleActions, Forward search in the Blocks world 13 … … Forward state-space search 14 (2)  Advantages     No functions in the declarations of goals  search state is finite Sound Complete (if algorithm used to do the search is complete) Limitations   Irrelevant actions  not efficient Need heuristic or pruning procedure Backward state-space search (1) 15    Regression Initial state: goal state of the problem Actions:  Choose an action that  Is relevant; has one of the goal literals in its effect set  Is consistent; does not negate another literal  Construct new search state  Remove all positive effects of A that appear in goal  Add all preconditions, unless already appears  Goal test: state is the initial world state 16 Regression (backward search) RegWS(initial-state, current-goals, PossibleActions, path) 1. If initial-state satisfies all of current-goals 2. Then return path 3. Else Act = choose an action whose effect matches one of current-goals a. If no such action exists, or the effects of Act contradict some of current-goals, then fail b. G = (current-goals – goals-addedby(Act)) + preconds(Act) c. If G contains all of current-goals, then fail d. Return RegWS(initial-state, G, PossibleActions, concatenate(Act, Backward state-space search (2) 17  Advantages   Consider only relevant actions  much smaller branching factor Limitations  Still need heuristic to be more efficient Comparing ProgWS and RegWS 18  Both algorithms are   sound (they always return a valid plan) complete (if a valid plan exists they will find one)  Running time is O(bn) where b = branching factor, n = number of “choose” operators 19  Blocks world: STRIPS operators Pickup(x) Pre: on(x, Table), clear(x), ae Del: on(x, Table), ae Add: holding(x)  Putdown(x) Pre: holding(x) Del: holding(x) Add: on(x, Table), ae  UnStack(x,y) Pre: on(x, y), ae Del: on(x, y), ae Add: holding(x), clear(y)  Stack(x, y) Pre: holding(x), clear(y) Del: holding(x), clear(y) Add: on(x, y), ae STRIPS Planning 20 C A  D Current state:   B on(A,table), on(C, B), on(B,table), on(D,table), clear(A), clear(C), clear(D), ae. Goal  D A C on(A,C), on(C,D) STRIPS Planning Plan: 21 Goalstack:on(A,C), on(D,A) on(A,C) D A C Stack(A, C) holding(A), clear(C) holding(A) Pickup(A) on(A,Table), clear(A), ae C A B D A,table), on(C, B), on(B,table), on(D,table), clear(A), clear(C), clear(D), ae urrent State STRIPS Planning Plan: 22 Goalstack:on(A,C), on(D,A) on(A,C) D A C Stack(A, C) Pickup(x) Pre: on(x,Table), clear(x), ae Del: on(x, Table), ae, Add: holding(x) holding(A), clear(C) holding(A) Pickup(A) C A B D A,table), ing(A), on(C, on(C, B), B), on(B,table), on(B,table), on(D,table), on(D,table), clear(A), clear(A), clear(C), clear(C), clear(D). clear(D), ae urrent State STRIPS Planning Plan: 23 Pickup(A) Goalstack:on(A,C), on(D,A) on(A,C) D A C Stack(A, C) Stack(x, y) Pre: holding(x), clear(y) Del: holding(x), clear(y) Add: on(x, y), ae A C B D A,C), ing(A), on(C, on(C, B),B), on(B,table), on(B,table), on(D,table), on(D,table), clear(A), clear(A), clear(D), clear(C), ae.clear(D). urrent State STRIPS Planning Plan: 24 Pickup(A) Stack(A, C) Goalstack:on(A,C), on(D,A) on(D, A) Stack(D,A) holding(D), clear(A) holding(D) Pickup(D) on(D,Table), clear(D), ae A C B D A,C), (A,C), A,C), on(C, on(C, on(C,B), B), B),on(B,table), on(B,table), on(B,table),on(D,table), holding(D), on(D,A), clear(A), clear(A), clear(A), aeclear(D) clear(D), ae. urrent State D A C STRIPS Planning Plan: 25 Pickup(A) Stack(A, C) Pickup(D) Goalstack:on(A,C), on(D,A) on(D, A) Stack(D,A) holding(D), clear(A) holding(D) A C B D (A,C), A,C), on(C, on(C,B), B),on(B,table), on(B,table),holding(D), on(D,A), clear(A), clear(A), aeclear(D) urrent State D A C STRIPS Planning: Getting it Wrong! Plan: 26 Goalstack:on(A,C), on(D,A) on(D,A) D A C Stack(D, A) holding(D), clear(A) holding(D) Pickup(D) on(D,Table), clear(D), ae C A B D A,table), A,table), on(C, on(C, B), B), on(B,table), on(B,table), on(D,table), holding(D), clear(A), clear(A), clear(C), clear(C), clear(D) clear(D), ae urrent State STRIPS Planning: Getting it Wrong! Plan: 27 Pickup(D) Goalstack:on(A,C), on(D,A) on(D,A) D A C Stack(D, A) D C A B A,table), A,table), on(C, on(C, B), B), on(B,table), on(B,table), holding(D), on(D,A), clear(C), clear(A), clear(D), clear(C), ae.clear(D) urrent State STRIPS Planning: Getting it Wrong! Plan: 28 Goalstack:on(A,C), on(D,A) Pickup(D) D A C Stack(D, A) D C A B Now What? – We chose the wrong goal first – A is no longer clear. – stacking D on A messes up the preconditions for actions to accomplish on(A, C) – either have to backtrack, or else we must undo the previous actions A,table), on(C, B), on(B,table), on(D,A), clear(C), clear(D), ae. urrent State STRIPS planning (Goalstack planning) 29    Works on one subgoal at a time Insists on completely achieving that subgoal before considering other subgoals May have to backtrack:    If it chooses the wrong order to work on the subgoals If it chooses the wrong action to achieve a subgoal Searches backwards from goal – uses goal to guide choice of actions Limitation of state-space search 30   Linear planning or Total order planning Example     Initial state: all the blocks are clear and on the table Goal: On(A,B) Λ On(B,C) If search achieves On(A,B) first, then needs to undo it in order to achieve On(B,C) Have to go through all the possible permutations of the subgoals Search through the space of plans 31  Nodes are partial plans, links are plan refinement operations and a solution is a node (not a path).  This can be powerful if the plan representation and refinements change the search space.  POP creates partial-order plans following a “least commitment” principle. Partial Order Plans: Start Left Sock Right Sock Left Sock on Right Sock on Left Shoe Right Shoe Left Shoe onRight Shoe on Finish 32 Total Order Plans: Start Start Start Right Sock Right Sock Left Sock Left Sock Left Sock Right Right Sock Sock Right Shoe Left Sock Left Shoe Right Shoe Right Shoe Left Shoe Start Start Start Left Right Sock Sock Left Sock Left Shoe Right Shoe Right Left Shoe Shoe Left Right Sock Sock Left Right Shoe Shoe Finish Finish Finish Finish Finish Finish P.O. plans in POP 33  Plan = (A, O, L), where    A is the set of actions in the plan O is a set of temporal orderings between actions L is a set of causal links linking actions via a literal Causal link Q Ac means that Ac has ApQ that is established in the plan by Ap. precondition move-a-from-b-to-table b (clear b) move-c-from-d-to- Threats to causal links 34 Q Ac Step At threatens link if: Ap 1. At has (~Q) as an effect 2. At could come between Ap and Ac, i.e., O is consistent with Ap < At < Ac Threat Removal 35    Threats must be removed to prevent a plan from failing Demotion adds the constraint At < Ap to prevent clobbering, i.e. push the clobberer before the producer Promotion adds the constraint Ac < At to prevent clobbering, i.e. push the clobberer after the consumer Initial (Null) Plan 36    Initial plan has  A = { A0, A¥}  O = {A0 < A¥}  L = {} A0 (Start) has no preconditions but all facts in the initial state as effects. A¥ (Finish) has the goal conditions as preconditions and no effects. POP algorithm 37 POP((A, O, L), agenda, PossibleActions): 1. If agenda is empty, return (A, O, L) 2. Pick (Q, An) from agenda 3. Ad = choose an action that adds Q. a. b. c. 4. 5. 6. If no such action exists, fail. Add the link Ad Ac to L and the ordering Ad < Ac to Q O If Ad is new, add it to A. Remove (Q, An) from agenda. If Ad is new, for each of its preconditions P add (P, Ad) to agenda. For every action At that threatens any link Q 1. Choose to add At < Ap or Ac < At to O. 2. If neither choice is consistent, fail. Ap POP((A, O, L), agenda, PossibleActions) Ac Sussman Anomaly 38 (on C A) (on-table A) (on-table C) A0 (on-table B) (on A B) (on B C) A¥ (clear C) (clear B) Work on open precondition (on B C) 39 (on C A) (on-table A) A0 (on-table B) (clear C) (clear B) (clear B) (clear C) (on-table B) A1: move B from Table to C -(on-table B) (on-table C) (on A B) (on B C) A¥ -(clear C) (on B C) Work on open precondition (on A B) 40 (on C A) (clear A) A0 (on-table A) (clear B) (on-table B) (clear C) (on-table A) A2: move A from Table to B -(on-table A) -(clear B) (clear B) (on A B) (on A B) (clear C) (on-table B) A1: move B from Table to C -(on-table B) (on-table C) (clear B) (on B C) A¥ -(clear C) (on B C) Work on open precondition (on-table C) 41 (on C A) A0 (on-table B) (on-table A) (on C A) (clear C) (clear B) (clear C) A3: move C from A to Table (on-table C) -(on C A) (clear A) (clear A) (clear B) (on-table A) (clear B) A2: move A from Table to B -(on-table A) -(clear B) (on-table C) (on-table B) A1: move B from Table to C (on A B) (on A B) (clear C) -(on-table B) (on B C) A¥ -(clear C) (on B C) Analysis 42  POP can be much faster than the statespace planners because it doesn’t need to backtrack over goal orderings (so less branching is required).  Although it is more expensive per node, and makes more choices than RegWS, the reduction in branching factor makes it faster, i.e., n is larger but b is smaller! More analysis 43  Does POP make the least possible amount of commitment?  Lifted POP: Using Operators, instead of ground actions,  Unification is required POP in the Blocks world 44 PutOn(x,y) Cl(x), Cl(y), On(x,z) On(x,y), Cl(x), ~Cl(y), ~On(x,z) PutOnTable(x) On(x, z) Cl(x) On(x,Table), Cl(x), ~On(x,z) POP in the Blocks world 45 POP in the Blocks world 46 POP in the Blocks world 47 POP in the Blocks world 48 Example 2 49  A0: Start   At(Home) Sells(SM,Banana) Sells(SM,Milk) Sells(HWS,Drill) A¥ : Finish  Have(Drill) Have(Milk) Have(Banana) At(Home) Buy (y,x) At(x), Sells(x,y) Have(y) GO (x,y) At(x) At(y) ~At(x) POP Example 50 start finish POP Example 51 start Sells(SM, M) Sells(SM,B) At(H) Have(M) Have(B) finish POP Example 52 start Sells(SM, M) Sells(SM,B) At(H) At(x1) Sells(x1,M) Buy (M,x1) Have(M) Have(M) Have(B) finish POP Example 53 start Sells(SM, M) Sells(SM,B) At(H) At(x1) Sells(x1,M) Buy (M,x1) Have(M) Have(M) Have(B) finish POP Example 54 start Sells(SM, M) Sells(SM,B) At(H) At(x1) Sells(x1,M) Buy (M,x1) Have(M) Have(M) Have(B) finish POP Example 55 start Sells(SM, M) Sells(SM,B) At(H) At(x1) Sells(x1,M) At(x2) Sells(x2, B) Buy (M,x1) Buy (B,x2) Have(M) Have(B) Have(M) Have(B) finish POP Example 56 start Sells(SM, M) Sells(SM,B) At(H) At(x1) Sells(x1,M) At(x2) Sells(x2, B) Buy (M,x1) Buy (B,x2) Have(M) Have(B) Have(M) Have(B) finish POP Example 57 x1 = SM start Sells(SM, M) Sells(SM,B) At(H) At(x1) Sells(x1,M) At(x2) Sells(x2, B) Buy (M,x1) Buy (B,x2) Have(M) Have(B) Have(M) Have(B) finish POP Example 58 x1 = SM x2 = SM start Sells(SM, M) Sells(SM,B) At(H) At(x1) Sells(x1,M) At(x2) Sells(x2, B) Buy (M,x1) Buy (B,x2) Have(M) Have(B) Have(M) Have(B) finish POP Example 59 x1 = SM x2 = SM start At(x3) Sells(SM, M) Sells(SM,B) At(H) GO (x3,SM) At(SM) At(x1) Sells(x1,M) At(x2) Sells(x2, B) Buy (M,x1) Buy (B,x2) Have(M) Have(B) Have(M) Have(B) finish POP Example 60 x1 = SM x2 = SM start At(x3) Sells(SM, M) Sells(SM,B) At(H) GO (x3,SM) At(SM) At(x1) Sells(x1,M) At(x2) Sells(x2, B) Buy (M,x1) Buy (B,x2) Have(M) Have(B) Have(M) Have(B) finish POP Example 61 x1 = SM x2 = SM start At(x3) Sells(SM, M) Sells(SM,B) At(H) GO (x3,SM) At(SM) At(x1) Sells(x1,M) At(x2) Sells(x2, B) Buy (M,x1) Buy (B,x2) Have(M) Have(B) Have(M) Have(B) finish POP Example 62 x1 = SM x2 = SM x3 = H start At(x3) Sells(SM, M) Sells(SM,B) At(H) GO (x3,SM) At(SM) At(x1) Sells(x1,M) At(x2) Sells(x2, B) Buy (M,x1) Buy (B,x2) Have(M) Have(B) Have(M) Have(B) finish POP Example 63 x1 = SM x2 = SM x3 = H start At(x3) Sells(SM, M) Sells(SM,B) At(H) GO (x3,SM) At(SM) At(x1) Sells(x1,M) At(x2) Sells(x2, B) Buy (M,x1) Buy (B,x2) Have(M) Have(B) Have(M) Have(B) finish

51,000 تومان