Question 23
AUTOMATED PLANNING
The domain description of a Blocks World with a single one-armed robot is given below.
Note: this is the same domain description used in the weekly assignments.
PREDICATES
armEmpty The arm is not holding any block, it is empty.holding(X) The arm is holding X.onTable(X) X is on the table.clear(X) X has nothing above it, it is clear.on(X,Y) X is directly placed on Y.
OPERATORS
Pickup(X): pick up X from the table. Preconditions: { armEmpty, clear(X), onTable(X) } Add Effects : { holding(X) } Del Effects : { armEmpty, onTable(X) }
Putdown(X): place X on the table. Preconditions: { holding(X) } Add Effects : { armEmpty, onTable(X) } Del Effects : { holding(X) }
Unstack(X,Y): pick up X that is directly sitting on Y. Preconditions: { armEmpty, clear(X), on(X,Y) } Add Effects : { clear(Y), holding(X) } Del Effects : { armempty, on(X,Y) }
Stack(X,Y): place X directly on top of Y. Preconditions: { holding(X), clear(Y) } Add Effects : { armEmpty, on(X,Y) } Del Effects : { holding(X), clear(Y) }Tie-breaker: When actions are chosen non-deterministically, choose actions that lead to a plan. Throw away the actions that lead to dead-ends or cycles.
Tie-breaker: Treat the goal description, preconditions and effects as lists that are accessed from left to right. When the elements in a list are pushed one by one to a stack, the last element in the list will be at the top of the stack. It has the effect of reversing the list.
A planning problem is given below, find a plan using the operators and predicates defined in the blocks-world domain.
Start: { clear(A), clear(B), holding(A), on(B,C), onTable(C) }
Goal Description: { onTable(B), on(A,B), onTable(C) }
Based on the above data, answer the given subquestions.
Which of the following are relevant actions for the given planning problem?
Pickup(A)
Putdown(A)
Putdown(B)
Putdown(C)
Stack(A,B)