SINGLE-SOURCE SHORTEST PATHS. Shortest Path Problems Directed weighted graph. Path length is sum of...

Preview:

Citation preview

SINGLE-SOURCE SHORTEST PATHS

Shortest Path Problems• Directed weighted graph.

• Path length is sum of weights of edges on path.

• The vertex at which the path begins is the source vertex.

• The vertex at which the path ends is the destination vertex.

0

3 9

5 11

3

6

57

6

s

t x

y z

22 1

4

3

Example

• Consider Source node 1 and destination node 7• A direct path between Nodes 1 and 7 will cost 14

Example

• A shorter path will cost only 11

Shortest-Path Variants

• Single-source single-destination (1-1): Find the shortest path from source s to destination v.

• Single-source all-destination(1-Many): Find the shortest path from s to each vertex v.

• Single-destination shortest-paths (Many-1): Find a shortest path to a given destination vertex t from each vertex v.

• All-pairs shortest-paths problem (Many-Many): Find a shortest path from u to v for every pair of vertices u and v.

We talk about directed, weighted graphs

Shortest-Path Variants (Cont’d)

• For un-weighted graphs, the shortest path problem is mapped to BFS– Since all weights are the same, we search for the smallest number of edges

BFS creates a tree called BFS-Tree

Shortest-Path Variants

• Single-source single-destination (1-1): Find the shortest path from source s to destination v.

• Single-source all-destination(1-Many): Find the shortest path from s to each vertex v.

• Single-destination shortest-paths (Many-1): Find a shortest path to a given destination vertex t from each vertex v.

• All-pairs shortest-paths problem (Many-Many): Find a shortest path from u to v for every pair of vertices u and v.

No need to consider different solution or algorithm for each variant

(we reduce it into two types)

Shortest-Path Variants

Single-Source Single-Destination (1-1)

-No good solution that beats 1-M variant -Thus, this problem is mapped to the 1-M variant

Single-Source All-Destination (1-M)

-Need to be solved (several algorithms)-We will study this one

All-Sources Single-Destination (M-1)

-Reverse all edges in the graph -Thus, it is mapped to the (1-M) variant

All-Sources All-Destinations (M-M)

-Need to be solved (several algorithms)-We will study it (if time permits)

Shortest-Path Variants

Single-Source Single-Destination (1-1)

-No good solution that beats 1-M variant -Thus, this problem is mapped to the 1-M variant

Single-Source All-Destination (1-M)

-Need to be solved (several algorithms)-We will study this one

All-Sources Single-Destination (M-1)

-Reverse all edges in the graph -Thus, it is mapped to the (1-M) variant

All-Sources All-Destinations (M-M)

-Need to be solved (several algorithms)-We will study it (if time permits)

Introduction

Generalization of BFS to handle weighted graphs

• Direct Graph G = ( V, E ), edge weight fn ; w : E → R

• In BFS w(e)=1 for all e E

Weight of path p = v1 v2 … vk is

1

11

( ) ( , )k

i ii

w p w v v

Shortest Path

Shortest Path = Path of minimum weight

δ(u,v)=

min{ω(p) : u v}; if there is a path from u to v,

otherwise.

p

Several Properties

1- Optimal Substructure Property

Theorem: Subpaths of shortest paths are also shortest paths

• Let δ(1,k) = <vv11, ..i, .. j.., .. ,, ..i, .. j.., .. ,vvkk > be a shortest path from vv11 to vvkk

• Let δ(i,j) = <vvii, ... ,, ... ,vvjj > be subpath of δ(1,k) from vvii to vvjj

for any i, j • Then δ(I,j) is a shortest path from vvii to vvjj

Proof: By cut and paste

• If some subpath were not a shortest path

• We could substitute a shorter subpath to create a shorter total path

• Hence, the original path would not be shortest path

vv22 vv33 vv44vv55 vv66 vv77

1- Optimal Substructure Property

vv11vv00

Definition:

• δ(u,v) = weight of the shortest path(s) from u to v

• Negative-weight cycle: The problem is undefined– can always get a shorter path by going around the cycle again

• Positive-weight cycle : can be taken out and reduces the cost

s v

cycle< 0

2- No Cycles in Shortest Path

3- Negative-weight edges

• No problem, as long as no negative-weight cycles are reachable from the source (allowed)

4- Triangle Inequality

Lemma 1: for a given vertex s in V and for every edge (u,v) E,

• δ(s,v) ≤ δ(s,u) + w(u,v)

Proof: shortest path s v is no longer than any other path.

• in particular the path that takes the shortest path s v and

then takes cycle (u,v)

s

u v

Algorithms to Cover

• Dijkstra’s Algorithm

• Shortest Path is DAGs

Initialization

• Maintain d[v] for each v in V • d[v] is called shortest-path weight estimate

and it is upper bound on δ(s,v)

INIT(G, s)

for each v V do

d[v] ← ∞

π[v] ← NIL

d[s] ← 0

Parent node

Upper bound

Relaxation

RELAX(u, v)

if d[v] > d[u]+w(u,v) then

d[v] ← d[u]+w(u,v)

π[v] ← u

u v

vu

2

2

Change d[v]

u v

vu

2

2

When you find an edge (u,v) then check this condition and relax d[v] if possible

No chnage

Algorithms to Cover

• Dijkstra’s Algorithm

• Shortest Path is DAGs

• Non-negative edge weight

• Like BFS: If all edge weights are equal, then use BFS, otherwise use this algorithm

• Use Q = min-priority queue keyed on d[v] values

Dijkstra’s Algorithm For Shortest Paths

DIJKSTRA(G, s) INIT(G, s)

S←Ø > set of discovered nodes Q←V[G]

while Q ≠Ø do u←EXTRACT-MIN(Q)

S←S U {u} for each v in Adj[u] do

RELAX(u, v) > May cause> DECREASE-KEY(Q, v,

d[v])

Dijkstra’s Algorithm For Shortest Paths

Example: Initialization Step

Example

3

s

u v

yx

10

5

1

2 94 6

7

2

Example

2

s

u v

yx

10

5

1

39

4 6

7

2

Example

2

s

yx

10

5

1

3 94 6

7

2

u v

Example

10

s

u v

yx

5

1

2 3 94 6

7

2

Example

u v

yx

10

5

1

2 3 94 6

7

2

s

Exampleu

5

v

yx

10

1

2 3 94 6

7

2

s

Dijkstra’s Algorithm Analysis

O(V)

O(V Log V)

Total in the loop: O(V Log V)

Total in the loop: O(E Log V)

Time Complexity: O (E Log V)

Algorithms to Cover

• Dijkstra’s Algorithm

• Shortest Path is DAGs

Key Property in DAGs

• If there are no cycles it is called a DAG

• In DAGs, nodes can be sorted in a linear order such that all edges are forward edges– Topological sort

Single-Source Shortest Paths in DAGs

• Shortest paths are always well-defined in dags no cycles => no negative-weight cycles even if

there are negative-weight edges

• Idea: If we were lucky To process vertices on each shortest path from left

to right, we would be done in 1 pass

Single-Source Shortest Paths in DAGs

DAG-SHORTEST PATHS(G, s) TOPOLOGICALLY-SORT the vertices of G INIT(G, s) for each vertex u taken in topologically sorted order do for each v in Adj[u] do

RELAX(u, v)

Example

0 r s t u v w

5 2 7 –1 –2

6 1

32

4

Example

0 r s t u v w

5 2 7 –1 –2

6 1

32

4

Example

0 2 6 r s t u v w

5 2 7 –1 –2

6 1

32

4

Example

0 2 6 6 4

r s t u v w5 2 7 –1 –2

6 1

32

4

Example

0 2 6 5 4

r s t u v w5 2 7 –1 –2

6 1

32

4

Example

0 2 6 5 3

r s t u v w5 2 7 –1 –2

6 1

32

4

Example

0 2 6 5 3

r s t u v w5 2 7 –1 –2

6 1

32

4

Single-Source Shortest Paths in DAGs: Analysis

DAG-SHORTEST PATHS(G, s) TOPOLOGICALLY-SORT the vertices of G INIT(G, s) for each vertex u taken in topologically sorted order do for each v in Adj[u] do

RELAX(u, v)

O(V+E)

O(V)

Total O(E)

Time Complexity: O (V + E)

Recommended