Geometric k Shortest Paths Life and Death in the Parking Garage Sylvester Eriksson-Bique Courant Institute, NYU John Hershberger Mentor Graphics Corporation Valentin Polishchuk ITN, Linköping University Bettina Speckmann TU Eindhoven Subhash Suri CS Dept, University of California Topi Talvitie CS Dept, University of Helsinki Kevin Verbeek TU Eindhoven Hakan Yıldız Microsoft SoDA 2015, San Diego Geometric shortest paths t s Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Continuous Dijkstra I A wavefront expanding at unit speed from source point s covers each point p at time d(s, p). Shortest path map I Shortest path map from s: O(n) size, O(n log n) time to build [Hershberger & Suri 1999]. I Query shortest path from s to any point in O(log n) time. Beyond shortest paths I Near-shortest paths may be preferred for some external reason. t s Beyond shortest paths I Near-shortest paths may be preferred for some external reason. t s kth shortest paths in graphs I kth shortest path O(m + n log n + k) [Eppstein 1997] I kth shortest simple path O(kn(m + n log n)) [Yen 1971] n, m – number of vertices and edges Defining geometric kth shortest paths I What does it mean? You can make arbitrarily small detours! t s Defining geometric kth shortest paths I What does it mean? You can make arbitrarily small detours! t s Defining geometric kth shortest paths I What does it mean? You can make arbitrarily small detours! t s Defining geometric kth shortest paths I What does it mean? You can make arbitrarily small detours! t s Defining geometric kth shortest paths I I What does it mean? You can make arbitrarily small detours! Disallow such detours by requiring paths to be locally shortest. kth shortest path := kth shortest locally shortest path. t s Locally shortest paths I Path γ : [0, 1] → P is locally shortest path if for some > 0 there does not exist a shorter path α : [0, 1] → P with ||α − γ||∞ < I Equivalent to γ being the shortest path of its homotopy type Locally shortest paths I Path γ : [0, 1] → P is locally shortest path if for some > 0 there does not exist a shorter path α : [0, 1] → P with ||α − γ||∞ < I I Equivalent to γ being the shortest path of its homotopy type Requirements for a locally shortest path: 1. The path is a polygonal chain with vertices in vertices of P Locally shortest paths I Path γ : [0, 1] → P is locally shortest path if for some > 0 there does not exist a shorter path α : [0, 1] → P with ||α − γ||∞ < I I Equivalent to γ being the shortest path of its homotopy type Requirements for a locally shortest path: 1. The path is a polygonal chain with vertices in vertices of P 2. Path always turns towards the obstacle in the vertices Locally shortest paths I Path γ : [0, 1] → P is locally shortest path if for some > 0 there does not exist a shorter path α : [0, 1] → P with ||α − γ||∞ < I I Equivalent to γ being the shortest path of its homotopy type Requirements for a locally shortest path: 1. The path is a polygonal chain with vertices in vertices of P 2. Path always turns towards the obstacle in the vertices I These conditions are sufficient! Finding locally shortest paths: Visibility graph I Find all s-t-paths in the tangent visibility graph that do not contain outward turns. Finding locally shortest paths: Visibility graph I Find all s-t-paths in the tangent visibility graph that do not contain outward turns. Finding locally shortest paths: Visibility graph I Find all s-t-paths in the tangent visibility graph that do not contain outward turns. Finding locally shortest paths: Visibility graph I Find all s-t-paths in the tangent visibility graph that do not contain outward turns. Finding locally shortest paths: Visibility graph I Find all s-t-paths in the tangent visibility graph that do not contain outward turns. I O(m log n + k) using Eppstein algorithm, where m = tangent visibility graph size. Finding locally shortest paths: Visibility graph I Find all s-t-paths in the tangent visibility graph that do not contain outward turns. I O(m log n + k) using Eppstein algorithm, where m = tangent visibility graph size. We can find kth shortest simple path in O(k 2 m(m + kn) log(kn)) by adapting Yen algorithm. I Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Finding locally shortest paths: Continuous Dijkstra I We find all locally shortest paths from s, ordered by distance. Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: Continuous Dijkstra with the Parking Garage 1: 2: 3: *: “3D” view (mind the ramps!): k-SPM http://cs.helsinki.fi/u/totalvit/ksp/coveringspace/ k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM k-SPM complexity k-SPM (k + 1)-SPM k-SPM complexity k-SPM (k + 1)-SPM I Relate the number of features in (k + 1)-SPM to the number of features in k-SPM using recurrence relations. I By solving them we get upper bound O(k 2 n) for k-SPM complexity. k-SPM complexity lower bound p s Path length equalizer Delay inserter d = D + i∆, i ∈ Z+ k-SPM complexity lower bound A dA,α (p) = dA (p) + α∆ B dB,β (p) = dB (p) + β∆ p dC ,γ (p) = dC (p) + γ∆ Point p is a vertex of k-SPM if dA,α (p) = dB,β (p) = dA,γ (p) C with α, β, γ ∈ Z+ α + β + γ = k + 2. Number of such vertices in k2 = Θ(k 2 ). Thus k-SPM complexity is O(k 2 n) in the worst case. s Computing the k-SPM Extend the continuous Dijkstra algorithm of [Hershberger & Suri 1999]: I Make bisector arcs domain boundaries [Hershberger, Suri & Yıldız 2013]. I Propagate wavefronts from boundary arcs. I Runs in O(k 3 n log n). I Visualization applet available at http://dy.fi/wsn.
© Copyright 2025 Paperzz