38,085 research outputs found

    Exact Distance Oracles for Planar Graphs

    Full text link
    We present new and improved data structures that answer exact node-to-node distance queries in planar graphs. Such data structures are also known as distance oracles. For any directed planar graph on n nodes with non-negative lengths we obtain the following: * Given a desired space allocation S[nlglgn,n2]S\in[n\lg\lg n,n^2], we show how to construct in O~(S)\tilde O(S) time a data structure of size O(S)O(S) that answers distance queries in O~(n/S)\tilde O(n/\sqrt S) time per query. As a consequence, we obtain an improvement over the fastest algorithm for k-many distances in planar graphs whenever k[n,n)k\in[\sqrt n,n). * We provide a linear-space exact distance oracle for planar graphs with query time O(n1/2+eps)O(n^{1/2+eps}) for any constant eps>0. This is the first such data structure with provable sublinear query time. * For edge lengths at least one, we provide an exact distance oracle of space O~(n)\tilde O(n) such that for any pair of nodes at distance D the query time is O~(minD,n)\tilde O(min {D,\sqrt n}). Comparable query performance had been observed experimentally but has never been explained theoretically. Our data structures are based on the following new tool: given a non-self-crossing cycle C with c=O(n)c = O(\sqrt n) nodes, we can preprocess G in O~(n)\tilde O(n) time to produce a data structure of size O(nlglgc)O(n \lg\lg c) that can answer the following queries in O~(c)\tilde O(c) time: for a query node u, output the distance from u to all the nodes of C. This data structure builds on and extends a related data structure of Klein (SODA'05), which reports distances to the boundary of a face, rather than a cycle. The best distance oracles for planar graphs until the current work are due to Cabello (SODA'06), Djidjev (WG'96), and Fakcharoenphol and Rao (FOCS'01). For σ(1,4/3)\sigma\in(1,4/3) and space S=nσS=n^\sigma, we essentially improve the query time from n2/Sn^2/S to n2/S\sqrt{n^2/S}.Comment: To appear in the proceedings of the 23rd ACM-SIAM Symposium on Discrete Algorithms, SODA 201

    Faster Shortest Paths in Dense Distance Graphs, with Applications

    Full text link
    We show how to combine two techniques for efficiently computing shortest paths in directed planar graphs. The first is the linear-time shortest-path algorithm of Henzinger, Klein, Subramanian, and Rao [STOC'94]. The second is Fakcharoenphol and Rao's algorithm [FOCS'01] for emulating Dijkstra's algorithm on the dense distance graph (DDG). A DDG is defined for a decomposition of a planar graph GG into regions of at most rr vertices each, for some parameter r<nr < n. The vertex set of the DDG is the set of Θ(n/r)\Theta(n/\sqrt r) vertices of GG that belong to more than one region (boundary vertices). The DDG has Θ(n)\Theta(n) arcs, such that distances in the DDG are equal to the distances in GG. Fakcharoenphol and Rao's implementation of Dijkstra's algorithm on the DDG (nicknamed FR-Dijkstra) runs in O(nlog(n)r1/2logr)O(n\log(n) r^{-1/2} \log r) time, and is a key component in many state-of-the-art planar graph algorithms for shortest paths, minimum cuts, and maximum flows. By combining these two techniques we remove the logn\log n dependency in the running time of the shortest-path algorithm, making it O(nr1/2log2r)O(n r^{-1/2} \log^2r). This work is part of a research agenda that aims to develop new techniques that would lead to faster, possibly linear-time, algorithms for problems such as minimum-cut, maximum-flow, and shortest paths with negative arc lengths. As immediate applications, we show how to compute maximum flow in directed weighted planar graphs in O(nlogp)O(n \log p) time, where pp is the minimum number of edges on any path from the source to the sink. We also show how to compute any part of the DDG that corresponds to a region with rr vertices and kk boundary vertices in O(rlogk)O(r \log k) time, which is faster than has been previously known for small values of kk

    Exact Distance Oracles for Planar Graphs with Failing Vertices

    Full text link
    We consider exact distance oracles for directed weighted planar graphs in the presence of failing vertices. Given a source vertex uu, a target vertex vv and a set XX of kk failed vertices, such an oracle returns the length of a shortest uu-to-vv path that avoids all vertices in XX. We propose oracles that can handle any number kk of failures. More specifically, for a directed weighted planar graph with nn vertices, any constant kk, and for any q[1,n]q \in [1,\sqrt n], we propose an oracle of size O~(nk+3/2q2k+1)\tilde{\mathcal{O}}(\frac{n^{k+3/2}}{q^{2k+1}}) that answers queries in O~(q)\tilde{\mathcal{O}}(q) time. In particular, we show an O~(n)\tilde{\mathcal{O}}(n)-size, O~(n)\tilde{\mathcal{O}}(\sqrt{n})-query-time oracle for any constant kk. This matches, up to polylogarithmic factors, the fastest failure-free distance oracles with nearly linear space. For single vertex failures (k=1k=1), our O~(n5/2q3)\tilde{\mathcal{O}}(\frac{n^{5/2}}{q^3})-size, O~(q)\tilde{\mathcal{O}}(q)-query-time oracle improves over the previously best known tradeoff of Baswana et al. [SODA 2012] by polynomial factors for q=Ω(nt)q = \Omega(n^t), t(1/4,1/2]t \in (1/4,1/2]. For multiple failures, no planarity exploiting results were previously known

    Fast and Compact Exact Distance Oracle for Planar Graphs

    Full text link
    For a given a graph, a distance oracle is a data structure that answers distance queries between pairs of vertices. We introduce an O(n5/3)O(n^{5/3})-space distance oracle which answers exact distance queries in O(logn)O(\log n) time for nn-vertex planar edge-weighted digraphs. All previous distance oracles for planar graphs with truly subquadratic space i.e., space O(n2ϵ)O(n^{2 - \epsilon}) for some constant ϵ>0\epsilon > 0) either required query time polynomial in nn or could only answer approximate distance queries. Furthermore, we show how to trade-off time and space: for any Sn3/2S \ge n^{3/2}, we show how to obtain an SS-space distance oracle that answers queries in time O((n5/2/S3/2)logn)O((n^{5/2}/ S^{3/2}) \log n). This is a polynomial improvement over the previous planar distance oracles with o(n1/4)o(n^{1/4}) query time
    corecore