Shortest path to a segment and quickest visibility queries Topi Talvitie Esther M. Arkin, Alon Efrat, Christian Knauer, Joseph S. B. Mitchell, Valentin Polishchuk, Günter Rote, Lena Schlipf SoCG 2015, Eindhoven Shortest path queries s Shortest path queries How should one move from s in order to reach q as soon as possible? q s Shortest path queries How should one move from s in order to reach q as soon as possible? q s Shortest path queries How should one move from s in order to reach q as soon as possible? q s Shortest path queries How should one move from s in order to reach q as soon as possible? s q Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) s Shortest path queries Fixed s: Preprocessing:q Query: O(n log n) [Hershberger & Suri] O(log n) s Shortest path queries Fixed s: Preprocessing: Query: q O(n log n) [Hershberger & Suri] O(log n) s Shortest path queries Fixed s: Preprocessing: Query:q O(n log n) [Hershberger & Suri] O(log n) s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries Fixed s: Preprocessing: Query: O(n log n) [Hershberger & Suri] O(log n) q s Shortest path queries How should one move from s in order to reach q as soon as possible? q s Quickest visibility paths How should one move from s in order to see q as soon as possible? x q s Quickest visibility paths Fixed s: Preprocessing: Query: P =? Q=? q s Quickest visibility paths Fixed s: Preprocessing: Query: P =? Q=? q s Quickest visibility paths Fixed s: Preprocessing: Query: P =? Q=? q s Quickest visibility paths Fixed s: Preprocessing: Query: s P =? Q=? q Quickest visibility paths Fixed s: Preprocessing: Query: P =? Q=? q s Quickest visibility map QVM = subdivision of the domain into cells such that QVP from s to q is the same for all q in that cell. Quickest visibility map QVM = subdivision of the domain into cells such that QVP from s to q is the same for all q in that cell. Lower bound on worst-case complexity: Ω(n4 ) s n holes Quickest visibility map QVM = subdivision of the domain into cells such that QVP from s to q is the same for all q in that cell. Lower bound on worst-case complexity: Ω(n4 ) s n holes n2 lines, Θ(n4 ) intersections Quickest visibility map QVM = subdivision of the domain into cells such that QVP from s to q is the same for all q in that cell. Quickest visibility map QVM = subdivision of the domain into cells such that QVP from s to q is the same for all q in that cell. Quickest visibility map QVM = subdivision of the domain into cells such that QVP from s to q is the same for all q in that cell. Lower bound on worst-case complexity: Ω(n4 ) s n holes n2 lines, Θ(n4 ) intersections Quickest visibility map QVM = subdivision of the domain into cells such that QVP from s to q is the same for all q in that cell. Lower bound on worst-case complexity: Ω(n4 ) s Fixed s: Preprocessing: Query: Size: P = O(n8 log n) Q = O(log n) S = O(n7 ) Curse of visibility: 3SUM hardness |L1 | = |L2 | = |L3 | = n. (3SUM hard) Find a ∈ L1 , b ∈ L2 , c ∈ L3 such that (a, b, c) is an arithmetic sequence. Curse of visibility: 3SUM hardness |L1 | = |L2 | = |L3 | = n. (3SUM hard) Find a ∈ L1 , b ∈ L2 , c ∈ L3 such that (a, b, c) is an arithmetic sequence. s L1 L2 Using quickest visibility paths: O(P + nQ) time. Conjecture ⇒ P + nQ = Ω(n2 ). L3 Curse of visibility: 3SUM hardness |L1 | = |L2 | = |L3 | = n. (3SUM hard) Find a ∈ L1 , b ∈ L2 , c ∈ L3 such that (a, b, c) is an arithmetic sequence. s L1 L2 Using quickest visibility paths: O(P + nQ) time. Conjecture ⇒ P + nQ = Ω(n2 ). L3 Curse of visibility: 3SUM hardness |L1 | = |L2 | = |L3 | = n. (3SUM hard) Find a ∈ L1 , b ∈ L2 , c ∈ L3 such that (a, b, c) is an arithmetic sequence. s L1 L2 Using quickest visibility paths: O(P + nQ) time. Conjecture ⇒ P + nQ = Ω(n2 ). L3 Curse of visibility: 3SUM hardness |L1 | = |L2 | = |L3 | = n. (3SUM hard) Find a ∈ L1 , b ∈ L2 , c ∈ L3 such that (a, b, c) is an arithmetic sequence. s L1 L2 L3 Using quickest visibility paths: O(P + nQ) time. Conjecture ⇒ P + nQ = Ω(n2− ) for > 0. 2 2 (log log n) ) [Grønlund, Pettie 2014]: O(n log n Visibility polygon s q Visibility polygon s q Visibility polygon s q Visibility polygon s q Visibility polygon Find the visibility polygon of any q: Simple polygons: [Joe, Simpson 1987] [Guibas, Motwani, Raghavan 1997] [Bose, Lubiw, Munro 2002] [Aronov, Guibas, Teichman, Zhang 2002] Preprocessing – O(n3 log n) O(n3 log n) O(n2 log n) Query O(n) O(log n + K) O(log n + K) O(log2 n + K) s Polygons with holes: [Heffernan, Mitchell 1995] [Zarei, Ghodsi 2008] [Inkulu, Kapoor 2009] [Lu, Yang, Wang q2011] [Chen, Wang 2013] [Chen, Wang 2013] Preprocessing – O(n3 log n) O(n2 log n) O(n + h2 log h) O(n2 log n) O(n + h2 log h) Query O(n + h log h) O(K + min(h, K) log n) O(K log2 n) O(K + log2 n + h log(n/h)) O(K + log2 n + min(h, K) log n) O(K log n) K = the size of the visibility polygon h = the number of holes Visibility polygon Find the visibility polygon of any q: Simple polygons: [Joe, Simpson 1987] [Guibas, Motwani, Raghavan 1997] [Bose, Lubiw, Munro 2002] [Aronov, Guibas, Teichman, Zhang 2002] Preprocessing – O(n3 log n) O(n3 log n) O(n2 log n) Query O(n) O(log n + K) O(log n + K) O(log2 n + K) s Polygons with holes: [Heffernan, Mitchell 1995] [Zarei, Ghodsi 2008] [Inkulu, Kapoor 2009] [Lu, Yang, Wang q2011] [Chen, Wang 2013] [Chen, Wang 2013] Preprocessing – O(n3 log n) O(n2 log n) O(n + h2 log h) O(n2 log n) O(n + h2 log h) Query O(n + h log h) O(K + min(h, K) log n) O(K log2 n) O(K + log2 n + h log(n/h)) O(K + log2 n + min(h, K) log n) O(K log n) K = the size of the visibility polygon h = the number of holes Visibility polygon s q Visibility polygon s q Visibility polygon s q Visibility polygon s q Visibility polygon s q Find quickest visibility path from s to any q: Preprocessing: P = Pv + Ps = O(n2 log n + Ps ) Query: Q = Qv + KQs = O(K(log2 n + Qs )) Shortest path to segment q s Shortest path to segment s q Shortest path to segment s q Shortest path to segment s q Shortest path to segment s q Shortest path to segment s q Types of shortest paths to segments q Types of shortest paths to segments q Types of shortest paths to segments q Types of shortest paths to segments q Types of shortest paths to segments q Types of shortest paths to segments q Types of shortest paths to segments q Types of shortest paths to segments q Types of shortest paths to segments q1 q Shortest path to the segment q is the shortest of: • Shortest path to endpoint q1 , • Shortest path to endpoint q2 , • Shortest orthogonal path to the interior of t. q2 Types of shortest paths to segments q1 q Shortest path to the segment q is the shortest of: • Shortest path to endpoint q1 , • Shortest path to endpoint q2 , • Shortest orthogonal path to the interior of t. q2 Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Wavefront propagation algorithm q s Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Critical times Finding the previous critical time q Finding the previous critical time q Finding the previous critical time q Finding the previous critical time q Finding the previous critical time q Find out whether segment q lies in the geodesic disk of the critical time using ray shooting queries: Preprocessing: Query: O(n log n) [Chazelle, Edelsbrunner, Grigni, Guibas, Hershberger, Sharir, Snoeyink 1994] O(log n) Finding the previous critical time q Find out whether segment q lies in the geodesic disk of the critical time using ray shooting queries: Preprocessing: Query: O(n log n) [Chazelle, Edelsbrunner, Grigni, Guibas, Hershberger, Sharir, Snoeyink 1994] O(log n) Finding the colliding wavelet q Finding the colliding wavelet q Finding the colliding wavelet q Finding the colliding wavelet q Finding the collision point q Finding the collision point q Finding the collision point q Finding the collision point q Finding the collision point q Finding the collision point q Finding the collision point q Finding the collision point q Finding the collision point q Finding the collision point q Finding the collision point q Finding the collision point q Complexities Shortest path to segment query Preprocessing: Ps = O(n2 log n 2α(n) ) Query: Qs = O(log2 n) Complexities Shortest path to segment query Preprocessing: Ps = O(n2 log n 2α(n) ) Query: Qs = O(log2 n) ⇒ Quickest visibility path query: Preprocessing: P = O(n2 log n + Ps ) = O(n2 log n 2α(n) ) Query: Q = O(K(log2 n + Qs )) = O(K log2 n) (K = the size of the visibility polygon) Simple polygons Shortest path to segment query Preprocessing: Ps0 = O(n) Query: Q0s = O(log n) ⇒ Quickest visibility path query: Preprocessing: P 0 = O(n) Query: Q0 = O(log n) Simple polygons Shortest path to segment query Preprocessing: Ps0 = O(n) Query: Q0s = O(log n) ⇒ Quickest visibility path query: Preprocessing: P 0 = O(n) Query: Q0 = O(log n) Previously P 0 = O(n2 ) [Khosravi, Ghodsi 2005] Thank you Check out the visualization applet: Visualizing Quickest Visibility Maps SoCG Multimedia 2015 http://dy.fi/xwj
© Copyright 2026 Paperzz