🤖 AI Summary
This work proposes a novel heap structure in the pointer machine model that incorporates the working-set property, achieving—for the first time—an amortized constant-time Push operation and a DecreaseKey operation in inverse-Ackermann time, α(n). Leveraging this heap, Dijkstra’s shortest-path algorithm attains near-optimal performance on the pointer machine: its running time exceeds the information-theoretic lower bound—dictated by the time required to sort distances—by only an additive O(m·α(m)) overhead. This result resolves a longstanding bottleneck in the pointer machine model, where efficient working-set heaps were previously unavailable, and establishes a new paradigm for optimizing graph algorithms under restricted computational models.
📝 Abstract
A heap is a dynamic data structure that stores a set of labeled values under the following operations: pop returns the minimum value of the heap, Push($x_i$) pushes a new value $x_i$ onto the heap, and DecreaseKey($i$, $v$) decreases the value $x_i$ to $v$.
A working-set heap is a heap that supports the $x_i \gets$ pop$()$ operation in $O(\log Γ(x_i) )$ time where $Γ(x_i)$ is the size of the \emph{working set}: the number of elements that were pushed onto the heap while $x_i$ was in the heap.
The goal of working set heap design is to maintain the working set property while minimizing the overhead of the Push and DecreaseKey operations.
On a word RAM, there exist working set heaps that support Push and DecreaseKey in amortized constant time.
In this paper, we show via a simple construction that pointer machines, one of the most general and least-assuming computational models, support working set heaps that support Push in amortized constant time and DecreaseKey in inverse-Ackermann time. A by-product of this analysis is that Dijkstra's shortest path algorithm can be near-universally optimal on a pointer machine -- incurring only an additive $O(m \, α(m))$ overhead compared to the optimal running time for distance ordering, where $m$ denotes the number of edges in the graph.