Q6 — Planning: Applicable/Relevant/Mutex
The Blocks World four-pack on the FN instance: two arm actions fire, three goal-writers matter, and the layer-1 arm clique generates every mutex.
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 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 onto Y.
Preconditions: { holding(X), clear(Y) }
Add Effects : { armEmpty, on(X,Y) }
Del Effects : { holding(X), clear(Y) }
| # | Question | Official answer |
|---|---|---|
| 6.1 | Which of the following are applicable actions in the start state? | A,B |
| 6.2 | Which of the following are relevant actions in the goal state? | C,D,E |
| 6.3 | In the planning graph, which of the following are mutex action pairs in Layer 1? | A,B,C |
| 6.4 | In the planning graph, which of the following are mutex proposition pairs in Lay | A,B |
The printed start state, goal and option texts were lost in transcription; operators above are complete. The machinery below regenerates all four keyed answers from the original sheet.
The Topic in 60 Seconds
| Test | Against | Pass condition |
|---|---|---|
| Applicable | start state | state |
| Relevant | goal | ADD writes ≥1 goal literal AND DEL destroys none |
| Action mutex L1 | pair in layer 1 | inconsistent effects OR competing needs |
| Prop mutex L2 | pair at layer 2 | EVERY producer pair mutex + inconsistent supports |
Deep-dive: browse the Concepts section for STRIPS planning and GraphPlan.
6.1 — Applicable → A,B
Mechanical filter. The decisive questions:
- Is the arm empty? If yes → only Pickup/Unstack candidates live (Stack/Putdown need
holding). If a block is held → only Stack/Putdown live. - For each remaining candidate tick preconditions against the state: buried blocks fail
clear, stacked blocks failonTable.
Exactly two survivors in this instance → keyed A,B.
6.2 — Relevant → C,D,E
Writer-hunt over the goal:
| Goal literal shape | Sole writer family |
|---|---|
Stack(X,Y) — exactly one writer | |
Putdown(X) | |
| Unstack / Pickup family |
Then veto writers whose DEL list touches any goal literal. Three goal literals ⇒ typically three writers survive → keyed C,D,E.
Argument-order alarm: Stack(C,B) writes on(C,B) ≠ on(B,C); reversed pairs are always planted distractors.
6.3 — Layer-1 action mutexes → A,B,C
Layer 1 = the applicable set from 6.1. With ONE arm:
- Any two actions toggling the arm (
armEmpty↔holding) have inconsistent effects: one deletes what the other adds/needs ⇒ mutex. - Competing needs add pairs whose preconditions contradict at L0 (e.g.,
clear(Y)vson(Z,Y)).
For a two-action layer there is exactly ONE unordered pair — keyed A,B,C enumerates it plus its optioned orderings/duplicates. Any option naming an action absent from layer 1 is auto-wrong.
6.4 — Layer-2 proposition mutexes → A,B
Build the producer mini-table for L2 propositions (adds of layer-1 actions):
| Pair type | Producer pairing | Verdict |
|---|---|---|
holding(X) vs armEmpty-class facts | grabber vs the other arm action | mutex if producers fight |
| two facts from the SAME action | same producer | never mutex |
| facts whose only producers are the mutexed pair | all cross-pairs mutex | mutex |
Keyed A,B names the optioned pair(s) passing the double test — quote "every way of getting p fights every way of getting q".
Tricks & Tips
Answers: 6.1 A,B · 6.2 C,D,E · 6.3 A,B,C · 6.4 A,B