Querying approximate shortest paths in anisotropic regions

Querying approximate shortest paths
in anisotropic regions
Siu-Wing Cheng (HKUST)
Hyeon-Suk Na (Soongsil University)
Antoine Vigneron (INRA Jouy-en-Josas)
Yajun Wang (HKUST)
The weighted region problem
cost = weight × length
t
w=1
w=2
s
Shortest path
The weighted region problem
cost = weight × length
t
w=1
w=2
s
Shortest path
The weighted region problem
• Triangulation with n vertices
• Each face has a weight
• Find an approximate shortest path with cost at most 1 + times the minimum
s
t
No (strongly polynomial) FPTAS is known
No (strongly polynomial) FPTAS is known
Known results: polynomial in n, 1/, and other parameters.
No (strongly polynomial) FPTAS is known
Known results: polynomial in n, 1/, and other parameters.
• ρ: maximum weight/ minimum weight
• θ: minimum angle in the triangulation
No (strongly polynomial) FPTAS is known
Known results: polynomial in n, 1/, and other parameters.
• ρ: maximum weight/ minimum weight
• θ: minimum angle in the triangulation
Known results
• Mitchell and Papadimitriou (1987): O(n8 log(nN ρ/))
• Aleksandrov,
Maheshwari, and Sacks:
√
O(Cn/ × polylog(n, 1/)),
C depends on ρ, θ and other parameters.
• Sun and Reif: O(C 0 n/ × polylog(n, 1/)),
C 0 depends on θ, other parameters, but not ρ.
• Cheng et al. (2007): O(n3 ρ/ × polylog(n, ρ, 1/))
Query problem
s
Query problem
Build a data structure
s
Query problem
Build a data structure
Given a query point q, find a (1 + ε)-approximation of the
cost of the shortest path from s to q.
q
s
Query problem
Build a data structure
Given a query point q, find a (1 + ε)-approximation of the
cost of the shortest path from s to q.
q
s
Query problem
Build a data structure
Given a query point q, find a (1 + ε)-approximation of the
cost of the shortest path from s to q.
q
s
Output an approximate shortest path in time linear in its size
Previous results
Aleksandrov et al.: Space and preprocessing time depend on
several parameters including n, ε, ρ and θ.
Previous results
Aleksandrov et al.: Space and preprocessing time depend on
several parameters including n, ε, ρ and θ.
Applies to polyhedral surfaces
Previous results
Aleksandrov et al.: Space and preprocessing time depend on
several parameters including n, ε, ρ and θ.
Applies to polyhedral surfaces
Our results
Query time: O(log(ρn/ε))
Space: O(ρ2 n4 /ε2 log(ρn/ε))
Preprocessing time: O(ρ2 n4 /ε2 log2 (ρn/ε))
Previous results
Aleksandrov et al.: Space and preprocessing time depend on
several parameters including n, ε, ρ and θ.
Applies to polyhedral surfaces
Our results
Query time: O(log(ρn/ε))
Space: O(ρ2 n4 /ε2 log(ρn/ε))
Preprocessing time: O(ρ2 n4 /ε2 log2 (ρn/ε))
Applies to anisotropic distance functions
Convex distance function
Unit ball B: set of points at distance 6 1 from O
B
O
Convex distance function
Unit ball B: set of points at distance 6 1 from O
B
O
x + λB
x
y
dB (x, y) = λ
Convex distance function
Unit ball B: set of points at distance 6 1 from O
B
O
x + λB
x
y
dB (x, y) = λ
Shortest path is a straight line segment
Model
One convex distance
function per face
1
B
1/ρ
Model
One convex distance
function per face
1
B
1/ρ
Speed is in
interval [1/ρ, 1]
Model
One convex distance
function per face
1
B
1/ρ
Speed is in
interval [1/ρ, 1]
Cost of a length `
path is in [`, ρ`].
Exemple of a non-polygonal shortest path
s
t
Exemple of a non-polygonal shortest path
s
t
Exemple of a non-polygonal shortest path
s
t
There exists a rectifiable (=finite length) shortest path
Exemple of a non-polygonal shortest path
s
t
There exists a rectifiable (=finite length) shortest path
There exists a (1 + ε)-approximate shortest path with
O(ρn2 /ε) edges.
Static (non query) algorithm
t
s
Static (non query) algorithm
Circle with radius ρ d(s, t) and center s
t
s
Static (non query) algorithm
Circle with radius ρ d(s, t) and center s
t
s
Steiner points with uniform spacing δ = 1/poly(ρ, n, 1/ε)
Static (non query) algorithm
Circle with radius ρ d(s, t) and center s
t
s
Steiner points with uniform spacing δ = 1/poly(ρ, n, 1/ε)
Observation
δ
s
q
Observation
δ
s
q
shortest path
Observation
δ
approximate shortest path
s
q
shortest path
Observation
δ
approximate shortest path
s
q
shortest path
Observation
δ
approximate shortest path
s
q
shortest path
additive error at most δ
Observation
(1 + ε) approximation when q is in an annulus
q
t
s
radius ratio=poly(ρ, n, 1/ε)
Answering queries within the annulus
Additively weighted
Voronoi diagram
s
Answering queries within the annulus
Additively weighted
Voronoi diagram
s
Weight= cost of approximate shortest path
Answering queries within the annulus
Additively weighted
Voronoi diagram
s
q
Weight= cost of approximate shortest path
Answering queries within the annulus
Additively weighted
Voronoi diagram
s
q
Weight= cost of approximate shortest path
Answering queries within the annulus
Additively weighted
Voronoi diagram
s
q
Weight= cost of approximate shortest path
Answering queries within the annulus
Additively weighted
Voronoi diagram
s
q
Weight= cost of approximate shortest path
Overview
For each vertex vi , we construct a data structure for the
annulus with radius ri = d(s, vi )/2ρ
and Ri =poly(ρ, n, 1/ε)d(s, vi )
Overview
For each vertex vi , we construct a data structure for the
annulus with radius ri = d(s, vi )/2ρ
and Ri =poly(ρ, n, 1/ε)d(s, vi )
q
vi
s
ri
Ri
Overview
For each vertex vi , we construct a data structure for the
annulus with radius ri = d(s, vi )/2ρ
and Ri =poly(ρ, n, 1/ε)d(s, vi )
q
vi
s
ri
Ri
We handle the neighborhood of s
through scaling
Overview
For each vertex vi , we construct a data structure for the
annulus with radius ri = d(s, vi )/2ρ
and Ri =poly(ρ, n, 1/ε)d(s, vi )
q
vi
We handle the neighborhood of s
through scaling
s
ri
Ri
We handle the empty space
(if any) through scaling
and perturbation
Close range queries
v1
q
s
Close range queries
q0
q
s
v1
Close range queries
q0
q
s
v1
Close range queries
q0
q
s
v1
Between two annuli
q
s
Between two annuli
q
s
Between two annuli
Perturbation ϕ
maps black points
7→ blue points and
q 7→ q 0
q
q0
s
Between two annuli
Find approx shortest path
in data structure for the
blue subdivision
q
q0
s
Between two annuli
Find approx shortest path
in data structure for the
blue subdivision
Clip the path
q
q0
s
Between two annuli
Find approx shortest path
in data structure for the
blue subdivision
Clip the path
Apply ϕ−1
q
q0
s
Between two annuli
Find approx shortest path
in data structure for the
blue subdivision
Clip the path
Apply ϕ−1
q
q
s
0
Go straight to s
Conclusion
We can also handle obstacles
Conclusion
We can also handle obstacles
2 point queries?
Conclusion
We can also handle obstacles
2 point queries?