While IDA* is often praised for its memory efficiency compared to A*, its worst-case time complexity can be significantly worse under certain conditions:
IDA* on Trees: Slow Threshold Growth IDA* relies on iterative deepening using an f-cost threshold that increases each iteration. Typically, IDA* performs efficiently when the number of nodes expanded in each iteration grows exponentially. However, Patrick, Almulla, and Newborn (1992) demonstrated that when the f-cost threshold increases by the smallest possible amount each iteration—such as when f-values are unique and strictly increasing—IDA* expands exactly one additional node per iteration. Under these worst-case conditions of uniqueness and monotonicity, IDA* expands N(N+1)/2=\Theta(N^2) nodes, where N is the number of nodes surely-expanded by A*, yielding quadratic complexity compared to A*’s linear O(N) complexity. Mahanti et al. (1992) further showed that this limitation is not exclusive to IDA*: no best-first limited-memory heuristic search algorithm can universally achieve O(N) complexity on trees due to memory constraints. They also specify that IDA* achieves O(N) complexity only if the number of iterations with minimal node growth is bounded, a condition not always satisfied. To avoid the worst-case scenario,
Iterative Budgeted Exponential Search (IBEX) has been introduced in 2019.
IDA* on Graphs: Impact of Transpositions IDA* explores the search space in a depth-first manner and retains no memory of previously expanded nodes beyond the current path. Consequently, in graphs containing transpositions—where multiple distinct paths lead to the same node—IDA* repeatedly re-expands nodes. Mahanti et al. (1992) illustrated that for
directed acyclic graphs, these repeated expansions lead to severe performance degradation, with a worst-case complexity reaching \Omega(2^{2N}), where N is the number of nodes eligible for expansion by A*. Thus, in scenarios involving transpositions or graph structures, IDA* can be significantly less efficient than A*, suggesting that other graph-search algorithms may be more appropriate choices. == Applications ==