the shortest path problemthe shortest path problemananth/cpts223/lectures/shortest… ·  ·...

24
The Shortest Path Problem The Shortest Path Problem 1 Cpt S 223. School of EECS, WSU

Upload: trinhtram

Post on 24-Mar-2018

237 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

The Shortest Path ProblemThe Shortest Path Problem

111111Cpt S 223. School of EECS, WSU

Page 2: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Shortest-Path Algorithms Find the “shortest” path

from point A to point B “Shortest” in time,

distance, cost, … Numerous applications Numerous applications

Map navigation Flight itineraries Circuit wiring Network routing

22222Cpt S 223. School of EECS, WSU

Page 3: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Shortest Path Problems

Weighted graphs: Input is a weighted graph where each edge (vi,vj) p g g p g ( i, j)

has cost ci,j to traverse the edge Cost of a path v1v2…vN is

1

11,

N

iiic

Goal: to find a smallest cost path

Unweighted graphs: Input is an unweighted graph

i.e., all edges are of equal weightGoal: to find a path with smallest number of hops 3Cpt S 223. School of EECS, WSU

Page 4: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Shortest Path Problems

Single-source shortest path problem Given a weighted graph G=(V,E), and a Given a weighted graph G (V,E), and a

source vertex s, find the minimum weighted path from s to every other vertex in G

Weighted:Some algorithms:

s: source

Dijkstra’s algo

Unweighted:Simple BFS

4

Simple BFS

Cpt S 223. School of EECS, WSU

Page 5: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Point to Point SP problem

Given G(V,E) and two vertices A and B, find a shortest path from A (source) to p ( )B (destination).

Solution:1) Run the code for Single Source1) Run the code for Single Source Shortest Path using source as A.2) Stop algorithm when B is reached.2) Stop algorithm when B is reached.

5Cpt S 223. School of EECS, WSU

Page 6: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

All Pairs Shortest Path ProblemGiven G(V,E), find a shortest path between all

pairs of vertices.

Solutions:(brute-force)(brute force)

Solve Single Source Shortest Path for each vertex as source

There are more efficient ways of solving this problem (e.g., Floyd-Warshall algo).problem (e.g., Floyd Warshall algo).

6Cpt S 223. School of EECS, WSU

Page 7: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Negative Weights Graphs can have negative

weights E.g., arbitrage

Shortest positive-weight path is a net gain

Path may include individual losses

Problem: Negative weight cyclesAllow arbitrarily low path costs Allow arbitrarily-low path costs

Solution Detect presence of negative-weight p g g

cycles

7Cpt S 223. School of EECS, WSU

Page 8: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Unweighted Shortest Paths

No weights on edges Find shortest length paths Find shortest length paths Same as weighted shortest path with all

weights equalweights equal Breadth-first search 1 2

source0 2 3

O(|E| + |V|)

81 3

O(|E| + |V|)

Cpt S 223. School of EECS, WSU

Page 9: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Unweighted Shortest Paths

For each vertex, keep track of Whether we have visited it (known) Whether we have visited it (known) Its distance from the start vertex (dv) Its predecessor vertex along the shortest Its predecessor vertex along the shortest

path from the start vertex (pv)

9Cpt S 223. School of EECS, WSU

Page 10: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Unweighted Shortest PathsSolution 1: Repeatedly iterate through vertices, looking for unvisited vertices at current distance from start vertex s.

Running time: O(|V|2)

10Cpt S 223. School of EECS, WSU

Page 11: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Unweighted Shortest Paths

Solution: Ignore vertices that have already been visited by keeping only y y p g yunvisited vertices (distance = ∞) on the queue.

R i ti O(|E|+|V|)Running time: O(|E|+|V|)

source

11Queue: v3 v1, v6 v2, v4 v7, v5Cpt S 223. School of EECS, WSU

Page 12: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Unweighted Shortest Paths

12Cpt S 223. School of EECS, WSU

Page 13: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Weighted Shortest Paths Dijkstra’s algorithm

GREEDY strategy: Always pick the next closest vertex to the source

Use priority queue to store unvisited vertices by distance from sdistance from s

After deleteMin v, update distances of remaining vertices adjacent to v using decreaseKey

Does not work with negative weights

13Cpt S 223. School of EECS, WSU

Page 14: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Dijkstra’s Algorithm

14Cpt S 223. School of EECS, WSU

Page 15: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

source

Dijkstra

15Cpt S 223. School of EECS, WSU

Page 16: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

BuildHeap: O(|V|)

DeleteMin: O(|V| log |V|)

DecreaseKey: O(|E| log |V|)

16Total running time: O(|E| log |V|)

Cpt S 223. School of EECS, WSU

Page 17: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Why Dijkstra Works

Hypothesis A least-cost path from X to Y contains

This is called the “Optimal Substructure” property

A least cost path from X to Y contains least-cost paths from X to every city on the path to Y

E.g., if XC1C2C3Y is the least-cost path from X to Y, then XC1C2C3 is the least-cost path from X to C3 XC1C2 is the least-cost path from X to C2 XC1 is the least-cost path from X to C1

A B20

10100100

XC1 is the least cost path from X to C1

17

D C10

100

Cpt S 223. School of EECS, WSU

Page 18: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Why Dijkstra WorksX C

Y PROOF BY CONTRADICTION: Assume hypothesis is false

YP’

I.e., Given a least-cost path P from X to Y that goes through C, there is a better path P’ from X to C than the one in P

Show a contradictionS o a co t ad ct o But we could replace the subpath from X to C in P with this

lesser-cost path P’ The path cost from C to Y is the same The path cost from C to Y is the same Thus we now have a better path from X to Y But this violates the assumption that P is the least-cost path

from X to Yfrom X to Y

Therefore, the original hypothesis must be true18Cpt S 223. School of EECS, WSU

Page 19: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Printing Shortest Paths

19Cpt S 223. School of EECS, WSU

Page 20: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

What about graphs with negative edges?

Will the O(|E| log|V|) Dijkstra’s algorithm work as is?algorithm work as is?

deleteMin Updates to dist

V V di t 3

v1

v2321

sourceV1 V2.dist = 3

V2 V4.dist = 4, V3.dist = 5

V4 No change

V No change and so v dist will

-10v4 v3V3 No change and so v4. dist will

remain 4.Correct answer: v4.dist should be updated to -5Solution:

Do not mark any vertex as “known”. Instead allow multiple updates.

20Cpt S 223. School of EECS, WSU

Page 21: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Negative Edge CostsRunning time: O(|E|·|V|)

v3source

v1

v4

v2

v3

321

-10

V1

Queue

V2.dist = 3V1

Updates to distDequeue

V3

V4, V3

V2

V4.dist = -5V3

V4.dist = 4, V3.dist = 5 V2

No updatesV4

21

No updatesV4V4

Cpt S 223. School of EECS, WSU

Page 22: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Negative Edge Costs

Running time: O(|E|·|V|)

Negative weight cycles?g g y

2222Cpt S 223. School of EECS, WSU

Page 23: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

Shortest Path Problems Unweighted shortest-path problem: O(|E|+|V|) Weighted shortest-path problem

No negative edges: O(|E| log |V|) Negative edges: O(|E|·|V|)

Acyclic graphs: O(|E|+|V|) Acyclic graphs: O(|E|+|V|) No asymptotically faster algorithm for single-

source/single-destination shortest path problem

2323Cpt S 223. School of EECS, WSU

Page 24: The Shortest Path ProblemThe Shortest Path Problemananth/CptS223/Lectures/shortest… ·  · 2011-08-18The Shortest Path ProblemThe Shortest Path Problem Cpt S 223. School of EECS,

C E l ti Sit iCourse Evaluation Site in now Open!Open!

http://skylight wsu edu/s/053eadf6-6157-44ce-http://skylight.wsu.edu/s/053eadf6-6157-44ce-92ad-cbc26bde3b53.srv

24Cpt S 223. School of EECS, WSU