Near-Optimal Heaps and Dijkstra on Pointer Machines
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(xi) pushes a new value xi onto the heap, and DecreaseKey(i, v) decreases the value xi to v. A working-set heap is a heap that supports the xi pop() operation in O( (xi) ) time where (xi) is the size of the working set: the number of elements that were pushed onto the heap while xi 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.
Turn this paper into a lesson
ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.