Algorithms and Networks

Slides:



Advertisements
Similar presentations
Single Source Shortest Paths
Advertisements

October 31, Algorithms and Data Structures Lecture XIII Simonas Šaltenis Nykredit Center for Database Research Aalborg University
CS138A Single Source Shortest Paths Peter Schröder.
Shortest-paths. p2. Shortest-paths problems : G=(V,E) : weighted, directed graph w : E  R : weight function P=
1 Shortest Paths Algorithms and Networks 2014/2015 Hans L. Bodlaender Johan M. M. van Rooij.
Graph Traversals Visit vertices of a graph G to determine some property: Is G connected? Is there a path from vertex a to vertex b? Does G have a cycle?
Introduction To Algorithms CS 445 Discussion Session 8 Instructor: Dr Alon Efrat TA : Pooja Vaswani 04/04/2005.
1 Maximum Flow w s v u t z 3/33/3 1/91/9 1/11/1 3/33/3 4/74/7 4/64/6 3/53/5 1/11/1 3/53/5 2/22/2 
Lectures on Network Flows
Chapter 23 Minimum Spanning Trees
CS420 lecture twelve Shortest Paths wim bohm cs csu.
Lecture 19: Shortest Paths Shang-Hua Teng. Weighted Directed Graphs Weight on edges for distance
Jim Anderson Comp 122, Fall 2003 Single-source SPs - 1 Chapter 24: Single-Source Shortest Paths Given: A single source vertex in a weighted, directed graph.
Shortest Path Problems
CSE 421 Algorithms Richard Anderson Dijkstra’s algorithm.
Shortest Paths Definitions Single Source Algorithms –Bellman Ford –DAG shortest path algorithm –Dijkstra All Pairs Algorithms –Using Single Source Algorithms.
1 8-ShortestPaths Shortest Paths in a Graph Fundamental Algorithms.
Shortest Paths Definitions Single Source Algorithms
CSE 780 Algorithms Advanced Algorithms SSSP Dijkstra’s algorithm SSSP in DAGs.
1 Graph Algorithms Single source shortest paths problem Dana Shapira.
Tirgul 13. Unweighted Graphs Wishful Thinking – you decide to go to work on your sun-tan in ‘ Hatzuk ’ beach in Tel-Aviv. Therefore, you take your swimming.
1 Maximum flow: The preflow/push method of Goldberg and Tarjan (87)
All-Pairs Shortest Paths
Maximum flow Algorithms and Networks. A&N: Maximum flow2 Today Maximum flow problem Variants Applications Briefly: Ford-Fulkerson; min cut max flow theorem.
1 Shortest Path Algorithms. 2 Routing Algorithms Shortest path routing What is a shortest path? –Minimum number of hops? –Minimum distance? There is a.
CS 473 All Pairs Shortest Paths1 CS473 – Algorithms I All Pairs Shortest Paths.
Theory of Computing Lecture 7 MAS 714 Hartmut Klauck.
Graphs – Shortest Path (Weighted Graph) ORD DFW SFO LAX
1 GRAPHS - ADVANCED APPLICATIONS Minimim Spanning Trees Shortest Path Transitive Closure.
COSC 3101NJ. Elder Assignment 2 Remarking Assignment 2 Marks y = 0.995x R 2 = Old Mark New Mark.
Jim Anderson Comp 122, Fall 2003 Single-source SPs - 1 Chapter 24: Single-Source Shortest Paths Given: A single source vertex in a weighted, directed graph.
5/27/03CSE Shortest Paths CSE Algorithms Shortest Paths Problems.
Graph Algorithms Shortest path problems. Graph Algorithms Shortest path problems.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Data Structures Week 9 Towards Weighted BFS So, far we have measured d s (v) in terms of number of edges in the path from s to v. Equivalent to assuming.
MST Many of the slides are from Prof. Plaisted’s resources at University of North Carolina at Chapel Hill.
UNC Chapel Hill Lin/Foskey/Manocha Minimum Spanning Trees Problem: Connect a set of nodes by a network of minimal total length Some applications: –Communication.
9/10/10 A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne Adam Smith Algorithm Design and Analysis L ECTURE 7 Greedy Graph.
Chapter 24: Single-Source Shortest Paths Given: A single source vertex in a weighted, directed graph. Want to compute a shortest path for each possible.
Minimum weight spanning trees
Introduction to Algorithms Jiafen Liu Sept
The single-source shortest path problem (SSSP) input: a graph G = (V, E) with edge weights, and a specific source node s. goal: find a minimum weight (shortest)
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
1 Shortest Paths Algorithms and Networks 2015/2016 Hans L. Bodlaender Johan M. M. van Rooij.
1 Prim’s algorithm. 2 Minimum Spanning Tree Given a weighted undirected graph G, find a tree T that spans all the vertices of G and minimizes the sum.
Lecture 13 Algorithm Analysis
Greedy Algorithms Z. GuoUNC Chapel Hill CLRS CH. 16, 23, & 24.
15.082J & 6.855J & ESD.78J September 30, 2010 The Label Correcting Algorithm.
Theory of Computing Lecture 12 MAS 714 Hartmut Klauck.
Single Source Shortest Paths Chapter 24 CSc 4520/6520 Fall 2013 Slides adapted from George Bebis, University of Reno, Nevada.
Single-Source Shortest Paths (25/24) HW: 25-2 and 25-3 p. 546/24-2 and 24-3 p.615 Given a graph G=(V,E) and w: E   weight of is w(p) =  w(v[i],v[i+1])
TIRGUL 10 Dijkstra’s algorithm Bellman-Ford Algorithm 1.
CSC317 1 At the same time: Breadth-first search tree: If node v is discovered after u then edge uv is added to the tree. We say that u is a predecessor.
Shortest Paths and Minimum Spanning Trees
Algorithms and Networks Hans Bodlaender
Algorithms and Data Structures Lecture XIII
Minimum Spanning Tree Shortest Paths
Algorithms (2IL15) – Lecture 5 SINGLE-SOURCE SHORTEST PATHS
CS 583 Analysis of Algorithms
Algorithms and Data Structures Lecture XIII
Lecture 13 Algorithm Analysis
Lecture 13 Algorithm Analysis
Minimum Spanning Tree Algorithms
Lecture 13 Algorithm Analysis
Lecture 13 Algorithm Analysis
Algorithms (2IL15) – Lecture 7
CSE 417: Algorithms and Computational Complexity
CS 3013: DS & Algorithms Shortest Paths.
Data Structures and Algorithm Analysis Lecture 8
More Graphs Lecture 19 CS2110 – Fall 2009.
Presentation transcript:

Algorithms and Networks Shortest paths Algorithms and Networks Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Contents The shortest path problem: Statement Versions Applications Algorithms (for single source sp problem) Reminders: relaxation, Dijkstra, Variants of Dijkstra, Bellman-Ford, Johnson … Scaling technique (Gabow’s algorithm) Variant algorithms: A*, bidirectional search Bottleneck shortest paths Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Notation In the entire course: n = |V|, the number of vertices m = |E| or m = |A|, the number of edges or the number of arcs Algorithms and Networks: Shortest paths

Definition and Applications 1 Definition and Applications Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Shortest path problem (Directed) graph G=(V,E), length for each edge e in E, w(e) Distance from u to v: length of shortest path from u to v Shortest path problem: find distances, find shortest paths … Versions: All pairs Single pair Single source Single destination Lengths can be All equal (unit lengths) (BFS) Non-negative Negative but no negative cycles Negative cycles possible Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Notations dw(s,t): distance of s to t: length of shortest path from s to t when using edge length function w d(s,t): the same, but w is clear from context d(s,s) = 0: we always assume there is a path with 0 edges from a vertex to itself: s Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Applications Subroutine in other graph algorithms Route planning Difference constraints Allocating Inspection Effort on a Production Line Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Application 1 Allocating Inspection Efforts on a Production Line Production line: ordered sequence of n production stages Each stage can make an item defect Items are inspected at some stages Minimize cost… 1 2 3 Algorithms and Networks: Shortest paths

Allocating Inspection Efforts on a Production Line Production line: ordered sequence of n production stages. Items are produced in batches of B > 0 items. Probability that stage i produces a defect item is ai. Manufacturing cost per item at stage i: pi. Cost of inspecting at stage j, when last inspection has been done at stage i: fij per batch, plus gij per item in the batch When should we inspect to minimize total costs? Algorithms and Networks: Shortest paths

Solve by modeling as shortest paths problem 1 2 3 Where B(i) denotes the expected number of non-defective items after stage i Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Idea behind model w(i,j) is the cost of production and inspection from stage i to stage j, assuming we inspect at stage i, and then again at stage j Find the shortest path from 0 to n Algorithms and Networks: Shortest paths

Application 2: Difference constraints Tasks with precedence constraints and running length Each task i has Time to complete bi > 0 Some tasks can be started after other tasks have been completed: Constraint: sj + bj £ si First task can start at time 0. When can we finish last task? Shortest paths problem on directed acyclic graphs (see next dias)! Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Model Take vertex for each task Take special vertex v0 Vertex v0 models time 0 Arc (v0, i) for each task vertex i, with length 0 For each precedence constraint sj + bj £ si an arc (j, i) with length bj Algorithms and Networks: Shortest paths

Long paths give time lower bounds If there is a path from v0 to vertex i with length x, then task i cannot start before time x Proof with induction... Optimal: start each task i at time equal to length of longest path from v0 to i. This gives a valid scheme, and it is optimal by the solution Algorithms and Networks: Shortest paths

Difference constraints as shortest paths The longest path problem can be solved in O(n+m) time, as we have a directed acyclic graph. Transforming to shortest paths problem: multiply all lengths and times by –1. Algorithms and Networks: Shortest paths

Algorithms for shortest path problems (reminders) 2 Algorithms for shortest path problems (reminders) Algorithms and Networks: Shortest paths

Basis of single source algorithms Source s. Each vertex v has variable D[v] Invariant: d(s,v) £ D[v] for all v Initially: D[s]=0; v¹ s: D[v] = ¥ Relaxation step over edge (u,v): D[v] = min { D[v], D[u]+ w(u,v) } Algorithms and Networks: Shortest paths

Maintaining shortest paths Each vertex maintains a pointer to the `previous vertex on the current shortest path’ (sometimes NIL): p(v) Initially: p(v) = NIL for each v Relaxation step becomes: Relax (u,v,w) If D[v] > D[u]+ w(u,v) then D[v] = D[u] + w(u,v); p(v) = u p-values build paths of length D(v) Shortest paths tree Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Dijkstra Initialize Take priority queue Q, initially containing all vertices While Q is not empty, Select vertex v from Q of minimum value D[v] Relax across all outgoing edges from v Note: each relaxation can cause a change of a D-value and thus a change in the priority queue This happens at most |E| times Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths On Dijkstra Assumes all lengths are non-negative Correctness proof (done in `Algoritmiek’) Running time: Depends on implementation of priority queue O(n2): standard queue O(m + n log n): Fibonacci heaps O((m + n) log n): red-black trees, heaps … Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Negative lengths What if w(u,v) < 0? Negative cycles, reachable from s … Bellman-Ford algorithm: For instances without negative cycles: In O(nm) time: SSSP problem when no negative cycles reachable from s Also: detects negative cycle Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Bellman-Ford Clearly: O(nm) time Initialize Repeat |V|-1 times: For every edge (u,v) in E do: Relax(u,v,w) For every edge (u,v) in E do If D[v] > D[u] + w(u,v) then There exists a negative circuit! Stop There is no negative circuit, and for all vertices v: D[v] = d(s,v). Algorithms and Networks: Shortest paths

Correctness of Bellman-Ford Invariant: If no negative cycle is reachable from s, then after i runs of main loop, we have: If there is a shortest path from s to u with at most i edges, then D[u]=d[s,u], for all u. If no negative cycle reachable from s, then every vertex has a shortest path with at most n – 1 edges. If a negative cycle reachable from s, then there will always be an edge with a relaxation possible. Algorithms and Networks: Shortest paths

Finding a negative cycle in a graph Reachable from s: Apply Bellman-Ford, and look back with pointers Or: add a vertex s with edges to each vertex in G. s G Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths All pairs Dynamic programming: O(n3) (Floyd, 1962) Johnson: improvement for sparse graphs with reweighting technique: O(n2 log n + nm) time. Works if no negative cycles Observation: if all weights are non-negative we can run Dijkstra with each vertex as starting vertex: that gives O(n2 log n + nm) time. What if we have negative lengths: reweighting… Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Reweighting Let h: V ® R be any function to the reals. Write wh(u,v) = w(u,v) + h(u) – h(v). Lemmas: Let P be a path from x to y. Then: wh(P) = w(P) + h(x) – h(y). dh(x,y) = d(x,y) + h(x) – h(y). P is a shortest path from x to y with lengths w, if and only if it is so with lengths wh. G has a negative-length circuit with lengths w, if and only if it has a negative-length circuit with lengths wh. Telescoop-bewijs Algorithms and Networks: Shortest paths

What height function h is good? Look for height function h with wh(u,v) ³ 0, for all edges (u,v). If so, we can: Compute wh(u,v) for all edges. Run Dijkstra but now with wh(u,v). Special method to make h with a SSSP problem, and Bellman-Ford. Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths s G Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Choosing h Set h(v) = d(s,v) (in new graph) Solving SSSP problem with negative edge lengths; use Bellman-Ford. If negative cycle detected: stop. Note: for all edges (u,v): wh(u,v) = w(u,v) + h(u) – h(v) = w(u,v) + d(s,u) – d(s,v) ³ 0 Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Johnson’s algorithm Build graph G’ (as shown) Compute with Bellman-Ford d(s,v) for all v Set wh(u,v) = w(u,v) + dG’(s,u) – dG’ (s,v) for all edges (u,v). For all u do: Use Dijkstra’s algorithm to compute dh(u,v) for all v. Set d(u,v) = dh(u,v) + dG’(s,v) – dG’(s,u). O(n2 log n + nm) time Algorithms and Networks: Shortest paths

Shortest path algorithms “using the numbers” and scaling 3 Shortest path algorithms “using the numbers” and scaling Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Using the numbers Back to the single source shortest paths problem with non-negative distances Suppose D is an upper bound on the maximum distance from s to a vertex v. Let L be the largest length of an edge. Single source shortest path problem is solvable in O(m + D) time. Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths In O(m+D) time Keep array of doubly linked lists: L[0], …, L[D], Maintain that for v with D[v] £ D, v in L[D[v]]. Keep a current minimum m . Invariant: all L[k] with k < m are empty Changing D[v] from x to y: take v from L[x] (with pointer), and add it to L[y]: O(1) time each. Extract min: while L[m] empty, m++; then take the first element from list L[m]. Total time: O(m+D) Algorithms and Networks: Shortest paths

Corollary and extension SSSP: in O(m+nL) time. (Take D=nL). Gabow (1985): SSSP problem can be solved in O(m logR L) time, where R = max{2, m/n} L : maximum length of edge Gabow’s algorithm uses scaling technique! See Schrijver, page 102 Algorithms and Networks: Shortest paths

Gabow’s algorithm Main idea First, build a scaled instance: For each edge e set w’(e) = ë w(e) / R û . Recursively, solve the scaled instance. Another shortest paths instance can be used to compute the correction terms! Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths How far are we off? We want d(s,v) R * dw’(s,v) is when we scale back our scaled instance: what error did we make when rounding? Set for each edge (x,y) in E: Z(x,y) = w(x,y) – R* dw’(s,x) + R * dw’(s,y) Works like height function, so the same shortest paths! Height of x is – R * dw’(s,x) Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths A claim For all vertices v in V: d(s,v) = dZ(s,v) + R * dw’(s,v) As with height functions (telescope): d(s,v) = dZ(s,v) + h(s) – h(v) = dZ(s,v) – R*dw’(s,s) + R * dw’(s,v) And dw’(s,s) = 0 Thus, we can compute distances for w by computing distances for Z and for w’ Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Gabow’s algorithm If L <= R, then solve the problem using the O(m+nR) algorithm (Base case) Else For each edge e: set w’(e) = ë w(e) / R û . Recursively, compute the distances but with the new length function w’. Set for each edge (u,v): Z(u,v) = w(u,v) + R* dw’(s,u) – R * dw’(s,v). Compute dZ(s,v) for all v (how? See next!) and then use d(s,v) = dZ(s,v) + R * dw’(s,v) Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths A property of Z For each edge (u,v) Î E we have: Z(u,v) = w(u,v) + R* dw’(s,u) – R * dw’(s,v) ³ 0, because w(u,v) ³ R * w’(u,v) ³ R * (dw’(s,v) – dw’(s,u)). So, a variant of Dijkstra can be used to compute distances for Z. Algorithms and Networks: Shortest paths

Computing distances for Z For each vertex v we have dZ(s,v) £ nR for all v reachable from s Consider a shortest path P for distance function w’ from s to v For each of the less than n edges e on P, w(e) £ R + R*w’(e) So, d(s,v) £ w(P) £ nR + R* w’(P) = nR + R* dw’(s,v) Use that d(s,v) = dZ(s,v) + R * dw’(s,v) So, we can use O(m+ nR) algorithm (Dijkstra with doubly-linked lists) to compute all values dZ(v). Algorithms and Networks: Shortest paths

Gabow’s algorithm (analysis) Recursive step: costs O( m logR L’) with L’= ë L/R û. SSSP for Z costs O(m + nR) = O(m). Note: logR L’ £ (logR L) – 1. So, Gabow’s algorithm uses O(m logR L) time. Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Example a 180 191 s t 223 116 b Algorithms and Networks: Shortest paths

Variants: A* and bidirectional search 4 Variants: A* and bidirectional search Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Practical heuristic for shortest paths Consider shortest paths in geometric setting (e.g., routeplanning for cars system) Standard Dijkstra would explore many paths that are clearly in the wrong direction Utrecht to Groningen would look at roads near Den Bosch or even Maastricht Algorithms and Networks: Shortest paths

A heuristic for the distance to the target Suppose we have a heuristic h that approximates the distance to target t Example: Euclidean distance on the plane of the points Somewhat smaller than the real distance, but looks reasonable Algorithms and Networks: Shortest paths

Admissible and consistent h is admissible if for each vertex v: h(v) <= d(v,t) h is consistent if for each edge (v,w) in E: h(v) <= h(w) + l(x,y) Algorithms and Networks: Shortest paths

A* algorithm as shortest paths with height function Use h as a height function, i.e., set for each edge (v,w): lh(v,w) = l(v,w) – h(v)+h(w) Telescope rule … Consistent: all new lengths are non-negative Admissible: no fear of stopping too early Note: arcs in wrong direction are less frequently used Faster algorithm; still correct Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Bidirectional search For a single pair shortest path problem: Start a Dijkstra-search from both sides simultaneously Analysis needed for stopping criterion Faster in practice Combines nicely with A* s t s t Algorithms and Networks: Shortest paths

Bottleneck shortest paths 5 Bottleneck shortest paths Algorithms and Networks: Shortest paths

Bottleneck shortest path Given: weighted graph G, weight w(e) for each arc, vertices s, t. Problem: find a path from s to t such that the maximum weight of an arc on the path is as small as possible. Or, reverse: such that the minimum weight is as large as possible: maximum capacity path Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths On directed graphs: O((m+n) log m), Or: O((m+n) log L) with L the maximum absolute value of the weights Binary search and DFS On undirected graphs: O(m+n) with divide and conquer strategy Algorithms and Networks: Shortest paths

Bottleneck shortest paths on undirected graphs Find the median weight of all weights of edges, say r. Look to graph Gr formed by edges with weight at most r. If s and t in same connected component of Gr, then the bottleneck is at most r: now remove all edges with weight more than r, and repeat (recursion). If s and t in different connected components of Gr: the bottleneck is larger than r. Now, contract all edges with weight at most r, and recurse. T(m) = O(m) + T(m/2) Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths 5 Conclusions Algorithms and Networks: Shortest paths

Algorithms and Networks: Shortest paths Conclusions Applications Several algorithms for shortest paths Variants of the problem Detection of negative cycles Reweighting technique Scaling technique A*, bidirectional Bottleneck shortest paths Algorithms and Networks: Shortest paths