shortest paths algorithms - École polytechniqueliberti/teaching/...(sp) is an integer program...

54
Shortest Paths Algorithms Giacomo Nannicini LIX, ´ Ecole Polytechnique [email protected] 15/11/2007 Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 1 / 53

Upload: others

Post on 10-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Shortest Paths Algorithms

Giacomo Nannicini

LIX, Ecole Polytechnique

[email protected]

15/11/2007

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 1 / 53

Page 2: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

1 Problem definition

2 Network Flows

3 Dijkstra’s Algorithm

4 A∗

5 Bidirectional Search

6 State Of The Art For Road Networks

7 Exercises

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 2 / 53

Page 3: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

1 Problem definition

2 Network Flows

3 Dijkstra’s Algorithm

4 A∗

5 Bidirectional Search

6 State Of The Art For Road Networks

7 Exercises

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 3 / 53

Page 4: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Why shortest paths?

Several real-life situation can be modeled as networks◮ Road networks◮ Telecommunications networks◮ Logistics◮ Etc...

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 4 / 53

Page 5: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Why shortest paths?

Computing point-to-point shortest paths is of great interest to manyusers:

◮ GPS devices with path computing capabilities◮ Many web sites provide users with route planners

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 5 / 53

Page 6: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Formulation

We can formulate the problems as follows:

(SP) :

z = min∑

(i ,j)∈A

cijxij

k∈δ+(i)

xik −∑

k∈δ−(i)

xki = 1 for i = s

k∈δ+(i)

xik −∑

k∈δ−(i)

xki = 0 for i ∈ V \ {s, t}

k∈δ+(i)

xik −∑

k∈δ−(i)

xki = −1 for i = t

xij ≥ 0 for (i , j) ∈ A

x ∈ Z|A|

where xij = 1 if (i , j) is in the shortest s → t path.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 6 / 53

Page 7: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Complexity

(SP) is an integer program

Should be very difficult to solve, but we know that it is very easy inpractice

This is not the only case where we are “lucky”

Let us investigate the reason

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 7 / 53

Page 8: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

1 Problem definition

2 Network Flows

3 Dijkstra’s Algorithm

4 A∗

5 Bidirectional Search

6 State Of The Art For Road Networks

7 Exercises

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 8 / 53

Page 9: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Easy Integer Programs

Consider the problem (IP):

min{cx : Ax ≤ b, x ∈ Zn+}

with integral data A, b

We know that a BFS will have the form x = (xB , xN) = (B−1b, 0)where B is an m × m nonsingular submatrix of (A, I ) and I is anm × m identity matrix.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 9 / 53

Page 10: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Easy Integer Programs

Observation:

If the optimal basis B has det(B) = ±1, then the linear programmingrelaxation solves (IP)

Proof: From Cramer’s rule, B−1 = adj(B)/det(B) where adj(B) is theadjugate matrix Bij = (−1i+j)Mij . adj(B) is integral, and as det(B) = ±1we have B−1 integral ⇒ B−1b is integral for all integral b.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 10 / 53

Page 11: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Totally Unimodular Matrices

Definition:

A matrix A is totally unimodular (TU) if every square submatrix of A hasdeterminant +1,−1 or 0.

If A is TU, aij ∈ {+1,−1,−} ∀i , j .

Examples:

(

1 −11 1

)

1 −1 −1 0−1 0 0 10 1 0 −10 0 1 0

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 11 / 53

Page 12: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Totally Unimodular Matrices

Proposition:

A is TU ⇔ AT is TU ⇔ (A, I ) is TU.

Sufficient Condition:

A matrix A is TU if:

1 aij ∈ {+1,−1, 0} ∀i , j .

2 Each column contains at most two nonzero coefficients.

3 There exists a partition (M1, M2) of the set M of rows such that eachcolumn j containing two nonzero coefficients satisfies∑

i∈M1aij −

i∈M2aij = 0.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 12 / 53

Page 13: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Minimum Cost Network Flows

Consider a digraph G = (V , A) with arc capacities hij ∀(i , j) ∈ A,demands bi (positive inflows or negative outflows) at each nodei ∈ V , unit flow costs cij ∀(i , j) ∈ A.

The minimum cost network flow problem is to find a feasible flowthat satisfies all the demands at minimum cost.

(MCNF ) :

z = min∑

(i ,j)∈A

cijxij

k∈δ+(i)

xik −∑

k∈δ−(i)

xki = bi for i ∈ V

0 ≤ xij ≤ hij for (i , j) ∈ A

where xij denotes the flow in arc (i , j).

The problem is feasible only if∑

i∈V bi = 0

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 13 / 53

Page 14: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

1

2 3

6

54

2

3

0 0

5

4

x12 x14 x23 x31 x32 x35 x36 x45 x51 x53 x65

1 1 0 -1 0 0 0 0 -1 0 0 = 3-1 0 1 0 -1 0 0 0 0 0 0 = 00 0 -1 1 1 1 1 0 0 -1 0 = 00 -1 0 0 0 0 0 1 0 0 0 = -20 0 0 0 0 -1 0 -1 1 1 -1 = 40 0 0 0 0 0 -1 0 0 0 1 = -5

0 ≤ xij ≤ hij .

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 14 / 53

Page 15: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Minimum Cost Network Flows

Proposition:

The constraint matrix A arising in a minimum cost network flow problemis totally unimodular.

Proof: The matrix A is of the form

(

C

I

)

, where C comes from the flow

conservation constraints, and I from the capacity constraints. Thereforewe only have to show that C is TU. This follows from the sufficientcondition above, with the partition M1 = M and M2 = ∅.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 15 / 53

Page 16: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

(MCNF ) Is An Easy Problem

Corollary:

In a (MCNF ) problem, if bi and hij are integral, then each extreme pointis integral.

Each time that we have a network flow problem with the constraintsin the form above, we know that the solution is integral.

It is a situation that is frequently found when modeling problems onnetworks.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 16 / 53

Page 17: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

(SP) Is An Easy Problem

(SP) :

z = min∑

(i ,j)∈A

cijxij

k∈δ+(i)

xik −∑

k∈δ−(i)

xki = 1 for i = s

k∈δ+(i)

xik −∑

k∈δ−(i)

xki = 0 for i ∈ V \ {s, t}

k∈δ+(i)

xik −∑

k∈δ−(i)

xki = −1 for i = t

xij ≥ 0 for (i , j) ∈ A

x ∈ Z|A|

It is clearly a (MCNF ) ⇒ integral solution!

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 17 / 53

Page 18: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

The Shortest Path Tree Problem

Suppose we want to compute the shortest path from a source node s

to all other nodes v ∈ V .

Formulation:

(SPT ) :

z = min∑

(i ,j)∈A

cijxij

k∈δ+(i)

xik −∑

k∈δ−(i)

xki = |V | − 1 for i = s

k∈δ+(i)

xik −∑

k∈δ−(i)

xki = −1 for i ∈ V \ {s}

xij ≥ 0 for (i , j) ∈ A

x ∈ Z|A|

where xij ≥ 0 if (i , j) is an arc of the SPT rooted at s.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 18 / 53

Page 19: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

1 Problem definition

2 Network Flows

3 Dijkstra’s Algorithm

4 A∗

5 Bidirectional Search

6 State Of The Art For Road Networks

7 Exercises

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 19 / 53

Page 20: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Dijkstra’s Algorithm

The Shortest Path Problem can be solved with purely combinatorialalgorithms.

The most famous one: Dijkstra’s algorithm.

Idea: explore nodes, starting from the nearest to the source node s, ina “ball” centered at s.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 20 / 53

Page 21: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Dijkstra’s Algorithm

Let s be the source node, Q be the queue of explored nodes, d [v ] bethe tentative distance of v from s, p[v ] be the tentative parent nodeof v on the shortest s → v path.

Initialize: Q ← ∅, d [v ] ← ∞ ∀v ∈ V \ {s}, p[v ] ← NIL ∀v ∈V \ {s}, d [s] ← 0, p[s] ← s. We say that nodes in Q are explored.

Algorithm:1 Extract i ← arg minv∈Q{d [v ]} (we say that i is settled).2 For each j ∈ δ+(i) : d [i ] + cij < d [j ] set

Q ← Q ∪ {j}, d [j ] ← d [i ] + cij , p[j ] ← i .3 Repeat until a stopping criterion is met.

Commonly used stopping criteria:◮ As soon as a target node t is settled.◮ When Q is empty.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 21 / 53

Page 22: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

t

1

1

3

2

3

6

3

2

4

2

ba

d

fe

cs

2

4

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 22 / 53

Page 23: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

t

1

1

3

2

3

6

3

2

4

2

ba

d

fe

cs

4

2

Priority Queue:

e ← 1

a ← 2

c ← 3

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 23 / 53

Page 24: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

t

1

1

3

2

3

6

3

2

4

2

ba

d

f

cs

4

2e

Priority Queue:

a ← 2

c ← 3

f ← 7

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 24 / 53

Page 25: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

t

1

1

3

2

3

6

3

2

4

2

b

d

f

cs

4

2e

aPriority Queue:

c ← 3

b ← 6

f ← 7

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 25 / 53

Page 26: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

t

1

1

3

2

3

6

3

2

4

2

b

d

f

s

4

2e

a

c

Priority Queue:

b ← 5

f ← 5

d ← 6

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 26 / 53

Page 27: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

t

1

1

3

2

3

6

3

2

4

2

ds

4

2e

a

c

f

bPriority Queue:

f ← 5

d ← 6

t ← 9

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 27 / 53

Page 28: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

t

1

1

3

2

3

6

3

2

4

2

ds

4

2e

a

c

f

b

Priority Queue:

d ← 6

t ← 9

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 28 / 53

Page 29: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

t

1

1

3

2

3

6

3

2

4

2

s

4

2e

a

c

f

b

d

Priority Queue:

t ← 7

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 29 / 53

Page 30: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Example

1

1

3

2

3

6

3

2

4

2

s

4

2e

a

c

f

b

d

t

Priority Queue: ∅

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 30 / 53

Page 31: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

1 Problem definition

2 Network Flows

3 Dijkstra’s Algorithm

4 A∗

5 Bidirectional Search

6 State Of The Art For Road Networks

7 Exercises

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 31 / 53

Page 32: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Goal Directed Search: A∗

Same principle as Dijkstra’s algorithm: extract minimum from aqueue, explore adjacent nodes, update labels, repeat.

Main difference: add to the key of the priority queue a potentialfunction π(v) which estimates d(v , t).

If π(v) ≤ d(v , t) ∀v then A∗ computes shortest paths.

If π(v) is a good estimation of d(v , t), A∗ explores considerably fewernodes than Dijkstra’s algorithm.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 32 / 53

Page 33: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Goal Directed Search: A∗

t

1

1

3

2

3

6

3

2

4

2

ba

d

fe

cs

2

4

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 33 / 53

Page 34: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Goal Directed Search: A∗

t

1

1

3

2

3

6

3

2

4

2

ba

d

fe

cs

4

2

Priority Queue:

e ← 1

a ← 2

c ← 3

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 34 / 53

Page 35: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Goal Directed Search: A∗

t

1

1

3

2

3

6

3

2

4

2

ba

d

fe

cs

4

2

Priority Queue:

e ← 1 + π(e)

a ← 2 + π(a)

c ← 3 + π(c)

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 34 / 53

Page 36: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Goal Directed Search: A∗

t

1

1

3

2

3

6

3

2

4

2

ba

d

fe

cs

4

2

Priority Queue:

c ← 7

e ← 8

a ← 10

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 35 / 53

Page 37: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Goal Directed Search: A∗

t

1

1

3

2

3

6

3

2

4

2

ba

d

fe

sc

4

2

Priority Queue:

d ← 7

e ← 8

f ← 8

b ← 9

a ← 10

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 36 / 53

Page 38: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Goal Directed Search: A∗

t

1

1

3

2

3

6

3

2

4

2

ba

fe

sc d

4

2

Priority Queue:

t ← 7

e ← 8

f ← 8

b ← 9

a ← 10

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 37 / 53

Page 39: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Goal Directed Search: A∗

1

1

3

2

3

6

3

2

4

2

ba

fe

sc d

t

4

2

Priority Queue:

e ← 8

f ← 8

b ← 9

a ← 10

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 38 / 53

Page 40: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Goal Directed Search: A∗

Dijkstra’s algorithm A∗

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 39 / 53

Page 41: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

A Good Lower Bound

The quality of π(v) is critic for performances: the closer to d(v , t),the better.

On an Euclidean plane, we can use the standard Euclidean distance tocompute potentials.

Idea ([Goldberg and Harrelson, 2004]): use a few nodes as landmarksto compute distances within the graph.

Then triangle inequality comes to our help.◮ ALT algorithm: A∗, Landmarks, Triangle inequality.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 40 / 53

Page 42: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

A Good Lower Bound

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 41 / 53

Page 43: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

A Good Lower Bound

Suppose we have a set L ⊂ V of landmarks, i.e. we knowd(v , ℓ), d(ℓ, v) ∀v ∈ V , ℓ ∈ L.

Then we have d(v , ℓ) ≤ d(v , t) + d(t, ℓ) andd(ℓ, t) ≤ d(ℓ, v) + d(v , t) ∀v ∈ V , ℓ ∈ L.

Lower bounding function:

π(v) = maxℓ∈L

max{d(v , ℓ) − d(t, ℓ), d(ℓ, t) − d(ℓ, v)}.

is a lower bound to d(v , t)∀v , t ∈ V .

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 42 / 53

Page 44: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

1 Problem definition

2 Network Flows

3 Dijkstra’s Algorithm

4 A∗

5 Bidirectional Search

6 State Of The Art For Road Networks

7 Exercises

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 43 / 53

Page 45: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Bidirectional Search

Suppose we want to compute a point-to-point shortest path.

Main idea: explore nodes not only from the source, but also fromtarget node, using the reverse graph G = (V , A) where(i , j) ∈ A ⇔ (j , i) ∈ A.

This will reduce the search space.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 44 / 53

Page 46: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Balancing the search

At each iteration, how do we choose between the forward and thebackward search?

Simple idea: alternate between the two searches at each iteration.

This works very well in practice.

Stopping criterion: stop as soon as there is a node v which has beensettled by both searches.

Theorem:

During bidirectional Dijkstra’s algorithm, suppose that v is the first nodethat is settled by both searches. Then the shortest path from s to t passesthrough v .

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 45 / 53

Page 47: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Bidirectional A∗

In principle, we could bidirectionalize the A∗ algorithm, and it shouldstill work.

We can’t use the same stopping criterion! (Try to prove it)

Conservative idea:◮ Keep the value β of the shortest s → t path found so far.◮ This may be updated each time that we obtain a new meeting point.◮ Suppose vf is the minimum element of the forward search queue, and

vb is the minimum element of the backward search queue. Ifβ ≤ d(s, vf ) + d(vb, t) then we can stop the search, and β is optimal.

We have to work on the potentials: we need πf (v) + πb(v) to beconstant ∀v ∈ V .

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 46 / 53

Page 48: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

1 Problem definition

2 Network Flows

3 Dijkstra’s Algorithm

4 A∗

5 Bidirectional Search

6 State Of The Art For Road Networks

7 Exercises

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 47 / 53

Page 49: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Transit Node Routing

We can make the following two observations:◮ The set of nodes such that at least one node appears on any

sufficiently long shortest path (transit nodes) is very small.◮ For any s, t pair, the number of these “important” nodes that are

involved in a shortest path computation (access nodes) is very small.

Using these ideas, we can develop a very efficient algorithm.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 48 / 53

Page 50: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Transit Node Routing

Consider a set T ⊂ V of transit nodes, and an access mappingA : V → 2T that maps a vertex to its access nodes set.

Consider a locality filter L : V × V → {true, false} that decideswhether an s → t query is local or not.

Property:

¬L(s, t) ⇒ d(s, t) = minu∈A(s),v∈A(t)

{d(s, u) + d(u, v) + d(v , t)}.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 49 / 53

Page 51: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Transit Node Routing

Assume we have precomputed d(u, v) : u, v ∈ T .

Algorithm:◮ If ¬L(s, t), compute d(s, t) as

d(s, t) = min{d(s, u) + d(u, v) + d(v , t)|u ∈ A(s), v ∈ A(t)}.

◮ Otherwise, use any other shortest paths algorithm.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 50 / 53

Page 52: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Transit Node Routing

A very efficient implementation [Sanders and Schultes, 2007] has beenpresented at the 9th DIMACS Computational Challenge (late 2006).

It is based on the Highways Hierarchies algorithm [Sanders andSchultes, 2005].

Average query times for the european road network: 5.6microseconds, no more than a few hundreds microseconds in theworst case.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 51 / 53

Page 53: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

1 Problem definition

2 Network Flows

3 Dijkstra’s Algorithm

4 A∗

5 Bidirectional Search

6 State Of The Art For Road Networks

7 Exercises

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 52 / 53

Page 54: Shortest Paths Algorithms - École Polytechniqueliberti/teaching/...(SP) is an integer program Should be very difficult to solve, but we know that it is very easy in ... Proof: From

Exercises: AMPL

b

a

c

d e

f

3

4

5

21

3

23

1

Write model and data file for the SP problem for this network, withsource node: a and target node: f (use CPLEX: option solver

cplex;).

Write a run file that uses the model and data file to compute anddisplay the shortest path for each node pair in the network.

Modify those files to compute the SP tree rooted at each node.

Giacomo Nannicini (LIX) Shortest Paths Algorithms 15/11/2007 53 / 53