Presentation is loading. Please wait.

Presentation is loading. Please wait.

All rights reserved ©L. Manevitz Lecture 61 Artificial Intelligence Planning System L. Manevitz.

Similar presentations


Presentation on theme: "All rights reserved ©L. Manevitz Lecture 61 Artificial Intelligence Planning System L. Manevitz."— Presentation transcript:

1 All rights reserved ©L. Manevitz Lecture 61 Artificial Intelligence Planning System L. Manevitz

2 All rights reserved ©L. Manevitz Lecture 62 Components of a Planning System Chose the best rule to apply next based on the best available heuristic information. Apply the chosen rule to compute the new problem state that arises from its application. Detect when a solution has been found.

3 All rights reserved ©L. Manevitz Lecture 63 Components of a Planning System cont. Detect dead ends so that they can be abandoned and the system’s effort directed in more fruitful directions. Detect when an almost correct solution has been found and employ special techniques to make it totally correct.

4 All rights reserved ©L. Manevitz Lecture 64 The Blocks World Operators: –UNSTACK(A,B) – Pick up block A from its current position on block B. The arm must be empty and block A must have no blocks on top of it. –STACK(A,B) – Place block A on block B. The arm must already be holding A and the surface of B must be clear.

5 All rights reserved ©L. Manevitz Lecture 65 The Blocks World cont. –PICKUP(A) – Pick up block A from the table and hold it. Te arm must be empty and there must be nothing on top of block A. –PUTDOWN(A) – Put block A down on the table. The arm must have been holding block A.

6 All rights reserved ©L. Manevitz Lecture 66 The Blocks World cont. Predicates: –ON(A,B) – Block A is on block B. –ONTABLE(A) – Block A is on the table. –CLEAR(A) – There is nothing on top of block A. –HOLDING(A) – The arm is holding block A. –ARMEMPTY – The arm is holding nothing.

7 All rights reserved ©L. Manevitz Lecture 67 The Blocks World cont. Inference rules: –[ x : HOLDING(x)] ARMEMPTY – x : ONTABLE(x) y : ON(x,y) – x : [ y : ON(y,x)] CLEAR(x)

8 All rights reserved ©L. Manevitz Lecture 68 A Simple Blocks World Description B A ON(A,B,S0) ONTABLE(B,S0) CLEAR(A,S0)

9 All rights reserved ©L. Manevitz Lecture 69 STRIPS – Style Operate for the Blocks World STACK(x,y) P: CLEAR(y) HOLDING(x) D: CLEAR(y) HOLDING(x) A: ARMEMPTY ON(x,y) UNSTACK(x,y) P: ON(x,y) CLEAR(x) ARMEMPTY D: ON(X,Y) ARMEMPTY A: HOLDING(x) CLEAR(y)

10 All rights reserved ©L. Manevitz Lecture 610 STRIPS – Style Operate for the Blocks World cont. PICKUP(x) P: CLEAR(x) ONTABLE(x) ARMEMPTY D: ONTABLE(x) ARMEMPTY A: HOLDING(x) PUTDOWN(x) P: HOLDING(x) D: HOLDING(x) A: ONTABLE(x) ARMEMPTY

11 All rights reserved ©L. Manevitz Lecture 611 A Simple Search Tree 123 UNSTACK(A,B) PUTDOWN(A) Global database at this point ONTABLE(B) CLEAR(A) CLEAR(B) ONTABLE(A)

12 All rights reserved ©L. Manevitz Lecture 612 A Very Simple Blocks World Problem A B CDAD BC Start: ON(B,A) ONTABLE(A) ONTABLE(C) ONTABLE(D) ARMEMPTY Goal: ON(C,A) ON(B,D) ONTABLE(A) ONTABLE(D)

13 All rights reserved ©L. Manevitz Lecture 613 Goal Stack Planning 1)Initial goal stack: ON(C,A) ON(B,D) ONTABLE(A) ONTABLE(D)

14 All rights reserved ©L. Manevitz Lecture 614 Goal Stack Planning cont. 2)Choose to work on ON(C,A) before ON(B,D): ON(C,A) ON(B,D) OTAD ON(B,D) ON(C,A)

15 All rights reserved ©L. Manevitz Lecture 615 Goal Stack Planning cont. 3)Achieve ON(C,A) with STACK(C,A): ON(C,A) ON(B,D) OTAD ON(B,D) ON(C,A)STACK(C,A)

16 All rights reserved ©L. Manevitz Lecture 616 Goal Stack Planning cont. 4)Add STACK’s preconditions: ON(C,A) ON(B,D) OTAD ON(B,D) STACK(C,A) HOLDING(C) CLEAR(A) CLEAR(A) HOLDING(C)

17 All rights reserved ©L. Manevitz Lecture 617 Goal Stack Planning cont. 5)Achieve CLEAR(A) with UNSTACK(B,A): ON(C,A) ON(B,D) OTAD ON(B,D) STACK(C,A) HOLDING(C) CLEAR(A) HOLDING(C) UNSTACK(B,A) ON(B,A) CLEAR(B) ARMEMPTY ON(B,A) CLEAR(B) ARMEMPTY CLEAR(A)

18 All rights reserved ©L. Manevitz Lecture 618 Goal Stack Planning cont. 6)Pop satisfied predicates: ON(C,A) ON(B,D) OTAD ON(B,D) STACK(C,A) HOLDING(C) CLEAR(A) HOLDING(C) UNSTACK(B,A) ON(B,A) CLEAR(B) ARMEMPTY ON(B,A) CLEAR(B) ARMEMPTY

19 All rights reserved ©L. Manevitz Lecture 619 Goal Stack Planning cont. 7)Achieve HOLDING(C) with UNSTACK(C,x): ON(C,A) ON(B,D) OTAD ON(B,D) STACK(C,A) HOLDING(C) CLEAR(A) HOLDING(C) UNSTACK(C,x) ON(C,x) CLEAR(C) ARMEMPTY ON(C,x) CLEAR(C) ARMEMPTY

20 All rights reserved ©L. Manevitz Lecture 620 Goal Stack Planning cont. 8)Achieve ON(C,x) by STACK(C,x): ON(C,A) ON(B,D) OTAD ON(B,D) STACK(C,A) CLEAR(A) HOLDING(C) UNSTACK(C,x) ON(C,x) CLEAR(C) ARMEMPTY ON(C,x) CLEAR(C) ARMEMPTY STACK(C,x) CLEAR(x) HOLDING(C) HOLDING(C) CLEAR(x)

21 All rights reserved ©L. Manevitz Lecture 621 Goal Stack Planning cont. 9)Terminate path because HOLDING(C) is duplicated. ON(C,A) ON(B,D) OTAD ON(B,D) STACK(C,A) CLEAR(A) HOLDING(C) UNSTACK(C,x) ON(C,x) CLEAR(C) ARMEMPTY CLEAR(C) ARMEMPTY STACK(C,x) CLEAR(x) HOLDING(C) HOLDING(C) CLEAR(x)

22 All rights reserved ©L. Manevitz Lecture 622 Goal Stack Planning cont. 10)Achieve HOLDING(C) with PICKUP, not UNSTACK: ON(C,A) ON(B,D) OTAD ON(B,D) STACK(C,A) CLEAR(A) HOLDING(C) PICKUP(C) ONTABLE(C) CLEAR(C) ARMEMPTY CLEAR(C) ARMEMPTY ONTABLE(C)

23 All rights reserved ©L. Manevitz Lecture 623 Goal Stack Planning cont. 11)Pop ONTABLE(C) and CLEAR(C), and achieve ARMEMPTY by STACK(B,D): ON(C,A) ON(B,D) OTAD ON(B,D) STACK(C,A) CLEAR(A) HOLDING(C) PICKUP(C) ONTABLE(C) CLEAR(C) ARMEMPTY CLEAR(C) ARMEMPTY ONTABLE(C) STACK(B,D) CLEAR(D) HOLDING(B) HOLDING(B) CLEAR(D)

24 All rights reserved ©L. Manevitz Lecture 624 Goal Stack Planning cont. 12)Pop entire stack, and return plan: i.UNSTACK(B,A). ii.STACK(B,D). iii.PICKUP(C). iv.STACK(C,A).

25 All rights reserved ©L. Manevitz Lecture 625 A Slightly Harder Blocks Problem A C B C B A Start: ON(C,A) ONTABLE(A) ONTABLE(B) ARMEMPTY Goal: ON(A,B) ON(B,C)

26 All rights reserved ©L. Manevitz Lecture 626 Goal Stack Planning There are two ways to begin solving: 21 ON(A,B) ON(B,C) ON(B,C) ON(A,B) ON(A,B) ON(B,C) ON(A,B) ON(B,C)

27 All rights reserved ©L. Manevitz Lecture 627 Goal Stack Planning cont. Let’s choose alternative 1.we will eventually produce this goal stack: ON(A,B) ON(B,C) ON(B,C) STACK(A,B) CLEAR(B) HOLDING(A) PICKUP(A) CLEAR(A) ARMEMPTY CLEAR(C) ARMEMPTY UNSTACK(C,A) ARMEMPTY CLEAR(C) ARMEMPTY ON(A,B) HOLDING(A) CLEAR(A)

28 All rights reserved ©L. Manevitz Lecture 628 Goal Stack Planning cont. We can pop off the stack goals that have already been satisfied: ON(A,B) ON(B,C) ON(B,C) STACK(A,B) CLEAR(B) HOLDING(A) PICKUP(A) CLEAR(A) ARMEMPTY CLEAR(C) ARMEMPTY UNSTACK(C,A) ARMEMPTY CLEAR(C) ARMEMPTY PUTDOWN(C) HOLDING(C) To satisfy ARMEMPTY we need to PUTDOWN(C).

29 All rights reserved ©L. Manevitz Lecture 629 Goal Stack Planning cont. We can continue popping: ON(A,B) ON(B,C) ON(B,C) STACK(A,B) CLEAR(B) HOLDING(A) PICKUP(A) CLEAR(A) ARMEMPTY PUTDOWN(C) HOLDING(C)

30 All rights reserved ©L. Manevitz Lecture 630 Goal Stack Planning cont. The current state is: The sequence of operators applied so far is: 1.UNSTACK(C,A) 2.PUTDOWN(C) 3.PICKUP(A) 4.STACK(A,B) CB A ONTABLE(B) ON(A,B) ONTABLE(C) ARMEMPTY

31 All rights reserved ©L. Manevitz Lecture 631 Goal Stack Planning cont. Now we can begin to work on ON(B,C). We need to stack B on C. To do that we need to unstack A from B. By the time we have achieved the goal ON(B,C), and popped it off the stack, we will have executed the following additional sequence of operators

32 All rights reserved ©L. Manevitz Lecture 632 Goal Stack Planning cont. The sequence of operators : 5.UNSTACK(A,B) 6.PUTDOWN(A) 7.PICKUP(B) 8.STACK(B,C) The problem state will be: C B A ON(B,C) ONTABLE(A) ONTABLE(C) ARMEMPTY

33 All rights reserved ©L. Manevitz Lecture 633 Goal Stack Planning cont. But now when we check the remaining goal on the stack: we discover that it is not satisfied. We have undone ON(A,B) in the process of achieving ON(B,C). The sequence of operators we need to add: 9.PICKUP(A) 10.STACK(A,B) ON(A,B) ON(B,C)

34 All rights reserved ©L. Manevitz Lecture 634 Goal Stack Planning cont. The complete plan that has been discovered is: 1.UNSTACK(C,A) 2.PUTDOWN(C) 3.PICKUP(A) 4.STACK(A,B) 5.UNSTACK(A,B) 6.PUTDOWN(A) 7.PICKUP(B) 8.STACK(B,C) 9.PICKUP(A) 10.STACK(A,B)  Although this plan will achieve the desired goal, it does not do so very efficiently.  The same would have happened if we had chosen the second alternative.

35 All rights reserved ©L. Manevitz Lecture 635 Goal Stack Planning cont. There are two approaches we can take to the question of how a good plan could be found: 1.Look at ways to repair the plan we already have – look for places in the plan where we perform an operation and then immediately undo it. We can eliminate both the doing and the undoing steps from the plan. 2.Use a plan-finding procedure that could construct efficient plans directly – the Nonlinear Planning.

36 All rights reserved ©L. Manevitz Lecture 636 Repairing the First Plan 1.UNSTACK(C,A) 2.PUTDOWN(C) 3.PICKUP(A) 4.STACK(A,B) 5.UNSTACK(A,B) 6.PUTDOWN(A) 7.PICKUP(B) 8.STACK(B,C) 9.PICKUP(A) 10.STACK(A,B) 1.UNSTACK(C,A) 2.PUTDOWN(C) 3.PICKUP(B) 4.STACK(B,C) 5.PICKUP(A) 6.STACK(A,B)

37 All rights reserved ©L. Manevitz Lecture 637 The Nonlinear Planning Begin work on the goal ON(A,B) by clearing A, thus putting C on the table. ACB C

38 All rights reserved ©L. Manevitz Lecture 638 Nonlinear Planning cont. Achieve the goal ON(B,C) by stacking B on C. ACB B

39 All rights reserved ©L. Manevitz Lecture 639 Nonlinear Planning cont. Complete the goal ON(A,B) by stacking A on B. AC B A

40 All rights reserved ©L. Manevitz Lecture 640 Backwards Non-Linear Planner Finds “Last Operator” recursively Uses theorem prover to prune paths

41 All rights reserved ©L. Manevitz Lecture 641

42 All rights reserved ©L. Manevitz Lecture 642 The Problem Solving System NOAH NOAH plans by developing a hierarchy of subgoals. The procedural net contains several levels of representation of a plan, each level more detailed than the previous one. For example: the node representing the abstract goal make coffee may be expanded to : grind coffee, boil water, put the coffee in a filter, pour the water through it.

43 All rights reserved ©L. Manevitz Lecture 643

44 All rights reserved ©L. Manevitz Lecture 644 NOAH cont. We’ll use NOAH to solve the blocks problem. The operators used in this example are slightly different from those we have been using. STACK – will put any object on any other (including the table), provided that both objects are clear. It includes the picking up of the object to be moved.

45 All rights reserved ©L. Manevitz Lecture 645 The Blocks Problem A reminder of the problem : A C B C B A Start: ON(C,A) ONTABLE(A) ONTABLE(B) ARMEMPTY Goal: ON(A,B) ON(B,C)

46 All rights reserved ©L. Manevitz Lecture 646 NOAH Solution The initial state of the problem solver: (ON(A,B) ON(B,C)) Level 1

47 All rights reserved ©L. Manevitz Lecture 647 NOAH Solution cont. The first thing that it does is to divide the problem into two subproblems: ON(A,B) Level 2 ON(B,C)SJ SplitJoin

48 All rights reserved ©L. Manevitz Lecture 648 NOAH Solution cont. At the third level the preconditions of STACK are considered – the two blocks involved must be clear. CLEAR(A) Level 3: before criticism CLEAR(B)SJ CLEAR(C)SJSSTACK(A,B)STACK(B,C)J 1 2 4 5 6 3

49 All rights reserved ©L. Manevitz Lecture 649 NOAH Solution cont. Now NOAH employs a set of critics to examine the plan and detect interactions among the subplans. Each critic is a little program that makes specific observations about the proposed plan.

50 All rights reserved ©L. Manevitz Lecture 650 The Resolve Conflicts critic The Resolve Conflicts critic – constructs a table that lists all the literals that are mentioned more than once in the plan. CLEAR(B):asserted: node 2 “Clear B” denied: node 3 “Stack A on B” asserted: node 4 “Clear B” CLEAR(C):asserted: node 5 “Clear C” denied: node 6 “Stack B on C”

51 All rights reserved ©L. Manevitz Lecture 651 The Resolve Conflicts critic cont. Constraints on the ordering of operation arise when a given literal must be true before one operation can be performed but will be undone by another. CLEAR(B):denied: node 3 “Stack A on B” asserted: node 4 “Clear B”

52 All rights reserved ©L. Manevitz Lecture 652 The Resolve Conflicts critic cont. Conclusion: Since putting A on B could undo the preconditions for putting B on C, putting B on C needs to be done first.

53 All rights reserved ©L. Manevitz Lecture 653 NOAH Solution cont. The third level after criticism to resolve conflicts: CLEAR(A) Level 3 CLEAR(B)SJ CLEAR(C)SJSSTACK(A,B)STACK(B,C)

54 All rights reserved ©L. Manevitz Lecture 654 Eliminate Redundant Preconditions Can be invoked to eliminate the redundant specification of subgoals. In this case CLEAR(B) appears twice and is only denied by the last step of the plan.

55 All rights reserved ©L. Manevitz Lecture 655 NOAH Solution cont. The third level after all criticism: CLEAR(A) Level 3 J CLEAR(B) CLEAR(C)SJSSTACK(A,B)STACK(B,C)

56 All rights reserved ©L. Manevitz Lecture 656 NOAH Solution cont. To clear A, C must be removed from A. in order to do that C must be clear : CLEAR(C) Level 4: before criticism J CLEAR(B) CLEAR(C)SJSSTACK(A,B)STACK(B,C)STACK(C,x)

57 All rights reserved ©L. Manevitz Lecture 657 The Resolve Conflicts critic The critic observes that putting B on C will make CLEAR(C) false, so everything that depends on C being clear will have to be done before B is put on C.

58 All rights reserved ©L. Manevitz Lecture 658 NOAH Solution cont. The Resolve Conflicts critic is employed: CLEAR(C) Level 4: after criticism to resolve conflicts CLEAR(B) CLEAR(C)SJSSTACK(A,B)STACK(B,C)STACK(C,x)

59 All rights reserved ©L. Manevitz Lecture 659 Eliminate Redundant Preconditions It notices that CLEAR(C) is required twice. Since putting C somewhere must occur before putting B on C, and both require C being clear then we know that when we get to putting B on C, C will be clear. CLEAR(C) can be eliminated from the lower path.

60 All rights reserved ©L. Manevitz Lecture 660 NOAH Solution cont. The Eliminate Redundant Preconditions critic is called: CLEAR(C) Level 4: after all criticism CLEAR(B)JSSTACK(A,B)STACK(B,C)STACK(C,x)

61 All rights reserved ©L. Manevitz Lecture 661 NOAH Solution cont. The system observes that the remaining goals, CLEAR(C) and CLEAR(B), are true in the initial state. Therefore the final plan is: Final plan STACK(A,B)STACK(B,C)STACK(C,x)


Download ppt "All rights reserved ©L. Manevitz Lecture 61 Artificial Intelligence Planning System L. Manevitz."

Similar presentations


Ads by Google