Fibonacci heaps and their uses in improved network optimization algorithms
Journal of the ACM (JACM)
The input/output complexity of sorting and related problems
Communications of the ACM
External-memory graph algorithms
Proceedings of the sixth annual ACM-SIAM symposium on Discrete algorithms
On external memory graph traversal
SODA '00 Proceedings of the eleventh annual ACM-SIAM symposium on Discrete algorithms
External memory algorithms and data structures: dealing with massive data
ACM Computing Surveys (CSUR)
Cache-oblivious priority queue and graph algorithm applications
STOC '02 Proceedings of the thiry-fourth annual ACM symposium on Theory of computing
Computing shortest paths with comparisons and additions
SODA '02 Proceedings of the thirteenth annual ACM-SIAM symposium on Discrete algorithms
Funnel Heap - A Cache Oblivious Priority Queue
ISAAC '02 Proceedings of the 13th International Symposium on Algorithms and Computation
FOCS '99 Proceedings of the 40th Annual Symposium on Foundations of Computer Science
Improved Algorithms and Data Structures for Solving Graph Problems in External Memory
SPDP '96 Proceedings of the 8th IEEE Symposium on Parallel and Distributed Processing (SPDP '96)
External-memory exact and approximate all-pairs shortest-paths in undirected graphs
SODA '05 Proceedings of the sixteenth annual ACM-SIAM symposium on Discrete algorithms
Engineering a cache-oblivious sorting algorithm
Journal of Experimental Algorithmics (JEA)
Cache oblivious algorithms for nonserial polyadic programming
The Journal of Supercomputing
A faster cache-oblivious shortest-path algorithm for undirected graphs with bounded edge lengths
SODA '07 Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms
Cache-oblivious planar shortest paths
ICALP'05 Proceedings of the 32nd international conference on Automata, Languages and Programming
I/O-efficient shortest path algorithms for undirected graphs with random or bounded edge lengths
ACM Transactions on Algorithms (TALG)
Hi-index | 0.00 |
We present the Buffer Heap (BH), a cache-oblivious priority queue that supports Delete-Min, Delete, and Decrease-Key operations in O(1overB log2 NoverB) amortized block transfers from external memory, where B is the (unknown) block-size and N is the maximum number of elements in the queue. As is common in cache-oblivious algorithms, we assume a 'tall cache' (i.e., M = Ω(B1 + ε), where M is the size of the main memory). We also assume the Decrease-Key operation only verifies that the element does not exist in the priority queue with a smaller key value, hence it also supports the insert operation in the same amortized bound. The amortized time bound for each operation is O(log N). We also present a Cache-Oblivious Tournament Tree (COTT), which is simpler than the Buffer Heap, but has weaker bounds.Using the Buffer Heap we present cache-oblivious algorithms for undirected and directed single-source shortest path (SSSP) problems for graphs with non-negative edge-weights. On a graph with V vertices and E edges, our algorithm for the undirected case performs O(V + EoverB log2 VoverB) block transfers and for the directed case performs O((V + EoverB) . log2 VoverB) block transfers. The running time of both algorithms is O((V + E). log V).For both priority queues with Decrease-Key operation, and for shortest path problems on general graphs, our results appear to give the first non-trivial cache-oblivious bounds.