Cache-Oblivious Data Structures and Algorithms for Undirected Breadth-First Search and Shortest Paths

We present improved cache-oblivious data structures and algorithms for breadth-first search and the single-source shortest path problem on undirected graphs with non-negative edge weights. Our results removes the performance gap between the currently best cache-aware algorithms for these problems and their cache-oblivious counterparts. Our shortest-path algorithm relies on a new data structure, called bucket heap, which is the first cache-oblivious priority queue to efficiently support a weak DecreaseKey operation.

[1]  Alok Aggarwal,et al.  The input/output complexity of sorting and related problems , 1988, CACM.

[2]  Lars Arge,et al.  On external-memory MST, SSSP and multi-way planar graph separation , 2004, J. Algorithms.

[3]  Gerth Stølting Brodal,et al.  Funnel Heap - A Cache Oblivious Priority Queue , 2002, ISAAC.

[4]  Robert E. Tarjan,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1984, JACM.

[5]  Peter D. Mosses,et al.  Composing programming languages by combining action-semantics modules , 2001, Sci. Comput. Program..

[6]  Lars Arge,et al.  External Memory Data Structures , 2001, ESA.

[7]  Ulrich Meyer,et al.  Algorithms for Memory Hierarchies , 2003, Lecture Notes in Computer Science.

[8]  Edward F. Grove,et al.  External-memory graph algorithms , 1995, SODA '95.

[9]  Branimir Lambov A Two-Layer Approach to the Computability and Complexity of Real Numbers , 2003 .

[10]  Jeffrey Scott Vitter,et al.  External memory algorithms and data structures: dealing with massive data , 2001, CSUR.

[11]  Gerth Stølting Brodal,et al.  On the limits of cache-obliviousness , 2003, STOC '03.

[12]  Ulrich Meyer,et al.  Cache-Oblivious Data Structures and Algorithms for Undirected Breadth-First Search and Shortest Paths , 2004 .

[13]  Lars Arge,et al.  On external-memory MST, SSSP and multi-way planar graph separation , 2000, J. Algorithms.

[14]  Kamesh Munagala,et al.  I/O-complexity of graph algorithms , 1999, SODA '99.

[15]  G. Brodal,et al.  Cache Oblivious Distribution Sweeping , 2002 .

[16]  Ulrich Meyer,et al.  I/O-Efficient Undirected Shortest Paths , 2003, ESA.

[17]  Vijaya Ramachandran,et al.  Cache-oblivious shortest paths in graphs using buffer heap , 2004, SPAA '04.

[18]  Michael A. Bender,et al.  Cache-oblivious priority queue and graph algorithm applications , 2002, STOC '02.

[19]  Suresh Venkatasubramanian,et al.  On external memory graph traversal , 2000, SODA '00.

[20]  U. Kohlenbach,et al.  Bounds on Iterations of Asymptotically Quasi-Nonexpansive Mappings , 2003 .

[21]  Kurt Mehlhorn,et al.  External-Memory Breadth-First Search with Sublinear I/O , 2002, ESA.

[22]  Bas Luttik,et al.  Split-2 bisimilarity has a finite axiomatization over CCS with Hennessy's merge , 2004, Log. Methods Comput. Sci..

[23]  Vijay Kumar,et al.  Improved algorithms and data structures for solving graph problems in external memory , 1996, Proceedings of SPDP '96: 8th IEEE Symposium on Parallel and Distributed Processing.

[24]  Hans Hüttel,et al.  Recursive Ping-Pong Protocols , 2003 .

[25]  Peter D. Mosses,et al.  Pragmatics of Modular SOS , 2002, AMAST.

[26]  Jeffery R. Westbrook,et al.  A Functional Approach to External Graph Algorithms , 1998, ESA.

[27]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[28]  Marius Mikucionis,et al.  Online On-the-Fly Testing of Real-time Systems , 2003 .

[29]  Charles E. Leiserson,et al.  Cache-Oblivious Algorithms , 2003, CIAC.