advanced problem solving systems: planning in order to solve nontrivial problems, it is necessary...

35
Advanced Problem Solving Systems: Planning In order to solve nontrivial problems, it is necessary to combine 1. Basic problem solving strategies 2. Knowledge representation mechanisms 3. Partial solutions and at the end combine into complete problem solution (decomposition) Planning refers to the process of computing several steps of a problem solving before executing any of them.

Upload: warren-goodman

Post on 17-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Advanced Problem Solving Systems: Planning

In order to solve nontrivial problems, it is necessary to combine1. Basic problem solving strategies2. Knowledge representation mechanisms3. Partial solutions and at the end combine

into complete problem solution (decomposition) Planning refers to the process of computing several

steps of a problem solving before executing any of them.

Planning is useful as a problem solving technique for non decomposable problem.

Page 2: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Components of a Planning System

In any general problem solving systems, elementary techniques to perform following function are required

1. Choose the best rule (based on heuristics) to be applied2. Apply the chosen rule to get new problem state3. Detect when a solution has been found4. Detect dead ends so that new directions are explored.

In more complex systems, we have to explore techniques for doing each of these tasks. Detect when an almost correct solution has been found and employ special techniques to make it totally correct. We will discuss planning methods using specific example of block world problem and explain ways in which each of above four things can be done.

Page 3: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

1. Choosing Rules to apply Most widely used technique for selecting appropriate rules is to first isolate a set of differences between the desired goal state and current state. Identify those rules that are relevant to reducing those difference. If more rules are found then apply heuristic information to choose among them.

2. Apply Rules In simple problem solving system, applying rules was easy as each rule specifies the problem state that would result from its application. In complex problem we deal with rules that specify only a small part of the complete problem state.

Page 4: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Block World Problem Description

Assumptions: Flat surface on which blocks can be placed. Number of square blocks of same size. Blocks can be stacked one upon another. Robot arm that can manipulate the blocks. It can hold

only one block at a time.

In block world problem, the state is described by a set of predicates representing the facts that were true in that state. One must describe for every action, each of the changes it makes to the state description. In addition, some statements that everything else remains unchanged is also necessary.

Page 5: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Actions (Operations) performed by Robot arm• UNSTACK (X, Y) : [US (X, Y)]Pick up X from its current position on block Y. The arm must be empty and X has no block on top of it.

• STACK (X, Y): [S (X, Y)]Place block X on block Y. Arm must holding X and the top of Y is clear.

• PICKUP (X): [PU (X) ]Pick up X from the table and hold it. Initially the arm must be empty and top of X is clear.

• PUTDOWN (X): [PD (X)]Put block X down on the table. The arm must have been holding block X.

Page 6: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• Following predicates are used in order to perform above mentioned operations/actions

ON (X, Y) - Block X is on block Y.ONTABLE(X) - Block X is on the table. [ONT (X)]CLEAR(X) - Nothing on top of X. [CL (X)]HOLDING(X) - arm is holding X. [HOLD (X)]ARMEMPTY - arm is empty. [AE]

• The following logical statements are true in this block world.1. Holding X means, arm is not empty

( X) HOLD (X) ~ AE2. X is on a table means that X is not on the top of any

block( X) ONT (X) ~ ( Y) ON (X, Y)

3. Any block with no block on has clear top( X) (~ ( Y) ON (X, Y)) CLT (X)

Page 7: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• The effect of US(X, Y) could be described by the following axiom

[CL (X, State) ON (X, Y, State)] [HOLD(X, DO (US (X, Y), State))

CL (Y, DO (US(X, Y),State)) ] DO is a function that generates a new state as a result of given action and a state. Hence if we execute US (A,B) in S0 then we can prove thatHOLD (A, S1) CLEAR (B, S1) holds true, where S1 is new state from doing Unstack operation. But we do not know about other situations in new state S1. For example, B is still on the table but we can’t derive it. We have to provide a set of rules called frame axioms (components of the state that are not affected by US operator) such as

ONT(Z, S) ONT(Z, DO (US (A, B), S))

Page 8: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• We also need to say that ON relation is only affected by US operator if the blocks involved in ON relation are the same involved in US operation.

[ ON(M, N, S) NE (M, X) ] ON(M, N, DO (US (X, Y), S))

Advantage of this approach is that simple mechanism of resolution can perform all the operations that are required on the state descriptions. Disadvantage is that number of axioms becomes very large for complex problem such that COLOR of block also does not change. So we have to specify rule for each attribute.

COLOR (X, red, S) COLOR (X, red, DO(US(Y, Z), s))

Page 9: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

To handle complex problem domain, we need a mechanism that does not require large number of explicit frame axioms. One such mechanism was used in early robot problem solving system STRIPS (developed by Fikes, 1971). In this approach, each operation is described by a list of new predicates that cause operator to be true and list of old predicates that it causes to become false. These lists are called ADD and DELETE respectively. A third list Pre_Cond is also specified for each operator that must be true for the operator to be applied. Any predicate not included on either ADD or DELETE list of an operator is assumed to be unaffected by it. Frame axioms are specified implicitly in STRIPS which greatly reduces amount of information stored.

Page 10: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

STRIPS – Style Operators1. S (X, Y)

Pre: CL (Y) HOLD (X)Del: CL (Y) HOLD (X)Add: AE ON (X, Y)

2. US (X, Y)Pre: ON (X, Y) CL (X) AEDel: ON (X, Y) AEAdd: HOLD (X) CL (Y)

3. PU (X)Pre: ONT (X) CL (X) AE

Del: ONT (X) AEAdd: HOLD (X)

4. PD (X)Pre: HOLD (X)Del: HOLD (X)Add: ONT (X) AE

Page 11: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• By making the frame axioms implicit we have greatly reduced the amount of information that must be provided for each operator .• If a new attribute is introduced, it is not necessary to go back and add a new axioms for each operator.• Here state is dropped for the sake of simplicity.• If initial state is

ON (X, Y) ONT (Y) CL (X) AEthen on applying US (X, Y), we get new state as

ONT (Y) CL (Y) HOLD (X)• Simply updating a state description works well as a way of keeping track of the effects of a given sequence of operators.• If incorrect sequence is explored then it must be possible to return to the previous state so that different path can be explored.

Page 12: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Simple planning using a goal stack One of the earliest techniques for solving compound goals that may interact, was the use of goal stack. This approach was used by STRIPS system. Here problem solver makes use of a single stack that contains both goals and operators that have been proposed to satisfy those goals. In Goal stack planning method, sub goals are solved linearly and then the conjoined sub goals is solved. Plans generated by this method will contain complete sequence of operations for attaining one goal followed by complete sequence of operations for the next etc. Problem solver also relies on

A database that describes the current situation. Set of operators with precondition, add and delete lists.

Page 13: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Algorithm

• Let us assume that the goal to be satisfied is:GOAL = G1 G2 … Gn

• Subgoals G1, G2, … Gn are stacked with compound goal G1 G2 … Gn at the bottom.

Top G1

G2

:Gn

Bottom G1 G2 … G4

• At each step of problem solving process, the top goal on the stack is pursued.

Page 14: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Find an operator that satisfies sub goal G1 (makes it true) and replace G1 by the operator. If more than one operator satisfies the sub goal then apply some heuristic to choose one. Now in order to execute the top most operations, its preconditions are added in the stack. Once preconditions of an operator are satisfied, then we are guaranteed that operator can be applied to produce a new state. New state is obtained by using ADD and DELETE lists of an operator to the existing database. Problem solver keeps tract of operators applied. This process is continued till the goal stack is empty and problem solver returns the plan of the problem.

Page 15: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Solving Block World problem using Goal stack method

Consider the following initial and goal states

Initial State Goal State

B

AC

O

D

C

A

B

D

• Logical representation of Initial and Goal states are:Initial State: ON(B, A) ONT(A) ONT(C) ONT(D)

CL(B) CL(C) CL(D) AEGoal State: ON(C, A) ON(B, D) ONT(A) ONT(D)

CL(C) CL(B) AE

Page 16: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• We notice that ONT(A) ONT(D) CL(C) CL(B) AE

in goal state is also true in initial state. • Let us represent for the sake of simplicity,

ONT(A) ONT(D) CL(C) CL(B) AE by TSUBG.• We have to work only to satisfy ON(C, A) and ON(B, D) and in the process of satisfying, make sure that TSUBG remains true.• There are two ways of solving it. • Either start solving ON(C, A) or ON(B, D) first. Let us solve ON(C, A) first, so stack will look like as:

Goal Stack:ON(C, A) ON(B, D)

ON(C, A) ON(B, D) TSUBG

Page 17: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• In order to solve ON(C, A), only operation S(C, A) could be applied. • So replace ON(C, A) with S(C, A) in goal stack. Goal Stack:

S (C, A) ON(B, D)

ON(C, A) ON(B, D) TSUBG • Stack operator S(C, A) can be applied only if its preconditions are true. So add its preconditions on the stack.Goal Stack:

CL(A)HOLD(C) Preconditions

of STACKCL(A) ) HOLD(C)

S (C, A) OperatorON(B, D)

ON(C, A) ON(B, D) TSUBG

Page 18: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

State_0: ON(B, A) ONT(A) ONT(C) ONT(D) CL(B) CL(C) CL(D)AE• Next check if CL(A) is true in State_0. • Since it is not true in State_0, only operator that could make it true is US(B, A). • So replace CL(A) with US(B, A) and add its preconditions. Goal Stack:

ON(B, A) CL(B) Preconditions of UNSTACK AEON(B, A) CL(B) AEUS(B, A) OperatorHOLD(C) CL(A) ) HOLD(C)

S (C, A) OperatorON(B, D)ON(C, A) ON(B, D) TSUBG

Page 19: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• We see from State_0 that ON(B, A), CL(B) and AE are all true, so pop them along with its compound goal.• Now pop US(B, A) and produce new state using its ADD and DELETE lists. • Add US(B, A) in a queue of sequence of operators.

SQUEUE = US (B, A)State_1: ONT(A) ONT(C) ONT(D) HOLD(B) CL(A) CL(C) CL(D)

Goal Stack:HOLD(C) CL(A) ) HOLD(C)

S (C, A) OperatorON(B, D)

ON(C, A) ON(B, D) TSUBG

• Now satisfy the goal HOLD(C).

Page 20: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• Two operators can be used1. PU(C )2. US(C, X), where X could be any block

• Let us choose PU(C ) and proceed further. Goal Stack:

ONT(C) CL(C) preconditions of AE

ONT(C) CL(C) AE

PU(C) OperatorCL(A) ) HOLD(C)

S (C, A) OperatorON(B, D)ON(C, A) ON(B, D) TSUBG

Page 21: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

State_1: ONT(A) ONT(C) ONT(D) HOLD(B) CL(A) CL(C) CL(D)• Here ONT(C ) and CL(C ) are true in State_1, so pop them off.• AE is not true as arm is holding B, so in order to make it true do either S(B, X) or PD(B).• Let us choose S(B, X). By looking ahead a bit, we see that we want B onto D. Let us unify X with D. Goal Stack:

CL(D)HOLD (B) Preconditions of STACKCL(D) HOLD(B)S (B, D) OperatorONT(C) CL(C) AEPU(C) OperatorCL(A) ) HOLD(C)

S (C, A) OperatorON(B, D)ON(C, A) ON(B, D) TSUBG

Page 22: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• Now CL(D) and HOLD(B) are both true. • Now pop S(B, D) and produce new state using its ADD and DELETE lists. Add S(B, D) in a queue of sequence of operators. Change the state.

SQUEUE = US (B, A), S(B, D)State_2: ONT(A) ONT(C) ONT(D) ON(B, D) CL(A) CL(C) CL(B)AE

• All conditions of PU (C ) are satisfied, so PU (C ) can be performed. POP it and add in queue of sequence of operators. Change the state.

SQUEUE = US (B, A), S(B, D), PU(C )

A C

B

D

Page 23: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

State_3:ONT(A) HOLD(C) ONT(D) ON(B, D) CL(A) CL(B) • Finally all preconditions of S(C, A) are true, so pop it and add to solution queue.

SQUEUE = US (B, A), S(B, D), PU(C ), S(C, A)State_4: ONT(A) ON(C, A) ONT(D) ON(B, D) CL(C) CL(B) AEGoal Stack:

ON(B, D)ON(C, A) ON(B, D) TSUBG

• From database, we see ON(B, D) is true and compound goal is still true, so pop these out.• Problem solver returns the solution queue containing the sequence of operators to be applied as US (B, A), S(B, D), PU(C ), S(C, A)• Heuristic information can be applied to guide the search process• Some interaction among sub goals could help to produce a good overall solution.

Page 24: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Difficult Problem• The Goal stack method is not adequate for more difficult problems. • It fails to find good solution. • Let us consider the following block world problem

Initial State (State0) Goal State

C

A B

A

B

C

Page 25: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Initial State:State_0:

ON(C, A) ONT(A) ONT(B) Goal State:

ON(A, B) ON(B, C) Let us remove CLEAR and AE predicates for the sake of simplicity. For satisfying ON(A, B), we have to apply following operators

US(C, A) , PD(C), PU(A) and S(A, B)

C

A B C

A

B

Page 26: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

State_1:ON(B, A) ONT(C)

Now work for satisfying ON(B, C). The following operators are applied

US(A, B) , PD(A), PU(B) and S(B, C)State_2:

ON(B, C) ONT(A)

C

A

BA

B

C

Page 27: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Finally satisfy combined goal ON(A, B) ON(B, C). We fail as while satisfying ON(B, C), we have undone ON(A, B). Difference in goal and current state is ON(A, B). Operations required are PU(A) and S(A, B)

Goal State

A

B

C

A

B

C

Page 28: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Now combined goal is again checked and found to be satisfied. The complete plan has the following operations in the solution sequence

1. US(C, A)2. PD (C)3. PU(A)4. S(A, B)5. US(A, B)6. PD(A)7. PU(B)8. S(B, C)9. PU(A)10. S(A, B)

Although this plan will achieve the desired goal, but it is not efficient.

Page 29: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

In order to get efficient plan, either repair this plan or use some other method. Repairing is done by looking at places where operations are done and undone immediately, such as S(A, B) and US(A, B). By removing them, we get

1. US(C, A)2. PD (C)3. PU(A)4. PD(A)5. PU(B)6. S(B, C)7. PU(A)8. S(A, B)

In new plan, we see that PU(A) and PD(A) are complimentary operations, so remove them also.

Page 30: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

We get the final plan as:

1. US(C, A)2. PD (C)3. PU(B)4. S(B, C)5. PU(A)6. S(A, B)

Eventually, we got a final plan but wasted a great deal of problem solving efforts.

There exist another method called nonlinear planning which constructs efficient plans directly.

Page 31: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Initial State (State0) Goal State

C

A B

A

B

C

Nonlinear Planning using Goal Set Generate a plan by doing some work on one goal, then some on another and then some more on the first one. Such plans are called nonlinear plans as it is not composed of a linear sequence of complete sub plans. Consider the same example done earlier using goal stack method.

Page 32: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

• A good plan for the solution of the above problem is the following.

1. Begin work on goal ON (A,B) by clearing A thus putting C on the table.

2. Achieve ON (B,C) by stacking B on C.3. Complete the goal ON (A,B) by stacking A on B.

• One way to find such a plan is to consider the collection of desired goals as a set.• Search procedure that operates is completely backward from the goal to the initial state, with no operators being actually applied along the way. • Idea is to look first for the operator that will be applied last in final solution.• It assumes that all but one of the sub goals have already been satisfied.

Page 33: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

Find all the operators that might satisfy the final sub goal (assumed all other sub goals are satisfied). Each of them may have preconditions that must be met so that new combined goal must be generated including those preconditions as well as the original goals. Many of the paths can be quickly be eliminated because of contradiction. Consider the last sub goal to be proved is either ON(A, B) or ON(B, C). If ON(A, B) is the last sub goal, then all its preconditions and ON(B, C) must be assumed to be true prior to this operation. Backward chaining procedure is applied to this problem. Whenever contradiction occurs in a goal set such as {HOLD (X), AE}, the path is pruned. If the goal set contains false then also that path is pruned.

Page 34: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

When an operator is applied, it may cause the sub goals in a set no longer true. So non selected goals are not directly copied to new goal set but a process called regression is applied. Regression can be thought of as the backward application of operators. Each goal is regressed through an operator whereby, we are attempting to determine what must be true before the operator is performed. For example:i. Reg(ON(A, B), S(C, A)) = ON(A, B)ii. Reg(ON(A, B), S(A, B)) = trueiii. Reg(ON(A, B), PU(C)) = ON(A, B)iv. Reg(AE, PD(A)) = truev. Reg(AE, S(X, Y)) = truevi. Reg(AE, PU(A)) = falsevii. Reg(AE, US(A, B)) = false

Page 35: Advanced Problem Solving Systems: Planning  In order to solve nontrivial problems, it is necessary to combine 1.Basic problem solving strategies 2.Knowledge

1S(A, B) S(B, C)

2 3 4

US(A, X) 5 7

PU(A)

68 PD (X) 9 S (X, Y) 10 US (X, A) 11 PD(A)

S(B, C) 12 US (X, B)

1315 16

US(B, X) 14 PU(B) S(X, Y)

PD(X) 17

X = A 18 X = C US(C, A)

X = B 19 20

Initial StateTherefore, plan is:

US(C, A), PD(C), PU(B), S(B, C), PU(A), S(A, B)

ON(A, B)ON(B, C)

CL(C )HOLD (B)ON(A, B)

CL (B)HOLD (A)ON(B, C)

AECL(A)ONT(A)CL(B)ON(B, C)

HOLD(B)CL(C)CL(A)ONT(A)CL(B)

AEONT(B)CL(B)CL(C)CL(A)ONT(A)

HOLD(X)ONT(B)CL(B)CL(C)CL(A)ONT(A)

AECL(C)ON(C, A)ONT(B)CL(B)ONT(A)