TY - GEN
T1 - Segment Proximity Graphs and Nearest Neighbor Queries Amid Disjoint Segments
AU - Agarwal, Pankaj K.
AU - Kaplan, Haim
AU - Katz, Matthew J.
AU - Sharir, Micha
N1 - Publisher Copyright: © Pankaj K. Agarwal, Haim Kaplan, Matthew J. Katz, and Micha Sharir; licensed under Creative Commons License CC-BY 4.0.
PY - 2024/9/1
Y1 - 2024/9/1
N2 - In this paper we study a few proximity problems related to a set of pairwise-disjoint segments in R2. Let S be a set of n pairwise-disjoint segments in R2, and let r > 0 be a parameter. We define the segment proximity graph of S to be Gr(S):= (S,E), where E = {(e1,e2) | dist(e1,e2) ≤ r} and dist(e1,e2) = min(p,q)∈e1×e2 ∥p − q∥ is the Euclidean distance between e1 and e2. We define the weight of an edge (e1,e2) ∈ E to be dist(e1,e2). We first present a simple grid-based O(nlog2 n)-time algorithm for computing a BFS tree of Gr(S). We apply it to obtain an O∗(n6/5)+O(nlog2 nlog ∆)-time algorithm for the so-called reverse shortest path problem, in which we want to find the smallest value r∗ for which Gr∗(S) contains a path of some specified length between two designated start and target segments (where the O∗(·) notation hides polylogarithmic factors). Here ∆ = maxe≠e′∈S dist(e,e′)/mine≠e′∈S dist(e,e′) is the spread of S. Next, we present a dynamic data structure that can maintain a set S of pairwise-disjoint segments in the plane under insertions/deletions, so that, for a query segment e from an unknown set Q of pairwise-disjoint segments, such that e does not intersect any segment in (the current version of) S, the segment of S closest to e can be computed in O(log5 n) amortized time. The amortized update time is also O(log5 n). We note that if the segments in S∪Q are allowed to intersect then the known lower bounds on halfplane range searching suggest that a sequence of n updates and queries may take at least close to Ω(n4/3) time. One thus has to strongly rely on the non-intersecting property of S and Q to perform updates and queries in O(polylog(n)) (amortized) time each. Using these results on nearest-neighbor (NN) searching for disjoint segments, we show that a DFS tree (or forest) of Gr(S) can be computed in O∗(n) time. We also obtain an O∗(n)-time algorithm for constructing a minimum spanning tree of Gr(S). Finally, we present an O∗(n4/3)-time algorithm for computing a single-source shortest-path tree in Gr(S). This is the only result that does not exploit the disjointness of the input segments.
AB - In this paper we study a few proximity problems related to a set of pairwise-disjoint segments in R2. Let S be a set of n pairwise-disjoint segments in R2, and let r > 0 be a parameter. We define the segment proximity graph of S to be Gr(S):= (S,E), where E = {(e1,e2) | dist(e1,e2) ≤ r} and dist(e1,e2) = min(p,q)∈e1×e2 ∥p − q∥ is the Euclidean distance between e1 and e2. We define the weight of an edge (e1,e2) ∈ E to be dist(e1,e2). We first present a simple grid-based O(nlog2 n)-time algorithm for computing a BFS tree of Gr(S). We apply it to obtain an O∗(n6/5)+O(nlog2 nlog ∆)-time algorithm for the so-called reverse shortest path problem, in which we want to find the smallest value r∗ for which Gr∗(S) contains a path of some specified length between two designated start and target segments (where the O∗(·) notation hides polylogarithmic factors). Here ∆ = maxe≠e′∈S dist(e,e′)/mine≠e′∈S dist(e,e′) is the spread of S. Next, we present a dynamic data structure that can maintain a set S of pairwise-disjoint segments in the plane under insertions/deletions, so that, for a query segment e from an unknown set Q of pairwise-disjoint segments, such that e does not intersect any segment in (the current version of) S, the segment of S closest to e can be computed in O(log5 n) amortized time. The amortized update time is also O(log5 n). We note that if the segments in S∪Q are allowed to intersect then the known lower bounds on halfplane range searching suggest that a sequence of n updates and queries may take at least close to Ω(n4/3) time. One thus has to strongly rely on the non-intersecting property of S and Q to perform updates and queries in O(polylog(n)) (amortized) time each. Using these results on nearest-neighbor (NN) searching for disjoint segments, we show that a DFS tree (or forest) of Gr(S) can be computed in O∗(n) time. We also obtain an O∗(n)-time algorithm for constructing a minimum spanning tree of Gr(S). Finally, we present an O∗(n4/3)-time algorithm for computing a single-source shortest-path tree in Gr(S). This is the only result that does not exploit the disjointness of the input segments.
KW - BFS
KW - DFS
KW - dynamic data structures
KW - nearest neighbor searching
KW - segment proximity graphs
KW - unit-disk graphs
UR - http://www.scopus.com/inward/record.url?scp=85205662536&partnerID=8YFLogxK
U2 - 10.4230/LIPIcs.ESA.2024.7
DO - 10.4230/LIPIcs.ESA.2024.7
M3 - منشور من مؤتمر
T3 - Leibniz International Proceedings in Informatics, LIPIcs
BT - 32nd Annual European Symposium on Algorithms, ESA 2024
A2 - Chan, Timothy
A2 - Fischer, Johannes
A2 - Iacono, John
A2 - Herman, Grzegorz
PB - Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
T2 - 32nd Annual European Symposium on Algorithms, ESA 2024
Y2 - 2 September 2024 through 4 September 2024
ER -