Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 20: Shortest Paths Shang-Hua Teng. Weighted Directed Graphs Weight on edges for distance 400 2500 1000 1800 800 900.

Similar presentations


Presentation on theme: "Lecture 20: Shortest Paths Shang-Hua Teng. Weighted Directed Graphs Weight on edges for distance 400 2500 1000 1800 800 900."— Presentation transcript:

1 Lecture 20: Shortest Paths Shang-Hua Teng

2 Weighted Directed Graphs Weight on edges for distance 400 2500 1000 1800 800 900

3 Shortest Paths Given a weighted, directed graph G=(V, E) with weight function w: E  R. The weight of path p= is the sum of the weights of its edges: We define the shortest-path weight from u to v by A shortest path from vertex u to vertex v is any path with w(p)=  (u, v) If there is a path from u to v, Otherwise.

4 Variants of Shortest Path Problem Single-source shortest paths problem –Finds all the shortest path of vertices reachable from a single source vertex s Single-destination shortest-path problem –By reversing the direction of each edge in the graph, we can reduce this problem to a single-source problem Single-pair shortest-path problem –No algorithm for this problem are known that run asymptotically faster than the best single-source algorithm in the worst case All-pairs shortest-path problem

5 Relaxation For each vertex v  V, we maintain an attribute d[v], which is an upper bound on the weight of a shortest path from source s to v. We call d[v] a shortest-path estimate. Possible Predecessor of v in the shortest path

6 Relaxation Relaxing an edge (u, v) consists of testing whether we can improve the shortest path found so far by going through u and, if so, update d[v] and  [v] By Triangle Inequality

7 Dijkstra’s Algorithm

8 Coping with Negative Weights Deciding whether there is a negative circle If the graph does not have a negative circle reachable from the source s, for the shortest path tree.

9 Bellman-Ford Algorithm BellmanFord() for each v  V d[v] =  ; d[s] = 0; for i=1 to |V|-1 for each edge (u,v)  E Relax(u,v, w(u,v)); for each edge (u,v)  E if (d[v] > d[u] + w(u,v)) return “no solution”; Relax(u,v,w): if (d[v] > d[u]+w) then d[v]=d[u]+w Initialize d[], which will converge to shortest-path value  Relaxation: Make |V|-1 passes, relaxing each edge Test for solution Under what condition do we get a solution?

10 Bellman-Ford Algorithm BellmanFord() for each v  V d[v] =  ; d[s] = 0; for i=1 to |V|-1 for each edge (u,v)  E Relax(u,v, w(u,v)); for each edge (u,v)  E if (d[v] > d[u] + w(u,v)) return “no solution”; Relax(u,v,w): if (d[v] > d[u]+w) then d[v]=d[u]+w What will be the running time?

11 Bellman-Ford Algorithm BellmanFord() for each v  V d[v] =  ; d[s] = 0; for i=1 to |V|-1 for each edge (u,v)  E Relax(u,v, w(u,v)); for each edge (u,v)  E if (d[v] > d[u] + w(u,v)) return “no solution”; Relax(u,v,w): if (d[v] > d[u]+w) then d[v]=d[u]+w What will be the running time? A: O(VE)

12 Bellman-Ford Algorithm BellmanFord() for each v  V d[v] =  ; d[s] = 0; for i=1 to |V|-1 for each edge (u,v)  E Relax(u,v, w(u,v)); for each edge (u,v)  E if (d[v] > d[u] + w(u,v)) return “no solution”; Relax(u,v,w): if (d[v] > d[u]+w) then d[v]=d[u]+w B E DC A 2 2 1 -3 5 3 4 Ex: work on board s

13 Bellman-Ford Note that order in which edges are processed affects how quickly it converges Correctness: show d[v] =  (s,v) after |V|-1 passes –Lemma: d[v]   (s,v) always Initially true Let v be first vertex for which d[v] <  (s,v) Let u be the vertex that caused d[v] to change: d[v] = d[u] + w(u,v) Then d[v]<  (s,v)  (s,v)   (s,u) + w(u,v)(Why?)  (s,u) + w(u,v)  d[u] + w(u,v)(Why?) So d[v] < d[u] + w(u,v). Contradiction.

14 Bellman-Ford Prove: after |V|-1 passes, all d values correct –Consider shortest path from s to v: s  v 1  v 2  v 3  v 4  v Initially, d[s] = 0 is correct, and doesn’t change (Why?) After 1 pass through edges, d[v 1 ] is correct (Why?) and doesn’t change After 2 passes, d[v 2 ] is correct and doesn’t change … Terminates in |V| - 1 passes: (Why?) What if it doesn’t?

15 Properties of Shortest Paths Triangle inequality –For any edge (u,v) in E,  (s,v) <=  (s,u) + w(u,v) Upper bound property –d[v] >=  (s,v) Monotonic property –d[v] never increase No-path property –If v is not reachable then d[v] =  (s,v) = infty

16 Properties of Shortest Paths Convergence property –If (u,v) is on the shortest path from s to v and if d[u] =  (s,u) at any time prior to relaxing (u,v), then d[v] =  (s,v) at all time afterward Path-relaxation property –If p= is the shortest path from s to v k and edges of p are relaxed in order in the index, then d[v k ] =  (s, v k ). This property holds regardless of any other relaxation steps that occur, even if they are intermixed with relaxations of the edges of p

17 Properties of Shortest Paths Predecessor-subgraph property –Once d[v] =  (s,v), the predecessor subgraph is a shortest-paths tree rooted at s

18 Matrix Basic Vector: array of numbers; unit vector Inner product, outer product, norm Matrix: rectangular table of numbers, square matrix; Matrix transpose All zero matrix and all one matrix Identity matrix 0-1 matrix, Boolean matrix, matrix of graphs

19 Matrix Operations Matrix-vector operation –System of linear equations –Eigenvalues and Eigenvectors Matrix matrix operations

20 1. Matrix Addition:

21 2. Scalar Multiplication:

22 3. Matrix Multiplication


Download ppt "Lecture 20: Shortest Paths Shang-Hua Teng. Weighted Directed Graphs Weight on edges for distance 400 2500 1000 1800 800 900."

Similar presentations


Ads by Google