Q11 — AUTOMATED PLANNING

Applicable actions read preconditions off the start state; relevant actions fall out of regressing the goal — Stack(D,B) and Unstack(C,B) are the unavoidable achievers.

The Question

Blocks World domain (single one-armed robot), operators Pickup/Putdown/Unstack/Stack with standard precondition/add/delete lists.

Start State: { onTable(A), onTable(B), onTable(D), on(C,B), clear(A), clear(C), clear(D), armEmpty } Goal Description: { on(D,B), holding(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?C, E

The Topic in 60 Seconds

NotionTested againstMeaning
ApplicableStart stateEvery literal in PRE(a)\text{PRE}(a) is present in the current state → aa can be executed right now
RelevantGoal descriptionADD(a)\text{ADD}(a) contains a goal literal and DEL(a)\text{DEL}(a) destroys none of them → aa can appear in a plan that builds the goal (backward-chaining test)

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

Solutions

11.1 — Applicable actions → A, B, C

Check each option's preconditions against the start state:

OptionPreconditions requiredIn start state?Verdict
A Pickup(A)armEmpty ✓, clear(A) ✓, onTable(A) ✓all presentApplicable
B Pickup(D)armEmpty ✓, clear(D) ✓, onTable(D) ✓all presentApplicable
C Unstack(C,B)armEmpty ✓, clear(C) ✓, on(C,B) ✓all presentApplicable
D Pickup(C)needs onTable(C) — C sits on BfailsNot applicable
E Stack(D,B)needs holding(D) — arm is emptyfailsNot applicable
F Unstack(D,B)needs on(D,B) — D is on the tablefailsNot applicable

Answer: A, B, C

The arm is empty and A, C, D are all exposed, so exactly three actions fire: lift A off the table, lift D off the table, or unstack C from B. Pickup(C) is the classic trap — C is clear, but it is not on the table.

11.2 — Relevant actions → C, E

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

  • on(D,B)\text{on}(D,B) is added by exactly one action in this domain: Stack(D,B). Any plan must end its work on D with Stack(D,B); its delete list (holding(D), clear(B)) touches no goal literal. → relevant.
  • holding(C)\text{holding}(C) is added by both Pickup(C) and Unstack(C,B). But Unstack(C,B) is the only action that deletes on(C,B) — without it B never becomes clear and Stack(D,B) can never fire. It also delivers holding(C) directly, killing two goal needs in one move. → relevant.

Why the others miss:

OptionWhy not relevant
A Pickup(A)adds holding(A) — no goal literal involved; A is a bystander block
B Pickup(D)adds holding(D), which only enables Stack(D,B) but adds nothing the goal asks for
D Pickup(C)does add holding(C), but only after C has been put on the table — a detour that first destroys holding(C) via Putdown; along the forced route Unstack(C,B) already supplies holding(C), so the official key does not count it as relevant
F Unstack(D,B)adds holding(D), clear(B) — again enabling-only, and its precondition on(D,B) IS the goal, not a step toward it

Answer: C, E

Tricks & Tips

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