What Are the Two Types of Memory-Bounded Heuristic Algorithms?

What Are the Two Types of Memory-Bounded Heuristic Algorithms?

Verified Sources
Sep 11, 2026

Memory-bounded heuristic search algorithms are designed for cases where classic best-first methods (notably AA^*) can require exponential memory due to their maintenance of frontier structures like OPEN/CLOSED. A common framing is that memory-bounded heuristic algorithms come in two broad types:

  1. Frontier/graph-style memory bounding (best-first with pruning or node deletion), where the algorithm still behaves like best-first search but enforces a hard cap on stored nodes and deletes “least promising” nodes when memory is full (often described via OPEN/CLOSED limits and pruning from OPEN). This family includes approaches related to SMA* and other memory-bounded variants that “prune the OPEN list by removing the leaf-node with highest ff-cost” when space is exhausted. 2

  2. Depth-first with iterative deepening / linear-space bounds (recursive or repeated deepening strategies), where the algorithm limits memory by re-running depth-first searches under a growing cutoff (e.g., cutoff based on f=g+hf=g+h), so memory stays linear in the search depth. This family includes IDA*, which performs depth-first search and “cuts off a branch when its total cost f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds a given threshold,” increasing the threshold across iterations.

These two types reflect a fundamental design choice:

  • Type A: keep best-first guidance but truncate the stored frontier. 2
  • Type B: keep depth-first memory usage but re-explore under a changing bound/cutoff. 2

Footnotes

  1. A Memory-Bounded Best-First Beam Search and Its ... - Describes memory-bounded best-first search: bounded storage for CLOSED∪OPEN; deletion on OPEN when limit reached. 2

  2. Efficient memory-bounded search methods (Russell) - Describes SMA*: when OPEN/CLOSED reaches a preset limit, prune OPEN by removing the leaf-node with highest ff-cost. 2

  3. Iterative deepening A - Defines IDA*: depth-first search with cutoff where f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds a threshold; threshold increases per iteration. 2

  4. Recursive Best-First Search / linear-space best-first search (Korf 1993) - Background for linear-space best-first search family related to depth-first/cutoff memory bounding.

Memory-bounded heuristic search algorithms (IDA*, RBFS, SMA*)

To reason precisely about the “two types,” it helps to connect them to what each algorithm chooses not to keep:

keyword
The set of generated-but-not-fully-expanded states (or nodes) waiting to be processed—commonly represented by OPEN (and sometimes CLOSED) in best-first and AA^*-like algorithms. In memory-bounded best-first methods, the frontier is intentionally truncated when it exceeds a limit.

keyword
The data structure holding candidate nodes for expansion in best-first search; memory-bounded variants delete nodes from OPEN when storage runs out.

keyword
In iterative deepening variants like IDA*, a bound on f(n)=g(n)+h(n)f(n)=g(n)+h(n) that determines whether to prune a branch during depth-first traversal.

keyword
Memory that grows proportionally to depth rather than frontier size; achieved by depth-first/cutoff methods like IDA*. 2

Footnotes

  1. A Memory-Bounded Best-First Beam Search and Its ... - Describes memory-bounded best-first search: bounded storage for CLOSED∪OPEN; deletion on OPEN when limit reached. 2

  2. Iterative deepening A - Defines IDA*: depth-first search with cutoff where f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds a threshold; threshold increases per iteration. 2

  3. Depth-First Iterative-Deepening: An Optimal Admissible Tree Search (Korf 1985) - Original IDA* description: DFS with g+hg+h cutoff and iterative thresholds; discusses memory vs time behavior.

How each memory-bounded type enforces a memory limit

  1. 1
    Step 1

    Maintain best-first OPEN/CLOSED-like structures, but set a maximum size; when reached, delete/prune “worst” OPEN nodes (e.g., highest ff-cost leaves) to free memory. 2

    Footnotes

    1. A Memory-Bounded Best-First Beam Search and Its ... - Describes memory-bounded best-first search: bounded storage for CLOSED∪OPEN; deletion on OPEN when limit reached.

    2. Efficient memory-bounded search methods (Russell) - Describes SMA*: when OPEN/CLOSED reaches a preset limit, prune OPEN by removing the leaf-node with highest ff-cost.

  2. 2
    Step 2

    Run depth-first search while pruning branches whose f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds a threshold; start with an initial threshold and increase it across iterations. This keeps memory low because DFS stores only a path plus local recursion.

    Footnotes

    1. Iterative deepening A - Defines IDA*: depth-first search with cutoff where f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds a threshold; threshold increases per iteration.

  3. 3
    Step 3

    Type 1 tends to re-use stored nodes but can lose completeness/optimality guarantees when pruning removes crucial states; Type 2 uses minimal memory but may re-expand nodes across iterations (time increases). Both are used to avoid the exponential memory blow-up of classic best-first search. 2

    Footnotes

    1. Iterative deepening A - Defines IDA*: depth-first search with cutoff where f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds a threshold; threshold increases per iteration.

    2. A Memory-Bounded Best-First Beam Search and Its ... - Describes memory-bounded best-first search: bounded storage for CLOSED∪OPEN; deletion on OPEN when limit reached.

Type 1: Memory-bounded best-first search (bounded OPEN/CLOSED; pruning/deletion)

In a best-first search view, each iteration selects the node with lowest (best) ff-value from OPEN, expands it, and updates OPEN/CLOSED. A memory-bounded variant introduces a maximum storage limit for OPEN (and sometimes CLOSED), such that when the limit is reached, node deletion must be performed on OPEN.

A representative description appears in memory-bounded A*-like methods: when OPEN/CLOSED hits a preset limit, the algorithm “begins to prune the OPEN list by removing the leaf-node with highest ff-cost.”

This design yields a spectrum of behaviors:

  • With sufficiently large memory, the algorithm can emulate AA^*-like behavior.
  • With smaller memory, it behaves like best-first search over a partially remembered frontier, relying on pruning to fit into memory.

[CalloutBlock] type="tip" title="Key mental model (Type 1)" content="If you remember only the “most useful” frontier nodes, you can keep best-first guidance—but you must delete nodes when memory is full."

[CalloutBlock] type="warning" title="Key risk (Type 1)" content="Deleting nodes from OPEN can remove information required to guarantee completeness/optimality under tight memory, because the algorithm no longer has the full frontier it would otherwise need to backtrack/reconstruct the best path."

Footnotes

  1. A Memory-Bounded Best-First Beam Search and Its ... - Describes memory-bounded best-first search: bounded storage for CLOSED∪OPEN; deletion on OPEN when limit reached. 2

  2. Efficient memory-bounded search methods (Russell) - Describes SMA*: when OPEN/CLOSED reaches a preset limit, prune OPEN by removing the leaf-node with highest ff-cost.

Type 2: Depth-first iterative deepening / recursive bounds (linear-space)

Iterative deepening A* (IDA*) is a standard example of the second type. It uses a depth-first traversal, but replaces the “fixed depth” cutoff of IDDFS with a heuristic-informed cutoff on f(n)=g(n)+h(n)f(n)=g(n)+h(n).

Concretely, IDA* works by:

  • performing DFS,
  • cutting off a branch when f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds the current threshold,
  • starting with a threshold and increasing it for subsequent iterations.

This achieves bounded memory because DFS keeps only the current path (plus recursion state), not the entire frontier. A key consequence is that time can increase due to re-exploration across increasing thresholds (nodes may be revisited under different thresholds). 2

keyword
IDA* is a depth-first iterative-deepening variant that prunes using f(n)=g(n)+h(n)f(n)=g(n)+h(n) thresholds.

[CalloutBlock] type="tip" title="Key mental model (Type 2)" content="You trade memory for repeated work: keep only a DFS stack, and refine the allowed ff-cost range over iterations."

Footnotes

  1. Iterative deepening A - Defines IDA*: depth-first search with cutoff where f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds a threshold; threshold increases per iteration. 2 3

  2. Depth-First Iterative-Deepening: An Optimal Admissible Tree Search (Korf 1985) - Original IDA* description: DFS with g+hg+h cutoff and iterative thresholds; discusses memory vs time behavior.

Two memory-bounded types: what they bound

High-level comparison of the main structure each type constrains.

Common algorithm patterns within the two types

Type 1 (bounded best-first)

Core concept

Best-first guidance, but enforce a hard limit on OPEN/CLOSED and prune/delete when full. 2"

Footnotes

  1. A Memory-Bounded Best-First Beam Search and Its ... - Describes memory-bounded best-first search: bounded storage for CLOSED∪OPEN; deletion on OPEN when limit reached.

  2. Efficient memory-bounded search methods (Russell) - Describes SMA*: when OPEN/CLOSED reaches a preset limit, prune OPEN by removing the leaf-node with highest ff-cost.

Memory-bounded A*-like methods

Example family

Prune OPEN using ff-cost criteria (e.g., remove highest-ff leaf when memory saturates). "

Footnotes

  1. Efficient memory-bounded search methods (Russell) - Describes SMA*: when OPEN/CLOSED reaches a preset limit, prune OPEN by removing the leaf-node with highest ff-cost.

Type 2 (iterative deepening DFS)

Core concept

Depth-first search with heuristic cutoff f(n)=g(n)+h(n)f(n)=g(n)+h(n), increasing the threshold across iterations. "

Footnotes

  1. Iterative deepening A - Defines IDA*: depth-first search with cutoff where f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds a threshold; threshold increases per iteration.

IDA* (linear-space analog)

Example family

Runs repeated DFS with cutoff thresholds, limiting memory usage to depth. 2"

Footnotes

  1. Iterative deepening A - Defines IDA*: depth-first search with cutoff where f(n)=g(n)+h(n)f(n)=g(n)+h(n) exceeds a threshold; threshold increases per iteration.

  2. Depth-First Iterative-Deepening: An Optimal Admissible Tree Search (Korf 1985) - Original IDA* description: DFS with g+hg+h cutoff and iterative thresholds; discusses memory vs time behavior.

Common questions about the two types

Knowledge Check

Question 1 of 3
Q1Single choice

In the two-type classification of memory-bounded heuristic algorithms, which type keeps best-first guidance but enforces a hard cap on stored frontier nodes (e.g., deleting from OPEN)?