1 / 74

Introduction to Algorithms

Introduction to Algorithms. Jiafen Liu. Sept. 2013. Today’s Tasks. Shortest Paths Properties of shortest paths Dijkstra’s algorithm Correctness Analysis Breadth-first search. Paths in graphs.

Télécharger la présentation

Introduction to Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Algorithms Jiafen Liu Sept. 2013

  2. Today’s Tasks • Shortest Paths • Properties of shortest paths • Dijkstra’s algorithm • Correctness • Analysis • Breadth-first search

  3. Paths in graphs • Consider a digraph G= (V, E) with edge-weight function w: E→R. The weight of path p = v1→v2→…→vk is defined to be • Example: w(p)=?

  4. Shortest paths • A shortest path from u to v is a path of minimum weight from u to v. • The shortest path weight from u to v is defined as δ(u, v) = min{w(p): p is a path from u to v}. • In what case there is no shortest path? • Note: δ(u, v) = ∞ if no path from u to v exists. • There is a negative cycle. • In other cases, usually a finite set.

  5. Well-definedness of shortest paths • If a graph G contains a negative-weight cycle, then some shortest paths may not exist. • Example:

  6. Thought of solving • Dynamic Programming • Greedy Algorithms • Characteristics: • Optimal Substructure • Overlapping Subproblems • Greedy choice property

  7. Optimal substructure • What is the optimal substructure for this problem? • Theorem. A subpath of a shortest path is a shortest path. • How to prove? • Cut and paste

  8. What’s the subproblems? • Shortest path going from u to v, maybe involves computing shortest path from u to some intermediate point x, and then from x to v. • Different choosing of x1,x2…xn consists overlapping subproblems. • How many subproblems are there? • |v|2

  9. Triangle inequality • Important for us to make greedy choice • Theorem: For all u, v, x∈V, we have • Figure Illustration:

  10. Single-source shortest paths • Problem. From a given source vertex s∈V, find the shortest-path weights δ(s, v) for all v∈V. • If all edge weights w(u, v) are nonnegative, all shortest-path weights must exist. • IDEA: Greedy. 1.Maintain a set S of vertices whose shortest-path distances from s are known. (s∈S) 2.At each step add the vertex v∈V–S whose distance estimate from s is minimal to S . 3.Update the distance estimates of vertices adjacent to v.

  11. Dijkstra’s algorithm

  12. Example

  13. Example

  14. Example

  15. Example

  16. Example

  17. Example

  18. Example

  19. Example

  20. Example

  21. Example

  22. Example

  23. Correctness —Part I • Lemma. Initializing d[s]←0 and d[v]←∞ for all v∈V–{s} establishes d[v] ≥ δ(s,v) for all v∈V, and this invariant is maintained over any sequence of relaxation steps. • Any suggestions about how to prove? • Induction • Proof. • Base case: check the initializing term • Induction: suppose that this fails to hold at some point.

  24. Correctness —Part I • Suppose not. Let v be the first vertex for which d[v] < δ(s, v), and let u be the vertex that caused d[v] to change: d[v] = d[u] + w(u, v). Then how to induct a contradition? d[v]< δ(s, v) ≤ δ(s, u) + δ(u, v) ≤ δ(s,u) + w(u, v) d[v] = d[u] + w(u, v) • Contradiction. supposition triangle inequality sh. path ≤ specific path v is first violation

  25. Correctness —Part II • Lemma. Let u be v’s predecessor on a shortest path from s to v: s→…u→v. if d[u]=δ(s, u) and if we relax edge(u, v), Then, we have d[v] = δ(s, v) after the relaxation. • Proof. • s→…u→v is the shortest path from s to v, so δ(s, v) = w(s→… →u)+ w(u, v) = δ(s, u)+ w(u, v).

  26. Correctness —Part II • Suppose that d[v] > δ(s, v) before the relaxation. • By Correctness I, d[v] ≥ δ(s,v) • Otherwise d[v] = δ(s,v) , we’re done. • Then test d[v] > d[u] + w(u, v) succeeds • because d[v] > δ(s, v) = δ(s, u)+ w(u, v) = d[u] + w(u, v) • Then the algorithm sets d[v] = d[u]+ w(u,v) = δ(s, v).

  27. Correctness —Part III • Theorem. Dijkstra’s algorithm terminates with d[v] = δ(s, v) for all v∈V. • Something to be addressed: • Once we add a vertex to S, we never change its weight • Proof. • It suffices to show that d[v] = δ(s, v) for every v∈V when v is added to S.

  28. Correctness —Part III • Suppose for contradiction: Suppose u is the first vertex added to S for which d[u] ≠ δ(s, u). • d[u] > δ(s, u). • Let p be a shortest path from s to u. • Now look at the first place here where the path p exits S

  29. Correctness —Part III • Let y be the first vertex in V–S along a shortest path from s to u, and let x be its predecessor. • Since u is the first vertex violating the claimed invariant, we have d[x] = δ(s, x) .

  30. Correctness —Part III • When x was added to S, the edge (x, y) was relaxed, which implies that d[y] = δ(s, y) ≤ δ(s, u) < d[u] • But, d[u] ≤ d[y] by our choice of u. Contradiction.

  31. Analysis of Dijkstra

  32. Analysis of Dijkstra • Note: Same formula as in the analysis of Prim’s minimum spanning tree algorithm.

  33. Unweighted graphs • Suppose that w(u, v) =1 for all (u, v) ∈E . Can Dijkstra’s algorithm be improved? • Use a simple FIFO queue instead of a priority queue. • Analysis: Time = O(V+ E).

  34. Example

  35. Example

  36. Example

  37. Example

  38. Example

  39. Example

  40. Example

  41. Example

  42. Example

  43. Example

  44. Example

  45. Example

  46. Correctness of BFS • IDEA: The FIFO Q in breadth-first search mimics the priority queue Q in Dijkstra. • Invariant: v comes after u in Q implies that d[v] = d[u] or d[v] = d[u] + 1.

  47. Step Further I

  48. Bellman-Ford algorithm

  49. Example of Bellman-Ford

  50. Example of Bellman-Ford

More Related