An Axiomatic Approach to Time-Dependent Shortest Paths
Christos Zaroliagis
zaro@ceid.upatras.gr
- Dept. of Computer Engineering & Informatics
University of Patras, Greece Computer Technology Institute & Press “Diophantus” 1 / 36
An Axiomatic Approach to Time-Dependent Shortest Paths Christos - - PowerPoint PPT Presentation
An Axiomatic Approach to Time-Dependent Shortest Paths Christos Zaroliagis zaro@ceid.upatras.gr Dept. of Computer Engineering & Informatics Computer Technology Institute & Press University of Patras, Greece Diophantus 1 / 36
zaro@ceid.upatras.gr
University of Patras, Greece Computer Technology Institute & Press “Diophantus” 1 / 36
2 / 36
2x+0.1 2x+0.1 3x x+2 x+2 1 u v
Instance with ARC DELAY functions
2x+0.1 2x+0.1 3x x+2 x+2 1 u v
3 / 36
0.9 0.1 0.3 2.1 2 1 0.1 0.4 1.3 u v
2x+0.1 2x+0.1 3x x+2 x+2 1 u v
3 / 36
8.1 2.1 9.3 5.1 3 1 1 3.1 4 8.2 u v
2x+0.1 2x+0.1 3x x+2 x+2 1 u v
3 / 36
2x+0.1 2x+0.1 3x x+2 x+2 1 u v
Instance with ARC DELAY functions
2x+0.1 2x+0.1 3x x+2 x+2 1 u v
3 / 36
3x+0.1 3x+0.1 4x 2x+2 2x+2 x+1 u v
Instance with ARC-ARRIVAL functions
2x+0.1 2x+0.1 3x x+2 x+2 1 u v
3 / 36
3x+0.1 3x+0.1 4x 2x+2 2x+2 x+1 u v
Instance with ARC-ARRIVAL functions
Arr[oud](to) = Arr[ud](Arr[ou](to)) = 6to + 2.2 Arr[ovd](to) = Arr[vd](Arr[ov](to)) = 6to + 6.1 Arr[ouvd](to) = Arr[vd](Arr[uv](Arr[ou](to))) = 36to+1.3 Arr[ovud](to) = Arr[ud](Arr[vu](Arr[ov](to))) = 4to+8
3x+0.1 3x+0.1 4x 2x+2 2x+2 x+1 u v
3 / 36
3x+0.1 3x+0.1 4x 2x+2 2x+2 x+1 u v
Instance with ARC-ARRIVAL functions
Arr[oud](to) = Arr[ud](Arr[ou](to)) = 6to + 2.2 Arr[ovd](to) = Arr[vd](Arr[ov](to)) = 6to + 6.1 Arr[ouvd](to) = Arr[vd](Arr[uv](Arr[ou](to))) = 36to+1.3 Arr[ovud](to) = Arr[ud](Arr[vu](Arr[ov](to))) = 4to+8
3x+0.1 3x+0.1 4x 2x+2 2x+2 x+1 u v
3 / 36
4 / 36
4 / 36
4 / 36
4 / 36
4 / 36
4 / 36
4 / 36
4 / 36
4 / 36
4 / 36
= Arr[uv](tu ) = tu + D[uv](tu)
5 / 36
= Arr[uv](tu ) = tu + D[uv](tu)
5 / 36
= Arr[uv](tu ) = tu + D[uv](tu)
5 / 36
= Arr[uv](tu ) = tu + D[uv](tu)
5 / 36
= Arr[uv](tu ) = tu + D[uv](tu)
1
2
5 / 36
6 / 36
◮ Forbidden waiting: ∄ subpath optimality; NP-hard [Orda-Rom (1990)] ◮ Unrestricted waiting: ≡ FIFO (arbitrary waiting) [Dreyfus (1969)] 6 / 36
7 / 36
[Delling & Wagner 2009; Batz etal, 2009]
7 / 36
[Delling & Wagner 2009; Batz etal, 2009]
7 / 36
[Delling & Wagner 2009; Batz etal, 2009]
◮ Open till recently ... 7 / 36
[Delling & Wagner 2009; Batz etal, 2009]
◮ Open till recently ... ◮ Arr[o, d]: O((K + 1) · nΘ
(log(n))) space [Foschini-Hershberger-Suri (2011)]
7 / 36
[Delling & Wagner 2009; Batz etal, 2009]
◮ Open till recently ... ◮ Arr[o, d]: O((K + 1) · nΘ
(log(n))) space [Foschini-Hershberger-Suri (2011)]
7 / 36
v d u s A[s-u]
t t1
A[u-d]
t1 t2
A[v-d]
t′ 1 t′ 2
A[s-v]
t t′ 1
A[s-u-d]
t t2
A[s-v-d]
t t′ 2
A[s, d]
t t2 t′ 2
u v
Arr[o,d] Arr[o-u-d] Arr[o-v-d] Arr[ov] Arr[vd] Arr[ou] Arr[ud]
8 / 36
v d u s A[s-u]
t t1
A[u-d]
t1 t2
A[v-d]
t′ 1 t′ 2
A[s-v]
t t′ 1
A[s-u-d]
t t2
A[s-v-d]
t t′ 2
A[s, d]
t t2 t′ 2
u v
Arr[o,d] Arr[o-u-d] Arr[o-v-d] Arr[ov] Arr[vd] Arr[ou] Arr[ud]
8 / 36
[Delling & Wagner 2009; Batz etal, 2009]
◮ Open till recently ... ◮ Arr[o, d]: O((K + 1) · nΘ
(log(n))) space [Foschini-Hershberger-Suri (2011)]
◮ D[o, d]: O(K + 1) space for point-to-point (1 + ε)−approximation
[Dehne-Omran-Sack (2010), Foschini-Hershberger-Suri (2011)]
9 / 36
◮ requires reasonable space ? ◮ allows answering distance queries efficiently ? 10 / 36
◮ requires reasonable space ? ◮ allows answering distance queries efficiently ?
10 / 36
◮ requires reasonable space ? ◮ allows answering distance queries efficiently ?
10 / 36
◮ requires reasonable space ? ◮ allows answering distance queries efficiently ?
◮ subquadratic space & sublinear query time ◮ ∃ smooth tradeoff among space / query time / stretch ? 10 / 36
1
2
3
11 / 36
12 / 36
12 / 36
12 / 36
12 / 36
12 / 36
13 / 36
[Kontogiannis & Zaroliagis, 2014]
1
14 / 36
[Kontogiannis & Zaroliagis, 2014]
1
2
◮ BIS (bisection-based) approach, one-to-all (1 + ε)-approximation 14 / 36
[Kontogiannis & Zaroliagis, 2014]
1
2
◮ BIS (bisection-based) approach, one-to-all (1 + ε)-approximation 3
14 / 36
[Kontogiannis & Zaroliagis, 2014]
1
2
◮ BIS (bisection-based) approach, one-to-all (1 + ε)-approximation 3
(1))
(1))
(ε/ψ)r+1 (ε/ψ)r+1−1
14 / 36
Example of Bisection Execution : INPUT = UNKNOWN BLUE function t1 t0 D1 D0 15 / 36
Example of Bisection Execution : ORANGE = Upper Bound, YELLOW = Lower Bound t1 t0 D1 D0 15 / 36
Example of Bisection Execution : Level-1 Recursion t1 t0 D1 D0 t2 D2 15 / 36
Example of Bisection Execution : Level-2 Recursion t1 t0 D1 D0 t2 D2 t3 D3 15 / 36
1
2
departure time from u = tail[uv] t1 earliest-arrival times at v = head[uv] t2 t3 t4 t5 T
3
16 / 36
17 / 36
17 / 36
ε · log(n/ε)
17 / 36
ε · log(n/ε)
ε log2( n ε) · n log n
17 / 36
[Kontogiannis & Zaroliagis, 2014]
td = to + D[o,d](to)
Ro
lo
to
Q SP[o,lo](to)
18 / 36
[Kontogiannis & Zaroliagis, 2014]
td = to + D[o,d](to)
Ro
lo
to
Q SP[o,lo](to)
18 / 36
[Kontogiannis & Zaroliagis, 2014]
td = to + D[o,d](to)
Ro
lo
to
Q SP[o,lo](to)
18 / 36
[Kontogiannis & Zaroliagis, 2014]
td = to + D[o,d](to)
Ro
lo
to
Q SP[o,lo](to)
18 / 36
[Kontogiannis & Zaroliagis, 2014]
19 / 36
[Kontogiannis & Zaroliagis, 2014] d
19 / 36
[Kontogiannis & Zaroliagis, 2014]
t1 t2 t3
lo d
w3 w1
w2
Growing level-0 ball...
19 / 36
[Kontogiannis & Zaroliagis, 2014]
t1 t2 t3
lo l1 d
w3 w1 t4
to w2
Growing level-0 ball... Growing level-1 balls...
19 / 36
[Kontogiannis & Zaroliagis, 2014]
t1 t2 t3
lo l1 d
w3
l2
w1 t4
to w2
Growing level-0 ball... Growing level-1 balls...
19 / 36
[Kontogiannis & Zaroliagis, 2014]
t1 t2 t3
lo l1 d
w3
l3 l2
w1 t4
to w2
Growing level-0 ball... Growing level-1 balls...
19 / 36
[Kontogiannis & Zaroliagis, 2014]
t1 t2 t3
lo l1 d
w3
l3 l2 l4
w1 t4
to w2
Growing level-0 ball... Growing level-1 balls... Growing level-2 balls...
19 / 36
[Kontogiannis & Zaroliagis, 2014]
t1 t2 t3
lo l1 d
w3
l3 l2 l4
w1 t4
to w2
Growing level-0 ball... Growing level-1 balls... Growing level-2 balls... ... until recursion budget r is exhausted
19 / 36
[Kontogiannis & Zaroliagis, 2014]
t1 t2 t3
lo l1 d
w3
l3 l2 l4
w1 t4
to w2
Growing level-0 ball... Growing level-1 balls... Growing level-2 balls... ... until recursion budget r is exhausted
19 / 36
[Kontogiannis & Zaroliagis, 2014]
t1 t2 t3
lo l1 d
w3
l3 l2 l4
w1 t4
to w2
Growing level-0 ball... Growing level-1 balls... Growing level-2 balls... ... until recursion budget r is exhausted
(1+ε/ψ)r+1 (1+ε/ψ)r+1−1
19 / 36
[Kontogiannis & Zaroliagis, 2014]
t1 t2 t3
lo l1 d
w3
l3 l2 l4
w1 t4
to w2
Growing level-0 ball... Growing level-1 balls... Growing level-2 balls... ... until recursion budget r is exhausted
(1+ε/ψ)r+1 (1+ε/ψ)r+1−1
(1)); 0 < δ < 1
19 / 36
20 / 36
20 / 36
20 / 36
20 / 36
20 / 36
◮ Subquadratic preprocessing ? 20 / 36
◮ Subquadratic preprocessing ? ◮ Sublinear query time (also on Dijkstra rank) ? 20 / 36
Trapezoidal Approximation shortest travel time at v shortest travel time at v departure time from landmark ts tf
Slope: Λmax Slope: -Λmin Slope: Λmax Slope: -Λmin Max Abs Error
tm tm Dm[l,v](ts,tf) Dm[l,v](ts,tf) D[l,v](tf) D[l,v](ts)
τ
21 / 36
Trapezoidal Approximation shortest travel time at v shortest travel time at v departure time from landmark ts tf
Slope: Λmax Slope: -Λmin Slope: Λmax Slope: -Λmin Max Abs Error
tm tm Dm[l,v](ts,tf) Dm[l,v](ts,tf) D[l,v](tf) D[l,v](ts)
τ
21 / 36
departure time from u = tail[uv] t1 earliest-arrival times at v = head[uv] t2 t3 t4 t5 T
22 / 36
departure time from u = tail[uv] t1 earliest-arrival times at v = head[uv] t2 t3 t4 t5 T
Trapezoidal Approximation shortest travel time at v shortest travel time at v departure time from landmark ts tf
Slope: Λmax Slope: -Λmin Slope: Λmax Slope: -Λmin Max Abs Error
tm tm Dm[l,v](ts,tf) Dm[l,v](ts,tf) D[l,v](tf) D[l,v](ts)
[Kontogiannis, Wagner & Zaroliagis, 2016]
23 / 36
[Kontogiannis, Wagner & Zaroliagis, 2016]
23 / 36
[Kontogiannis, Wagner & Zaroliagis, 2016]
◮ Similar to RQA, but in addition ... 23 / 36
[Kontogiannis, Wagner & Zaroliagis, 2016]
◮ Similar to RQA, but in addition ... ◮ for every ℓ ∈ L discovered by RQA, grow a TD-Dijkstra ball of
23 / 36
[Kontogiannis, Wagner & Zaroliagis, 2016]
d
24 / 36
[Kontogiannis, Wagner & Zaroliagis, 2016]
lo d
to R0 o
24 / 36
[Kontogiannis, Wagner & Zaroliagis, 2016]
lo l1 d l3 l2 l4
to R0 R1 R2 R3 R4
25 / 36
25 / 36
25 / 36
25 / 36
25 / 36
26 / 36
27 / 36
27 / 36
1
1
ln(n), ln(n)
2
2
ln(n), ln(n)
k
k
ln(n), ln(n)
k
1
1
ln(n), ln(n)
2
2
ln(n), ln(n)
k
k
ln(n), ln(n)
k
28 / 36
1
1
ln(n), ln(n)
2
2
ln(n), ln(n)
k
k
ln(n), ln(n)
k
2
28 / 36
1
1
ln(n), ln(n)
2
2
ln(n), ln(n)
k
k
ln(n), ln(n)
k
2
3
28 / 36
1
1
ln(n), ln(n)
2
2
ln(n), ln(n)
k
k
ln(n), ln(n)
k
2
3
4
28 / 36
29 / 36
29 / 36
[Kontogiannis, Wagner & Zaroliagis, 2016]
[KZ, 2014]
(1)
(1)
(1)
(1)
α − 1
(1)
(1)
α − 1
(1)
(1)
α − 1
(ε/ψ)r+1 (ε/ψ)r+1−1
30 / 36
31 / 36
32 / 36
05.12.2013 10 2nd eCOMPASS Review, Brussels, BE 33 / 36
34 / 36
◮ Subquadratic preprocessing ◮ Sublinear query time (also on Dijkstra rank) ◮ Provable approximation guarantee ◮ Fully-scalable; work well in practice 34 / 36
◮ Subquadratic preprocessing ◮ Sublinear query time (also on Dijkstra rank) ◮ Provable approximation guarantee ◮ Fully-scalable; work well in practice
34 / 36
1
time-dependent road networks. In ATMOS 2017.
2
3
Algorithmica Vol. 74 (2016), No. 4, pp. 1404-1434. Prel. version in ICALP 2014.
4
Time-Dependent Routing Service. In ALGOCLOUD 2016.
5
2016.
6
35 / 36
36 / 36