Q11 — AUTOMATED PLANNING

Holding D opens exactly three doors right now, but relevance only blesses the two Stack actions that write goal facts directly.

The Question

The domain description of a Blocks World with a single one-armed robot is given below.

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) }

Consider the following planning problem.

Start State: Start: { onTable(A), onTable(B), on(C,B), clear(A), clear(C), clear(D), holding(D) }

Goal Description: Goal: { on(A,D), on(B,C) }

#QuestionOfficial answer
11.1Which of the following are applicable actions for the given problem?A, B, C
11.2Which of the following are relevant actions for the given problem?A, B

The Topic in 60 Seconds

NotionTested againstMeaning
ApplicableStart stateevery literal of PRE(a)\text{PRE}(a) is present right now
RelevantGoal descriptionADD(a)\text{ADD}(a) writes a goal literal and DEL(a)\text{DEL}(a) destroys none of them

The two tests are independent: an applicable action can be useless; a relevant action may need five moves before it can run.

Deep-dive: browse the Concepts section for STRIPS planning.

Solutions

11.1 — Applicable actions → A, B, C

Start state highlights: armEmpty is absent — the robot is holding(D) — while A, C, D are all clear.

OptionPreconditions requiredPresent?Verdict
A Putdown(D)holding(D)✓Applicable
B Stack(D,A)holding(D) ✓, clear(A) ✓bothApplicable
C Stack(D,C)holding(D) ✓, clear(C) ✓bothApplicable
D Pickup(A)needs armEmpty✗ robot busyNot applicable
E Stack(A,D)needs holding(A)✗ holding DNot applicable
F Stack(B,C)needs holding(B)✗Not applicable

Exactly three actions fire — put D down, or drop it onto either exposed block.

11.2 — Relevant actions → A, B

Regress the goal {on(A,D), on(B,C)}\{\text{on}(A,D),\ \text{on}(B,C)\}:

  • on(A,D)\text{on}(A,D) is added by exactly one action: Stack(A,D) → option A. Its delete list {holding(A), clear(D)} touches no goal literal → relevant.
  • on(B,C)\text{on}(B,C) is added by exactly one action: Stack(B,C) → option B. Delete list {holding(B), clear(C)} also goal-safe → relevant.

Why the others miss:

OptionWhy not relevant
C Putdown(D)adds armEmpty, onTable(D) — neither is a goal literal
D Pickup(A)adds holding(A) — enabling at best, never a goal fact
E Stack(C,B)adds on(C,B) — the REVERSE of goal literal on(B,C)! Classic trap
F Stack(D,C)adds on(D,C) — again not asked for

Tricks & Tips

Answers: 11.1 A, B, C · 11.2 A, B