Intelligence, Agency & Consciousness · Paper 0086

When failure names only what caused it

Graphplan already remembers failed goal sets. Kambhampati’s decisive move is to ask why each failure occurred, learn only the responsible subgoals, and jump back to the latest decision that can actually change the explanation.

Intelligence, Agency & Consciousness · Paper 0086

When failure names only what caused it

Rajesh Ranjan Mahapatra

Graphplan already remembers failed goal sets. Kambhampati’s decisive move is to ask why each failure occurred, learn only the responsible subgoals, and jump back to the latest decision that can actually change the explanation.

© 2026 Rajesh Ranjan Mahapatra. 29 min read

When failure names only what caused itAll AI Research Library

TLDR

Five-point orientation
  1. Plan extraction is a dynamic CSP. Proposition goals are variables, supporting actions are values, mutexes constrain value pairs, and chosen actions activate predecessor goals.
  2. Ordinary memos overstate failure. Graphplan stores an entire failing goal set, even when only a small subset caused the contradiction.
  3. Explanations make learning reusable. EBL regresses a minimal conflict through selected actions and stores the responsible predecessor subgoals as a smaller no-good.
  4. Dependencies control retreat. DDB jumps to the latest assignment named by the conflict set, skipping decisions that cannot affect the failure.
  5. Search plumbing matters by domain. EBL/DDB produced the largest reported gains; sticky values, ordering, checking and restarts helped unevenly and carried overhead.
01 · Graphplan’s two phases

Build an optimistic graph, then prove that one compatible support set exists

A planning graph makes reachability cheap enough to see, but its unioned layers do not themselves constitute a plan. Backward extraction must select non-mutex actions whose preconditions can be supported recursively.

Starting from the initial state, Graphplan alternates proposition layers and action layers. An action enters when its preconditions appear without pairwise mutex; persistence actions carry unchanged propositions forward. The following proposition layer unions all effects. Mutex propagation records selected action and proposition pairs that cannot coexist.

Expansion continues until every goal appears at a proposition layer and no goal pair is mutex. That is necessary, not sufficient. The graph is a disjunctive compression of many forward states: individually reachable propositions can still lack a jointly consistent supporting assignment.

Backward search chooses an action supporting each goal at level k, rejecting action pairs marked mutex. The union of chosen preconditions becomes the goal set at k−1. Recursion succeeds on reaching the initial layer; otherwise it explores alternative supports. If no assignment works at the current depth, Graphplan expands another level.

The original algorithm memoises a failed subgoal set at its level. A later search containing that complete set fails immediately. Because layers can level off while search no-goods continue to change, Graphplan can prove absence of a finite plan in the classical setting when graph and memo conditions stabilise.

Kambhampati’s study does not replace the graph. It reinterprets extraction using constraint-satisfaction concepts, exposing what standard chronological backtracking and whole-set memoisation throw away. The transformation is analytical and operational: once failure has an explanation, the search can both learn and retreat more precisely.

Graphplan alternates expansion and backward extractionProposition and action layers expand left to right; a bold backward path selects compatible supports from goal to initial state.P₀A₀P₁A₁GOALSexpand → · extract compatible support ←
Figure 1 · Reachability first, consistency second. The graph compresses possible achievement; backward search must still construct one support assignment through every level.Source scope: primary paper, Sections 1–2.1.

Worked example 1 · goals present but not jointly achievable

Suppose g₁ and g₂ both appear at level k and are not proposition-mutex. Every action supporting g₁ may nevertheless conflict with every action supporting g₂. The reachability test passes, but backward assignment proves the level has no plan.

Causal probe 1 · remove mutex propagation

More actions and propositions appear sooner, yet backward search must rediscover obvious incompatibilities repeatedly. Graph construction becomes cheaper while extraction becomes far less informed; total planning time can increase.

02 · the dynamic CSP mapping

Supporting an active proposition activates the action’s preconditions

A standard CSP fixes its variables in advance. Graphplan’s extraction problem is dynamic because choosing a support at one layer creates the variables that must be assigned at the preceding layer.

Each proposition at each graph level is a DCSP variable. Its domain contains the actions at the previous action layer that support it. Top-level goals begin active. Assigning action a as the value of goal g activates every precondition of a as a variable at level k−1.

Action mutexes become constraints between value assignments. If actions a and b are mutex, then any propositions supported by them cannot simultaneously take those values. Proposition mutexes prohibit simultaneous activation: both variables cannot take non-null values in the same solution.

A DCSP can be compiled to an ordinary CSP by adding a null value ⊥ to every domain. Inactive means assigned ⊥; active means constrained not to ⊥. Activity implications become higher-arity constraints connecting a selected support to non-null predecessor variables. This allows standard CSP solvers but can create large extensional constraints.

The direct DCSP view mirrors Graphplan’s epoch-by-epoch backward search and avoids materialising every constraint. It also clarifies why generic CSP heuristics need not transfer unchanged. A present goal variable with a small domain may activate many difficult predecessors, while a larger domain may contain a support with easy preconditions.

The mapping separates graph-level pruning from search-level consistency. Planning-graph construction enforces partial directed one-consistency by admitting supported actions and partial directed two-consistency through mutex propagation. It does not establish full one- or two-consistency over actual values, much less higher-arity consistency.

A planning graph maps to dynamic CSP variables, values and activity constraintsGoal propositions become variables, supporting actions become domain values, mutexes become red constraints and selected actions activate predecessor variables.PLANNING GRAPHg₁g₂action aaction ba mutex bDYNAMIC CSPvariables: G₁, G₂domains: {a}, {b}constraint: ¬(G₁=a ∧ G₂=b)G₁=a ⇒ activate pre(a)G₂=b ⇒ activate pre(b)
Figure 2 · Plans become conditional assignments. The selected value of an active goal determines which predecessor variables enter the problem.Source scope: primary paper, Section 2.2 and Figure 1.

Worked example 2 · one choice creates three new goals

If action Load supports goal InTruck but requires AtPackage, AtTruck and ClearDock, assigning Load to InTruck activates all three propositions at the previous level. Search cost depends on this induced subproblem, not merely on InTruck’s current domain size.

Causal probe 2 · replace an action with an equivalent lower-precondition action

The top-level domain size stays unchanged, yet the DCSP below becomes smaller. A variable-ordering rule looking only at current live values misses the change; an activation-aware rule can detect it.

03 · what mutex propagation knows

Pairwise reachability is a conservative preview, not complete consistency

The CSP lens reveals exactly what Graphplan’s expansion has enforced: and the higher-order conflicts it leaves for backward search.

Partial directed one-consistency excludes an action when its preconditions are absent or pairwise mutex. Yet the appearance of a proposition does not guarantee that any complete support assignment reaches it in conjunction with the rest of the goal set. A surviving value can still be impossible under other assignments.

Partial directed two-consistency marks proposition pairs mutex when all their supporting action pairs are mutex. This speaks about simultaneous activity: whether both can take some non-null value: not whether every particular value pair is feasible. Fine-grained action mutex constraints remain for extraction.

Higher-arity contradictions can evade all pairwise tests. Three goals may be pairwise supportable while no triple of actions is jointly consistent. Whole-goal memoisation then supplies failure-driven higher-order consistency, but only after search encounters the combination.

Deriving every value-level no-good during graph expansion could strengthen pruning dramatically and also explode storage. With l levels, m goals per level and d supporting actions per goal, Graphplan-style pairwise proposition mutexes scale roughly with l·m², whereas pairwise value no-goods can scale with l·[m(d+1)]².

The paper repeatedly treats learning as a utility problem. A fact may be logically derivable yet not worth storing or checking. Conservative graph mutexes and level-indexed memos keep management cost low; EBL seeks a better reuse-to-overhead ratio by making each learned set smaller and more relevant.

Pairwise consistency can miss a three-goal contradictionThree goals have green pairwise links, but a red triangle in their centre marks that no joint support tuple satisfies all three.g₁g₂g₃NO VALID TRIPLEeach pair has support · the set does not
Figure 3 · Local compatibility does not compose automatically. Memoisation learns higher-order failure after extraction proves that pairwise survivors have no joint assignment.Source scope: primary paper, Section 2.3.

Worked example 3 · every pair works, the triple fails

Actions for g₁, g₂ and g₃ can be chosen so each pair has at least one compatible combination, while every complete triple violates some mutex. No proposition pair is marked mutex, so backward search must discover the three-way no-good.

Causal probe 3 · precompute all triple conflicts

Extraction shrinks, but graph construction and memory can grow combinatorially. The intervention trades online failure analysis for broad up-front consistency enforcement; its value depends on how often learned triples recur.

04 · ordinary memoisation

Remembering the whole failing set hides the real dependency

Standard Graphplan stores every goal in a failed search node as a memo, even when some goals played no role in the contradiction.

Suppose goals {P₁,P₂,P₃,P₄,P₅,P₆} fail because every support for P₄ conflicts with choices already made for P₁ and P₂. P₃, P₅ and P₆ are spectators. Whole-set memoisation records all six. It will prune only a future goal set containing all six, missing many contexts where {P₁,P₂,P₄} reappears.

Chronological backtracking likewise retreats first to P₃, the immediately preceding assignment, although changing P₃ cannot repair P₄. The search can revisit every value of irrelevant intervening goals before it changes P₂ or P₁. Learning and backtracking suffer from the same missing explanation.

Normal memos are nevertheless conservative and cheap. They contain only proposition variables from one planning-graph level, are stored separately by level and are checked only against same-level goal sets. They ignore value assignments, drastically limiting the no-good universe and lookup burden.

Subset matching already makes a memo applicable when it is contained in the current goal set. But shrinking the learned set is what makes subset matching powerful. The experiments found that subset memoisation alone improved memo use without dramatic overall performance; EBL/DDB created the general no-goods that could be reused frequently.

Memo length becomes a measurable explanation-quality proxy. In Rocket-ext-a, average learned length fell from about 24 goals to 8.5 with EBL. A hidden eight-goal failure can be embedded in choose(24,8) larger contexts. Whole-set learning repeatedly rediscovers it under different irrelevant companions.

A full memo contains spectators while a conflict memo keeps only causesSix goal cards form a large memo; three fade as irrelevant, leaving a smaller red conflict set reused across several future goal sets.WHOLE-SET MEMOP1P2P3P4P5P6explainGENERAL MEMOP₁P₂P₄P₁ P₂ P₃ P₄ · prunedP₁ P₂ P₄ P₆ · pruned
Figure 4 · Smaller explanations match more futures. Removing spectator goals makes one learned failure applicable across many supersets.Source scope: primary paper, Sections 3, 5.2 and 6.

Worked example 4 · one conflict inside many contexts

If {P₁,P₂,P₄} is impossible, then adding P₃ or P₆ cannot make it possible. The three-goal memo correctly prunes every superset. A six-goal memo waits for one exact entourage and loses most reuse.

Causal probe 4 · store value-level no-goods instead

Learning can become more precise: for example P₁=A₅ with P₄=A₉: yet the candidate store expands with domain size. Proposition-only memos trade precision for bounded retrieval cost.

05 · explanation-based learning

Regress the contradiction through the supports that created it

EBL equips each search variable with a conflict set: an incrementally maintained partial explanation naming the active goals whose current assignments make a value impossible.

When the solver is about to assign condition c, its conflict set begins with {c}. If a candidate support action conflicts with an action already selected for c′, add c′. When all values of c fail, the accumulated set explains why c cannot be supported under the current partial assignment.

The explanation omits permanent domain facts and mutex relations because the planning graph already represents them. It retains the variable names whose current assignments participate. This compressed conflict set is sufficient for backjumping and for regressing failure to the preceding level.

If an epoch at level k−1 fails, its conflict set names predecessor goals. Those goals arose as preconditions of actions selected to support level-k goals. Regression maps each conflicting predecessor back to the higher-level goal whose chosen action activated it, forming a learned memo at level k.

Two regression heuristics control generality. One prefers a higher-level goal whose action contributed the failing precondition and is already in the current conflict. Another can choose a goal that supports deeper DDB. These choices affect efficiency, not soundness or completeness, because the regressed set still entails failure.

EBL is therefore not learning a domain rule in unrestricted language. It is projecting a proof of local extraction failure into Graphplan’s level-indexed proposition vocabulary. The learned object is small enough to match quickly and general enough to prune sibling and later epochs.

conflict(c) ← {c} for each support value a of c: if a mutex selected support of c′: conflict(c) ← conflict(c) ∪ {c′} if every value fails: return conflict(c) regress predecessor conflicts through the selected actions that activated them
A leaf conflict is regressed to the goals whose actions activated itA red predecessor conflict flows upward through selected actions, dropping irrelevant branches and becoming a smaller goal-level memo.G₁G₂G₃G₄predecessor failure {P₁,P₂,P₄}regress only through causal supportslearn {G₁,G₂,G₄}; omit G₃
Figure 5 · Failure is projected into a reusable vocabulary. Conflict regression keeps the higher-level goals causally responsible for activating the impossible predecessor set.Source scope: primary paper, Section 4 and Figure 4.

Worked example 5 · two rejected values, three named causes

P₄ has supports A₈ and A₉. A₈ conflicts with A₆ selected for P₂; A₉ conflicts with A₅ selected for P₁. Exhausting both supports yields {P₁,P₂,P₄}. P₃’s assignment is absent because neither rejection depended on it.

Causal probe 5 · initialise conflict(c) as the empty set

If every value of c fails without conflict against an earlier assignment, the explanation could become empty and falsely declare universal failure. Including c records that the active requirement itself participates.

06 · dependency-directed backtracking

Retreat to the newest decision that appears in the explanation

DDB uses the same conflict set procedurally. When a variable exhausts its domain, search jumps over assignments absent from the explanation.

In the P₄ example, chronological search backtracks to P₃ because P₃ was assigned last. DDB examines {P₁,P₂,P₄} and returns to P₂, the most recent earlier member. Changing P₃ cannot make A₈ compatible with A₆ or A₉ compatible with A₅, so reconsidering it is provably wasted under the explanation.

At the jump target, the downstream conflict is merged into its own conflict set, with the target variable removed before propagation. If P₂ also exhausts its supports, the combined explanation travels farther back. This is conflict-directed backjumping generalised from static binary CSPs to variables activated dynamically across planning levels.

DDB does not leap to an arbitrary promising point. It follows logical dependency among current assignments. The most recent implicated variable preserves depth-first progress while ensuring the next changed choice can affect at least one clause of the failure explanation.

EBL and DDB are separable in principle. DDB can use an explanation once and discard it; EBL can store generalised memos but retreat chronologically. The experiments show both contribute, with DDB sometimes supplying much of the immediate saving and stored EBL gaining from reuse across branches and epochs.

Soundness is maintained because skipped assignments are outside the explanation: holding them fixed or changing them cannot rescue the known contradiction as long as responsible assignments remain. Completeness remains because the algorithm eventually explores alternatives of every implicated decision.

Dependency-directed backtracking jumps over an irrelevant assignmentA search chain P1 to P4 fails at P4; a red chronological arrow returns to P3 while a green conflict arrow skips P3 and returns to P2.P₁P₂P₃P₄ ✕chronological: P₃DDB: conflict {P₁,P₂,P₄} → P₂
Figure 6 · Explanation turns retreat into an intervention. The search changes the latest decision capable of altering the failed support relation.Source scope: primary paper, Sections 3–4.

Worked example 6 · skip the innocent middle goal

After P₄ fails because of P₁ and P₂, changing P₃ generates the same failure. DDB preserves P₃’s chosen value and revises P₂. The skipped work can be enormous when P₃ represents a large independent subproblem.

Causal probe 6 · jump to the earliest implicated goal

The jump remains sound but discards more useful assignments than necessary. Choosing the latest implicated variable combines logical relevance with maximal preservation of current progress.

07 · why shorter memos matter

Generality raises reuse, but retrieval must stay cheap

The paper studies no-good learning as an economic system: generation cost, match cost, storage, average length and reuse frequency jointly determine value.

EBL memos are proposition sets, not complete value-level explanations. A memo M fails any current goal set G at the same level when M⊆G. Reducing M increases the number of supersets it can prune. It can also make subset tests cheaper, though more frequent matches and more generated memos affect total overhead.

Graphplan’s conservative representation controls three classic no-good problems. It learns comparatively few sets, keeps only goal variables from one level and queries only that level’s store. This structural indexing avoids scanning an unrestricted global database. Full EBL retains these advantages while improving memo content.

The empirical relationship is domain-sensitive. Rocket and logistics problems show large drops in average memo length and dramatic speedups. Blocks-world goals are more interdependent, so explanations remain close to the full set and gains are modest. A learning mechanism cannot generalise away genuinely coupled causes.

In Rocket-ext-b, the paper reports that an EBL memo is used to detect failure about 101 times on average, versus 3.2 for a normal memo. This statistic, failures found divided by memos generated, measures utility but can be inflated by longer searches; it should be interpreted beside runtime and backtracks.

DDB-only ablations remove memo checking while retaining intelligent retreat. On several problems, full EBL/DDB still substantially outperforms DDB alone, showing that generalised reuse is not merely overhead. Yet memo time can be a large fraction of runtime, so the balance can reverse on domains with little repetition.

Memo utility depends on explanation length and future matchesA small three-goal memo fits into many future sets like a key, while a large six-goal memo fits only one; a balance scale compares reuse and lookup cost.SHORT MEMOP₁P₂P₄many supersets matchFULL MEMOP1P2P3P4P5P6rare exact entouragebenefit = failures avoided − learning, storage and matching cost
Figure 7 · Generality is useful only when it pays rent. Smaller proposition-level no-goods recur more often while Graphplan’s level indexing keeps matching bounded.Source scope: primary paper, Sections 5.2–6.

Worked example 7 · 8 goals hidden among 24

A normal 24-goal memo recognises one full set. An eight-goal explanation may appear inside combinatorially many 24-goal sets. The same failure is then paid for once and reused, rather than rediscovered under each spectator combination.

Causal probe 7 · share memos across graph levels

Identical proposition names can have different reachability and support domains at different depths. Removing level indexing risks unsound reuse and raises lookup cost; a cross-level scheme would need a valid temporal generalisation.

08 · sticky values, ordering and checking

Preserve useful assignments, but charge every extra inference

After EBL/DDB, the paper tests several familiar CSP enhancements. Each changes the search tree, but reductions in backtracks do not reliably become reductions in CPU time.

Sticky values remember the last support action assigned to a proposition and try it first when that proposition is revisited. Standard Graphplan’s whole-set memo often prevents revisiting within similar contexts; more general EBL memos and DDB alter that pattern, leaving opportunities to reuse a previously successful value. Sticky values add roughly two- to four-fold improvements on some benchmarks.

“Folding” attempts to preserve value information in memos by recording sticky values associated with goals, seeking some precision without a full value-level no-good database. Its gains are mixed. The technique demonstrates a recurring tension: variable-only learning is broadly reusable, while value detail can guide reconstruction after backtracking.

Dynamic variable ordering selects the next active goal using live domain information, often preferring fewest remaining supports. Forward checking removes support values from unassigned goals when they conflict with a selected action. Emptying a domain gives early failure and an explanation containing the assignments responsible for each removal.

On plain Graphplan, DVO and forward checking reduce backtracks but are not competitive with EBL/DDB. Added on top of EBL/DDB, they provide additional backtrack reductions and occasional two- to four-fold time gains, yet several CPU times worsen because filtering and ordering cost more than the avoided search.

The DCSP interpretation explains why generic minimum-domain ordering can mislead. Difficulty lies not only in assigning present variables but in which predecessor variables a value activates. A two-value goal can create enormous subproblems, while a five-value goal may contain a persistence action with trivial support.

Forward checking prunes values while sticky values restore a successful supportA selected action crosses out incompatible future values; a gold sticky marker returns a previously successful action to the front of another domain.FORWARD CHECKa₁ ✓a₂b₁b₂STICKY VALUEc₃c₁c₂try last success first
Figure 8 · Search enhancements have inference overhead. Pruning or preserving values can reduce reconstruction, but only end-to-end time reveals whether the extra work pays.Source scope: primary paper, Sections 6–7 and Tables 3–5.

Worked example 8 · fewer backtracks, slower run

If forward checking cuts five million recursive failures but scans many large domains after every assignment, CPU time can rise. Backtrack count measures tree size; it does not price propagation.

Causal probe 8 · order by activated-subproblem estimate

Two goals with equal live domain sizes may induce very different predecessor sets. Ranking values by the number and difficulty of newly active variables directly targets the dynamic CSP structure the paper identifies.

09 · random restarts with explanations

Randomness does not make causal failure analysis obsolete

Bounded random restarts diversify support order and depth, while EBL/DDB spends each limited backtrack budget on distinct causes instead of repeated symptoms.

A randomised Graphplan shuffles goal or action choices, stops after a backtrack limit and restarts. It may solve instances that systematic extraction cannot reach within a day. But failure within a cap no longer proves that the current graph depth is barren; it reports only censored search.

One might expect luck to replace learning. The paper argues the opposite: accurate conflict sets keep a short run from spending its hundred backtracks revisiting the same dependency. Stored memos also transfer information across restarts, so diversification retains accumulated structural failure.

On Att-log-a with five restarts, fifty backtracks and a twenty-level limit, EBL/DDB solves 99 per cent of trials with average fourteen-step, eighty-two-action plans. Normal Graphplan solves two per cent, averaging nineteen steps and 103 actions. Increasing normal Graphplan’s limits raises solvability but also runtime and plan length.

The reported random experiments use one hundred trials for most configurations and report solvability, average plan length and runtime. These quantities are conditional in different ways: averages over successful runs should not obscure failures, and longer level limits can make discovery easier while yielding more suboptimal plans.

EBL/DDB thus improves both efficiency and use of bounded incompleteness. Under identical caps, it achieves more solutions and better plans. The result does not mean every learned randomised search is complete; completeness returns only when limits expand so all relevant depths and assignments are eventually explored.

Random restarts diversify paths while learned memos persistThree coloured search trees restart from new roots but send their red failures into one shared memo bank that blocks repeated dead ends.MEMO BANK{P₁,P₂,P₄}{Q₂,Q₅}shared across triestry 1try 2try 3new order · retained explanations
Figure 9 · Diversification and learning solve different problems. Restarts change paths; EBL/DDB prevents each path from spending its limited budget on known causal failures.Source scope: primary paper, Section 8 and Table 6.

Worked example 9 · identical cap, different use

Two solvers receive fifty backtracks. Chronological search may expend ten on variants of one irrelevant P₃ branch. DDB spends one explanation to skip P₃ and uses the remaining budget on genuinely different supports.

Causal probe 9 · erase memos at every restart

Random paths still diversify, but recurring dead ends must be relearned. Comparing retained and cleared stores isolates cross-restart EBL from within-run DDB.

10 · reading the evidence

The largest gains are real, conditional and sharply domain-dependent

Kambhampati’s tables support a strong result without supporting a universal one: explanations can transform Graphplan search, but benchmark structure and bookkeeping costs determine how much of the theoretical saving survives as elapsed computation.

The implementation ran in Franz Allegro Common Lisp 5 on a 500 MHz Pentium III under Linux, and the main tables report CPU minutes and backtracks over logistics, rocket, blocks-world, grid and mystery-style instances. Those conditions matter. Absolute timings are historical machine measurements; the durable evidence is the controlled comparison between configurations in the same implementation.

Full EBL/DDB reaches improvements of up to roughly three orders of magnitude on some extended rocket and logistics problems. The mechanism is visible in the supporting statistics: learned memos become much shorter than full goal sets, are matched repeatedly, and direct the search past assignments absent from the conflict. The result is not merely a constant-factor implementation trick.

Blocks-world supplies the limiting case. Its subgoals interact densely, so the responsible conflict can be nearly as large as the complete goal set. Learning cannot manufacture independence that the domain lacks. Ordinary memoisation already captures much of the true coupling, leaving smaller differences between baseline and explanatory search.

Ablations are essential. DDB without stored memo checking sometimes provides large immediate savings, but full EBL/DDB wins substantially on several tasks because the generalised failures recur. Conversely, dynamic ordering and forward checking can reduce backtracks while taking more CPU time. Their extra scans and conflict bookkeeping have to be paid on every node.

Censored cells must be read carefully. A timeout establishes that one configuration exceeded the stated bound; it does not reveal its eventual runtime. Speedup claims against such cells are lower bounds only when the faster run completed under the same task and measurement rules. Randomised tables add sampling variation and condition plan averages on solved trials.

Evidence ladder from backtracks to causal mechanismA ladder links fewer backtracks, shorter memos, higher reuse and lower CPU time, with overhead and domain coupling shown as forces that can break the links.shorterconflictsmore memoreusefewerbacktrackslower CPUtimedomain couplingkeeps explanations largeinference overheadcan consume tree savings
Figure 10 · A mechanism, not a single scoreboard. Memo size and reuse explain why the search tree shrinks; CPU time confirms whether the saved search exceeded the cost of learning and propagation.Source scope: primary paper, Sections 5–8 and Tables 1–6.
ClaimBest evidenceNecessary qualification
EBL/DDB can be transformativeUp to about 1,000× reported on selected benchmarksNot uniform; blocks-world gains are modest
Generality predicts reuseRocket-ext-b memo reuse about 101 versus 3.2Reuse ratio must be read beside runtime
Short explanations matterRocket-ext-a average memo length 8.5 versus 24Length is diagnostic, not a sufficient cause alone
Extra consistency helps searchDVO and checking often reduce backtracksCPU time can worsen because inference is not free

Worked example 10 · a thousand-fold result without a universal promise

If a rocket instance repeatedly embeds the same eight-goal contradiction inside many twenty-four-goal contexts, EBL pays for that cause once. A tightly coupled blocks-world problem may offer no comparable small core. Both outcomes follow the same algorithm.

Causal probe 10 · report only backtracks

Forward checking then looks unambiguously better even when its scans dominate runtime. Adding CPU time, memo length and match frequency separates smaller search trees from faster planners and connects performance to a plausible mechanism.

11 · executable conflict-set laboratory

Find a support assignment: or the smallest goal set that forbids one

This miniature solver makes the paper’s central logic inspectable. It enumerates support actions, rejects mutex pairs, extracts a subset-minimal unsatisfiable goal set, and identifies the latest earlier member to which dependency-directed backtracking would return.

Current support-assignment problemGoal variables, candidate support actions and mutex conflicts for the selected scenario.
Search result:
Learned minimal memo:
DDB target:
Enumeration:

The laboratory deliberately computes a subset-minimal memo by exhaustive enumeration, rather than reproducing every procedural detail of Graphplan’s conflict-set construction. This gives an exact oracle for three tiny cases. In a large planner, EBL derives an explanation incrementally because enumerating all goal subsets would defeat the purpose.

Solvable fork. Two action pairs are mutex, but cross-pair supports remain compatible. A valid assignment is shown and there is no failure memo. This guards against treating any mutex edge as global impossibility.

Irrelevant middle goal. P₄’s first value conflicts with P₂’s only support and its second conflicts with P₁’s. P₃ participates in neither rejection. The learned memo is {P₁,P₂,P₄}; under forward order DDB jumps from P₄ to P₂ and skips P₃.

Three-way contradiction. X must equal Y, Y must equal Z and X must differ from Z. Every pair of goals has a compatible assignment, while the triple has none. The smallest memo therefore contains all three goals, demonstrating a conflict invisible to proposition-level pairwise consistency.

The “rotate” control changes assignment order without changing constraints. The logical memo stays fixed, while the DDB target changes with recency. This distinguishes declarative learning: what combination is impossible: from procedural control: which implicated choice should be reconsidered next.

Worked example 11 · P₃ is present but causally silent

Select “Irrelevant middle goal” and forward order. Both P₄ supports fail, yet neither failure refers to P₃. The exact memo test proves {P₁,P₂,P₄} is unsatisfiable and that deleting any member makes it satisfiable; the jump test identifies P₂ as the latest earlier cause.

Causal probe 11 · reverse the goal order

The same set remains impossible because constraints have not changed. What changes is the second-latest member of that set, hence the dependency-directed jump target. Explanation and scheduling are related but not identical.

12 · reconstruction protocol and limits

Preserve level semantics, ablations and the boundary of the claim

A faithful reproduction needs more than a modern planner bearing the same feature names. It must align the graph, the memo language, the search epoch and the measurement contract closely enough that a difference has an interpretable cause.

First fix the classical planning semantics: grounded actions, no uncertainty, alternating proposition and action layers, persistence actions, and the same definitions of inconsistent effects, interference, competing needs and inconsistent support. A change in preprocessing or grounding can alter the graph before EBL is ever invoked.

Index every memo by proposition level. Test a memo by subset containment against the active goal set at that level. For explanatory search, record a goal-variable conflict set, accumulate the prior assignments responsible for eliminating each candidate support, and regress predecessor failure through the actions that activated it. Static domain absence and static mutex facts are reasons for rejection, not higher-level decisions to blame.

Compare at least four configurations: chronological whole-set memoisation, DDB without persistent memo checking, full EBL/DDB, and EBL/DDB plus the candidate enhancement. Keep value order, graph construction and stopping rules fixed within an ablation. Report wall or CPU time, backtracks, memos generated, failures detected by memos and average memo length.

For restart studies, publish seeds, number of trials, backtrack and depth caps, solved fraction, and whether learned memos persist across restarts. Report plan length and action count conditional on success, explicitly naming the denominator. A configuration that solves two trials is not directly comparable on mean plan quality with one solving ninety-nine.

Modern hardware will not reproduce 2000-era minutes, and a modern language can move the overhead boundary. The stronger target is qualitative and relational: small recurrent explanations should raise memo reuse; DDB should skip irrelevant goals; extra propagation should reduce nodes but help elapsed time only when its marginal saving exceeds its cost.

Review questionPrimary-source reconstructionResidual boundary
Is the formal object identified?Levelled propositions are variables; support actions are values; mutex and activity supply constraints.The HTML omits a full planner and grounding front end.
Is the causal mechanism exposed?Conflict accumulation, regression, memo subset matching and DDB are traced separately.The laboratory uses an exhaustive oracle, not the paper’s full incremental implementation.
Are empirical claims calibrated?Hardware, language, metrics, ablations, timeouts and random-trial denominators are named.Historical benchmark files and executable source were not rerun here.
Are later techniques kept distinct?Sticky values, folding, DVO, forward checking and restarts are treated as separate add-ons.Names shared with modern solvers need not imply identical implementations.

Worked example 12 · an ablation that answers one question

Run baseline and EBL/DDB with identical graphs and support order, then disable memo lookup while retaining DDB. Baseline versus DDB-only estimates smarter retreat; DDB-only versus full EBL/DDB estimates persistent reuse. Changing the heuristic simultaneously would confound both comparisons.

Causal probe 12 · move to a modern SAT planner

Performance may improve dramatically, but the result no longer isolates Kambhampati’s Graphplan mechanism. The scientifically useful extension holds the benchmark semantics constant and asks whether explanation size and reuse predict improvement across both encodings.

Two comprehensive reviews

What survived adversarial reading

Review one: formal and causal integrity. Every operational claim was traced to the dynamic-CSP mapping or to the primary search procedure. The review separated proposition mutex from value-level action mutex, whole-set memoisation from explanation-based learning, and a learned no-good from the jump decision it informs. The laboratory was checked against exhaustive assignment and subset enumeration, so a displayed solution, memo or jump can be independently falsified.

The main formal danger was calling the returned set “minimum” when the paper’s procedural conflict analysis establishes a relevant no-good but need not solve a globally minimum-cardinality explanation problem. The companion therefore calls the laboratory output subset-minimal and explicitly marks it as an oracle abstraction. It does not attribute exhaustive subset search to the original planner.

Review two: historical and empirical fidelity. Dates, venue, pagination, machine, implementation language, reported magnitudes and named enhancements were checked against the 34-page JAIR paper. Numerical examples are labelled as reported observations, not fresh measurements. Timeouts and randomised success rates retain their denominators and do not become invented exact speedups.

The principal evidential danger was allowing a dramatic “up to 1,000×” result to stand for all domains. The review retained the blocks-world counter-pattern, distinguished backtrack reductions from CPU improvements, and described memo reuse as a mechanism indicator rather than proof by itself. No later Graphplan, SAT-planning or CSP result is silently credited to the 2000 article.

Review verdict

Pass 1: formal reconstruction: passed after narrowing “minimal explanation” to “subset-minimal laboratory oracle” and clarifying that Graphplan’s expansion provides partial directed consistency. Pass 2: evidence and interpretation: passed after restoring hardware context, ablation logic, timeout caution, random-trial denominators and domain dependence.

Memory studio

Twelve cards for durable recall

1 · VariableA proposition at a particular planning-graph level.
2 · ValueAn action at the preceding layer that supports that proposition.
3 · ActivationSelecting an action makes its preconditions live variables one level earlier.
4 · ConstraintAction mutex forbids a value pair; proposition mutex forbids simultaneous non-null activity.
5 · Ordinary memoThe entire goal set after every support assignment fails.
6 · EBL memoThe subset of goals implicated by the accumulated support conflicts.
7 · RegressionMap predecessor failure through selected actions to the higher-level goals that activated it.
8 · DDBReturn to the latest earlier goal named in the conflict, skipping spectators.
9 · UtilityShorter memos can match more supersets, but generation and retrieval still cost time.
10 · Sticky valueTry a support that worked last time before rebuilding the domain order.
11 · PropagationDVO and forward checking may shrink the tree without shortening runtime.
12 · RestartChange the path while retaining causal failures, and report solved fractions honestly.
Place in the canon

From flat failure records to search that understands dependency

Paper 0086 turns the planning graph from a specialised algorithmic object into a meeting point for planning, constraint satisfaction and explanation-based learning.

Blum and Furst’s Graphplan supplied a compact reachability structure and backwards extraction with memoised goal-set failures. Kambhampati shows that extraction is naturally a dynamic CSP: decisions do not merely narrow existing domains; they activate new variables in predecessor layers. This makes classical CSP advances available, but only after their assumptions are translated carefully.

The companion’s central contribution is epistemic as much as algorithmic. A failure record can name the whole situation in which failure was observed, or it can name the decisions that caused it. Only the second kind explains what must change. That distinction unifies smaller memos and non-chronological retreat.

Later planning systems increasingly encode search into SAT, use learned clauses, exploit heuristic estimates or organise hierarchical and temporal constraints. The representations differ, but the recurring question is recognisable: how much of a failed branch can be generalised, and how cheaply can that information redirect future search?

Canon 0087 moves into HTN temporal planning and asks how non-temporal heuristics can guide search in a richer temporal formalism. The transition is instructive. Here the challenge is learning from constraint failure inside a planning graph; next it is importing useful guidance across a representational mismatch.

Interpretive synthesis

A search failure is most valuable when it identifies an intervention

Whole-set memoisation says, “do not return to this scene.” Explanation-based learning says, “these are the relations that made the scene impossible.” Dependency-directed backtracking adds, “this is the newest decision that can alter those relations.”

This three-part progression: record, explain, intervene: is broader than Graphplan. A record can prevent exact repetition. An explanation travels across irrelevant context. An intervention turns the explanation into control. The quality of the system depends not on maximal detail, but on an abstraction precise enough to be sound and small enough to recur.

The dynamic-CSP view prevents a common simplification. Planning is not just static assignment with another vocabulary. Choosing an action changes which predecessor propositions require support. Search therefore manages an evolving boundary of obligation, and a useful explanation must cross that boundary by regression.

The experiments also discipline enthusiasm for stronger inference. Every additional consistency check competes with the search it hopes to remove. The right question is never merely whether a technique prunes. It is whether the distribution of future conflicts lets the technique recover its own cost.

Kambhampati’s lasting lesson is thus methodological: inspect the anatomy of failure, preserve the smallest defensible cause, and let the cause: not the accident of traversal order: decide where computation should resume.

Publication brief

Primary source, companion scope and verification contract

This companion reconstructs Subbarao Kambhampati’s “Planning Graph as a (Dynamic) CSP: Exploiting EBL, DDB and other CSP Search Techniques in Graphplan,” published in Journal of Artificial Intelligence Research 12 (2000), pages 1–34. It focuses on the formal mapping, conflict analysis, memo regression, dependency-directed backtracking and the empirical logic of the reported enhancements. The diagrams are original explanatory figures, not reproductions. The executable laboratory uses synthetic micro-instances to test the logic exactly; it does not claim to reproduce the historical implementation’s runtime.

Verification contract. The page contains five orientation claims, ten accessible animated SVG figures, twelve worked examples, twelve causal probes, twelve memory cards, two distinct reviews and three executable exact tests. Motion respects reduced-motion preferences; text and controls remain usable at desktop, tablet and mobile widths.

References

Primary and contextual sources

  1. Kambhampati, S. (2000). “Planning Graph as a (Dynamic) CSP: Exploiting EBL, DDB and other CSP Search Techniques in Graphplan.” Journal of Artificial Intelligence Research, 12, 1–34. doi:10.1613/jair.655.
  2. Blum, A. L., & Furst, M. L. (1997). “Fast Planning Through Planning Graph Analysis.” Artificial Intelligence, 90, 281–300.
  3. Ginsberg, M. L. (1993). “Dynamic Backtracking.” Journal of Artificial Intelligence Research, 1, 25–46.
  4. Prosser, P. (1993). “Hybrid Algorithms for the Constraint Satisfaction Problem.” Computational Intelligence, 9(3), 268–299.
  5. Bayardo, R. J., Jr., & Schrag, R. C. (1997). “Using CSP Look-Back Techniques to Solve Real-World SAT Instances.” Proceedings of AAAI-97.
  6. Kautz, H., & Selman, B. (1999). “Unifying SAT-based and Graph-based Planning.” Proceedings of IJCAI-99.
  7. Long, D., & Fox, M. (1999). “Efficient Implementation of the Plan Graph in STAN.” Journal of Artificial Intelligence Research, 10, 87–115.