Loading...

PPT – SINGLE-SOURCE SHORTEST PATHS PowerPoint presentation | free to download - id: 670605-YTNmZ

The Adobe Flash plugin is needed to view this content

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.

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 (Contd)

- 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

No need to consider different solution or

algorithm for each variant (we reduce it into

two types)

- 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.

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

Shortest Path

- Shortest Path Path of minimum weight
- d(u,v)

p

min?(p) u v if there is a path from u

to v, ? otherwise.

Several Properties

1- Optimal Substructure Property

- Theorem Subpaths of shortest paths are also

shortest paths - Let d(1,k) ltv1, ..i, .. j.., .. ,vk gt be a

shortest path from v1 to vk - Let d(i,j) ltvi, ... ,vj gt be subpath of d(1,k)

from vi to vj - for any i, j
- Then d(I,j) is a shortest path from vi to vj

1- Optimal Substructure Property

- 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

v5

v7

v1

v4

v6

v3

v0

v2

2- No Cycles in Shortest Path

- Definition
- d(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

cycle lt 0

s

v

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) in E, - d(s,v) d(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)

u

v

s

Algorithms to Cover

- Dijkstras Algorithm
- Shortest Path is DAGs

Initialization

- Maintain dv for each v in V
- dv is called shortest-path weight estimate
- and it is upper bound on d(s,v)

INIT(G, s) for each v ? V do dv ?

8 pv ? NIL ds ? 0

Upper bound

Parent node

Relaxation

RELAX(u, v) if dv gt duw(u,v)

then dv ? duw(u,v)

pv ? u

When you find an edge (u,v) then check this

condition and relax dv if possible

u

v

u

v

2

2

5

5

9

6

Change dv

No chnage

5

7

5

6

2

2

v

u

v

u

Algorithms to Cover

- Dijkstras Algorithm
- Shortest Path is DAGs

Dijkstras Algorithm For Shortest Paths

- 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 dv values

Dijkstras Algorithm For Shortest Paths

- DIJKSTRA(G, s)
- INIT(G, s)
- S?Ø gt set of discovered nodes
- Q?VG
- while Q ?Ø do
- u?EXTRACT-MIN(Q)
- S?S U u
- for each v in Adju do
- RELAX(u, v) gt May cause
- gt DECREASE-KEY(Q, v, dv)

Example Initialization Step

Example

3

Example

2

Example

2

Example

10

Example

Example

u

5

Dijkstras 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

- Dijkstras 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 gt 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 Adju do
- RELAX(u, v)

Example

6

1

u

r

t

s

v

w

5

2

7

2

1

?

0

?

?

?

?

4

3

2

Example

6

1

u

r

t

s

v

w

5

2

7

2

1

?

0

?

?

?

?

4

3

2

Example

6

1

u

r

t

s

v

w

5

2

7

2

1

?

0

2

6

?

?

4

3

2

Example

6

1

u

r

t

s

v

w

5

2

7

2

1

?

0

2

6

6

4

4

3

2

Example

6

1

u

r

t

s

v

w

5

2

7

2

1

?

0

2

6

5

4

4

3

2

Example

6

1

u

r

t

s

v

w

5

2

7

2

1

?

0

2

6

5

3

4

3

2

Example

6

1

u

r

t

s

v

w

5

2

7

2

1

?

0

2

6

5

3

4

3

2

Single-Source Shortest Paths in DAGs Analysis

O(VE)

- 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 Adju do
- RELAX(u, v)

O(V)

Total O(E)

Time Complexity O (V E)