English

Cache-Oblivious Priority Queues with Decrease-Key and Applications to Graph Algorithms

Data Structures and Algorithms 2020-08-05 v3

Abstract

We present priority queues in the cache-oblivious external memory model with block size BB and main memory size MM that support on NN elements, operation \textsc{UPDATE} (combination of \textsc{INSERT} and \textsc{DECREASEKEY}) in O(1BlogλBNB)O \left(\frac{1}{B}\log_{\frac{\lambda}{B}} \frac{N}{B}\right) amortized I/Os and operations \textsc{EXTRACT-MIN} and \textsc{DELETE} in O(λεBlogλBNBlogλBNB)O \left(\lceil \frac{\lambda^{\varepsilon}}{B} \log_{\frac{\lambda}{B}} \frac{N}{B} \rceil \log_{\frac{\lambda}{B}} \frac{N}{B}\right) amortized I/Os, using O(NBlogλBNB)O \left(\frac{N}{B}\log_{\frac{\lambda}{B}} \frac{N}{B}\right) blocks, for a user-defined parameter λ[2,N]\lambda \in [2, N ] and any real ε(0,1)\varepsilon \in (0,1). Our result improves upon previous I/O-efficient cache-oblivious and cache-aware priority queues [Chowdhury and Ramachandran, TALG 2018], [Brodal et al., SWAT 2004], [Kumar and Schwabe, SPDP 1996], [Arge et al., SICOMP 2007], [Fadel et al., TCS 1999]. We also present buffered repository trees that support on a multi-set of NN elements, operation \textsc{INSERT} in O(1BlogλBNB)O \left(\frac{1}{B}\log_{\frac{\lambda}{B}} \frac{N}{B}\right) I/Os and operation \textsc{EXTRACT} on KK extracted elements in O(λεBlogλBNB+KB)O \left(\frac{\lambda^{\varepsilon}}{B} \log_{\frac{\lambda}{B}} \frac{N}{B} + \frac{K}{B}\right) amortized I/Os, using O(NB)O \left(\frac{N}{B}\right) blocks, improving previous cache-aware and cache-oblivious results [Arge et al., SICOMP '07], [Buchsbaum et al., SODA '00]. In the cache-oblivious model, for λ=O(E/V)\lambda = O \left(E/V\right), we achieve O(EBlogEVBEB)O \left(\frac{E}{B}\log_{\frac{E}{V B}} \frac{E}{B}\right) I/Os for single-source shortest paths, depth-first search and breadth-first search algorithms on massive directed dense graphs (V,E)(V,E). Our algorithms are I/O-optimal for E/V=Ω(M)E/V = \Omega (M) (and in the cache-aware setting for λ=O(M)\lambda = O(M)).

Keywords

Cite

@article{arxiv.1903.03147,
  title  = {Cache-Oblivious Priority Queues with Decrease-Key and Applications to Graph Algorithms},
  author = {John Iacono and Riko Jacob and Konstantinos Tsakalidis},
  journal= {arXiv preprint arXiv:1903.03147},
  year   = {2020}
}

Comments

A preliminary version of this work is published in ESA 2019