# Almost Shortest Paths and PRAM Distance Oracles in Weighted Graphs

Let G=(V,E) be a weighted undirected graph with n vertices and m edges, and fix a set of s sources S⊆ V. For any pair u,v∈ V, let W(u,v) denote the weight of the heaviest edge on the u to v shortest path. For any constant 0<ϵ<1, we compute (1+ϵ,β(·,·))-approximate shortest paths from all sources in S in near linear (in m+ns) time, where β(u,v)=O(W(u,v)). That is, the multiplicative stretch is 1+ϵ, and the additive stretch for any u∈ S, v∈ V is β(u,v). Previous results of this type were only able to compute distance estimates and not paths, and had far inferior additive terms. We also introduce distance oracles for parallel models of computation (PRAM). Specifically, for any parameter δ>0, we preprocess a given weighted graph in poly-logarithmic time and near linear work, and store a data structure of size O(n^1+δ). Given any query u∈ V, we return a (1+ϵ,β(·,·))-approximation to all distances u× V in O_δ(1) time, where β(u,v)=O_δ(W(u,v)). Moreover, the dependence of both β and the query time on δ can be made poly(1/δ), by increasing the multiplicative stretch (to some constant larger than 9). Our algorithms are based on new constructions of spanners, emulators and hopsets for weighted graphs. We devise a (1+ϵ,β(·,·))-spanner for weighted graphs of size O(n^1+1/t+ t· n) and β(u,v)=W(u,v)·( t/ϵ)^O( t). We can have an improved β=W(u,v)· t^O(1) at the cost of increasing the multiplicative stretch to a constant larger than 3. In addition, we devise a (c,t^O(1))-hopset of size O(n^1+1/t+ t· n) for any constant c>3.

READ FULL TEXT