English

Additive Spanners and Distance Oracles in Quadratic Time

Data Structures and Algorithms 2017-04-17 v1

Abstract

Let GG be an unweighted, undirected graph. An additive kk-spanner of GG is a subgraph HH that approximates all distances between pairs of nodes up to an additive error of +k+k, that is, it satisfies dH(u,v)dG(u,v)+kd_H(u,v) \le d_G(u,v)+k for all nodes u,vu,v, where dd is the shortest path distance. We give a deterministic algorithm that constructs an additive O ⁣(1)O\!\left(1\right)-spanner with O ⁣(n4/3)O\!\left(n^{4/3}\right) edges in O ⁣(n2)O\!\left(n^2\right) time. This should be compared with the randomized Monte Carlo algorithm by Woodruff [ICALP 2010] giving an additive 66-spanner with O ⁣(n4/3log3n)O\!\left(n^{4/3}\log^3 n\right) edges in expected time O ⁣(n2log2n)O\!\left(n^2\log^2 n\right). An (α,β)(\alpha,\beta)-approximate distance oracle for GG is a data structure that supports the following distance queries between pairs of nodes in GG. Given two nodes uu, vv it can in constant time compute a distance estimate d~\tilde{d} that satisfies dd~αd+βd \le \tilde{d} \le \alpha d + \beta where dd is the distance between uu and vv in GG. Sommer [ICALP 2016] gave a randomized Monte Carlo (2,1)(2,1)-distance oracle of size O ⁣(n5/3polylogn)O\!\left(n^{5/3}\text{poly} \log n\right) in expected time O ⁣(n2polylogn)O\!\left(n^2\text{poly} \log n\right). As an application of the additive O(1)O(1)-spanner we improve the construction by Sommer [ICALP 2016] and give a Las Vegas (2,1)(2,1)-distance oracle of size O ⁣(n5/3)O\!\left(n^{5/3}\right) in time O ⁣(n2)O\!\left(n^2\right). This also implies an algorithm that in O ⁣(n2)O\!\left(n^2\right) gives approximate distance for all pairs of nodes in GG improving on the O ⁣(n2logn)O\!\left(n^2 \log n\right) algorithm by Baswana and Kavitha [SICOMP 2010].

Keywords

Cite

@article{arxiv.1704.04473,
  title  = {Additive Spanners and Distance Oracles in Quadratic Time},
  author = {Mathias Bæk Tejs Knudsen},
  journal= {arXiv preprint arXiv:1704.04473},
  year   = {2017}
}
R2 v1 2026-06-22T19:17:38.415Z