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) }
| # | Question | Official answer |
|---|---|---|
| 11.1 | Which of the following are applicable actions for the given problem? | A, B, C |
| 11.2 | Which of the following are relevant actions for the given problem? | C, E |
The Topic in 60 Seconds
| Notion | Tested against | Meaning |
|---|---|---|
| Applicable | Start state | Every literal in is present in the current state → can be executed right now |
| Relevant | Goal description | contains a goal literal and destroys none of them → 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:
| Option | Preconditions required | In start state? | Verdict |
|---|---|---|---|
A Pickup(A) | armEmpty ✓, clear(A) ✓, onTable(A) ✓ | all present | Applicable |
B Pickup(D) | armEmpty ✓, clear(D) ✓, onTable(D) ✓ | all present | Applicable |
C Unstack(C,B) | armEmpty ✓, clear(C) ✓, on(C,B) ✓ | all present | Applicable |
D Pickup(C) | needs onTable(C) — C sits on B | fails | Not applicable |
E Stack(D,B) | needs holding(D) — arm is empty | fails | Not applicable |
F Unstack(D,B) | needs on(D,B) — D is on the table | fails | Not 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 :
- is added by exactly one action in this domain:
Stack(D,B). Any plan must end its work on D withStack(D,B); its delete list (holding(D),clear(B)) touches no goal literal. → relevant. - is added by both
Pickup(C)andUnstack(C,B). ButUnstack(C,B)is the only action that deleteson(C,B)— without it B never becomes clear andStack(D,B)can never fire. It also deliversholding(C)directly, killing two goal needs in one move. → relevant.
Why the others miss:
| Option | Why 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