Lecture 8 Shortest Path Shortest-path problems

Slides:



Advertisements
Similar presentations
Bellman-Ford algorithm
Advertisements

Single Source Shortest Paths
October 31, Algorithms and Data Structures Lecture XIII Simonas Šaltenis Nykredit Center for Database Research Aalborg University
November 14, Algorithms and Data Structures Lecture XIII Simonas Šaltenis Aalborg University
Advanced Algorithm Design and Analysis (Lecture 7) SW5 fall 2004 Simonas Šaltenis E1-215b
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=
 2004 SDU Lecture9- Single-Source Shortest Paths 1.Related Notions and Variants of Shortest Paths Problems 2.Properties of Shortest Paths and Relaxation.
Single-Source Shortest- paths. p2. Shortest-paths problems : G=(V,E) : weighted, directed graph w : E  R : weight function P=
Data Structures and Algorithms (AT70.02) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Dr. Sumanta Guha Slide Sources: CLRS “Intro.
Shortest Paths Algorithm Design and Analysis Week 7 Bibliography: [CLRS] – chap 24 [CLRS] – chap 25.
Length of a Path The weight (length) of a path is the sum of the weights of its edges. adcbe Path p: Edge weights: w(a, b) = 7, w(b, c) = 2, w(c,
Chapter 25: All-Pairs Shortest-Paths
The Shortest Path Problem. Shortest-Path Algorithms Find the “shortest” path from point A to point B “Shortest” in time, distance, cost, … Numerous.
 2004 SDU Lecture11- All-pairs shortest paths. Dynamic programming Comparing to divide-and-conquer 1.Both partition the problem into sub-problems 2.Divide-and-conquer.
CS420 lecture twelve Shortest Paths wim bohm cs csu.
CSE 780 Algorithms Advanced Algorithms Shortest path Shortest path tree Relaxation Bellman-Ford Alg.
Lecture 20: Shortest Paths Shang-Hua Teng. Weighted Directed Graphs Weight on edges for distance
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
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.
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 15 Shortest paths algorithms Properties of shortest paths Bellman-Ford algorithm.
Graph Algorithms Shortest path problems [Adapted from K.Wayne]
1 Advanced Algorithms All-pairs SPs DP algorithm Floyd-Warshall alg.
Shortest Paths Definitions Single Source Algorithms
Analysis of Algorithms CS 477/677 Shortest Paths Instructor: George Bebis Chapter 24.
1 Graph Algorithms Single source shortest paths problem Dana Shapira.
All-Pairs Shortest Paths
Shortest Paths1 C B A E D F
Data Structures, Spring 2006 © L. Joskowicz 1 Data Structures – LECTURE 15 Shortest paths algorithms Properties of shortest paths Bellman-Ford algorithm.
CS 473 All Pairs Shortest Paths1 CS473 – Algorithms I All Pairs Shortest Paths.
SINGLE-SOURCE SHORTEST PATHS
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.
Theory of Computing Lecture 7 MAS 714 Hartmut Klauck.
Dijkstra's algorithm.
Topological Sorting and Least-cost Path Algorithms.
Graphs – Shortest Path (Weighted Graph) ORD DFW SFO LAX
David Luebke 1 9/13/2015 CS 332: Algorithms S-S Shortest Path: Dijkstra’s Algorithm Disjoint-Set Union Amortized Analysis.
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.
Graph Algorithms Shortest path problems. Graph Algorithms Shortest path problems.
1 Shortest Path Problems How can we find the shortest route between two points on a road map? Model the problem as a graph problem: –Road map is a weighted.
Graphs, BFS, DFS and More…
Single Source Shortest-Path: The General Case (with negative edges) Bellman-Ford algorithm. Iteratively relax all edges |V|-1 times Running time? O(VE).
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.
Lecture 16. Shortest Path Algorithms
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)
All-Pairs Shortest Paths HONG-MING CHU 2013/10/31.
Algorithms LECTURE 14 Shortest Paths II Bellman-Ford algorithm
CSE 2331 / 5331 Topic 12: Shortest Path Basics Dijkstra Algorithm Relaxation Bellman-Ford Alg.
Shortest Path Algorithms. Definitions Variants  Single-source shortest-paths problem: Given a graph, finding a shortest path from a given source.
The all-pairs shortest path problem (APSP) input: a directed graph G = (V, E) with edge weights goal: find a minimum weight (shortest) path between every.
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
All-Pairs Shortest Paths
1 Weighted Graphs. 2 Outline (single-source) shortest path –Dijkstra (Section 4.4) –Bellman-Ford (Section 4.6) (all-pairs) shortest path –Floyd-Warshall.
Introduction to Algorithms All-Pairs Shortest Paths My T. UF.
Single Source Shortest Paths Chapter 24 CSc 4520/6520 Fall 2013 Slides adapted from George Bebis, University of Reno, Nevada.
Shortest paths Given: A single source vertex (given s) in a weighted, directed graph. Want to compute a shortest path for each possible destination. (Single.
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])
Algorithms and Data Structures Lecture XIII
Lecture 7 Shortest Path Shortest-path problems
Data Structures and Algorithms (AT70. 02) Comp. Sc. and Inf. Mgmt
Algorithms and Data Structures Lecture XIII
Lecture 13 Algorithm Analysis
Lecture 13 Algorithm Analysis
Lecture 13 Algorithm Analysis
Lecture 13 Algorithm Analysis
Presentation transcript:

Lecture 8 Shortest Path Shortest-path problems Single-source shortest path All-pair shortest path

Overview Shortest-path problems Single-source shortest path algorithms Bellman-Ford algorithm Dijkstra algorithm All-Pair shortest path algorithms Floyd-Warshall algorithm

Weighted graph Beijing Qingdao Lhasa Shanghai Single-source shortest path All-pair shortest path Guangzhou

Shortest Path

Cycles. Can a shortest path contains cycles? Optimal substructure: Subpaths of shortest paths are shortest paths. Cycles. Can a shortest path contains cycles? Negative weights.

Where are we? Shortest-path problems Single-source shortest path algorithms Bellman-Ford algorithm Dijkstra algorithm All-Pair shortest path algorithms Floyd-Warshall algorithm

Relaxing The process of relaxing an edge (u,v) consists of testing whether we can improve the shortest path to v found so far by going through u.

Shortest-path properties Notation: We fix the source to be s. λ[v]: the length of path computed by our algorithms from s to v. δ[v]: the length of the shortest path from s to v. Triangle property δ[v] <= δ[u] + w(u,v) for any edge (u,v). Upper-bound property δ[v] <= λ[v] for any vertex v. Convergence property If s⇒u→v is a shortest path, and if λ[u] = δ[u], then after relax(u,v), we have λ[v] = δ[v].

Bellman-Ford algorithm E = {(t,x),(t,y),(t,z),(x,t),(y,x),(y,z),(z,x),(z,s),(s,t),(s,y)} Θ(mn)

Negative cycle

Quiz Run Bellman-Ford algorithm for the following graph, provided by E = {(S,A),(S,G),(A,E),(B,A),(B,C),(C,D),(D,E),(E,B),(F,A),(F,E),(G,F)}

Correctness Correctness of Bellman-Ford If G contains no negative-weight cycles reachable from s, then the algorithm returns TRUE, and for all v, λ[v] = δ[v], otherwise the algorithm returns FALSE. Proof. No negative cycle. By the fact that the length of simple paths is bounded by |V| - 1. After i-th iteration of relax, λ[vi] = δ[vi]. s v v1 Vj vi Negative cycle. After i-th iteration of relax, λ[vi] + w(vi,vj) < λ[vj]. The length of negative cycle is at most |V|.

Relax in topological order. Observation 1 If there is no cycle (DAG), ... Relax in topological order. Θ(m) s v v1 vj vi

Weighted DAG application seam

If (s, vi) is the lightest edge sourcing from s, then λ[vi] = δ[vi] Observation 2 If there is no negative edge, ... vj vi v1 s If (s, vi) is the lightest edge sourcing from s, then λ[vi] = δ[vi]

Dijkstra algorithm PV primitives Structural programming Distributed algorithms Edsger Wybe Dijkstra in 2002

Dijkstra algorithm

Correctness Assume u is chosen in Step 7, and 1. λ[u] > δ[u] 2. s ⇒ x → y ⇒ u is the shortest path δ[u] = δ[x] + w(x,y) + w(p2) = λ[x] + w(x,y) + w(p2) ≥ λ[x] + w(x,y) ≥ λ[y] ≥ λ[u]

Time complexity Θ(n2)

What is the time complexity? How about use d-heap?

Comparisons Array Binary heap d-ary heap Dijkstra O(n2) O(mlogn) O(dnlogdn + mlogdn)

Dense graph dense: m = n1+ε, ε is not too small. d-heap, d = m/n complexity: O(dnlogdn + mlogdn) = O(m)

Where are we? Shortest-path problems Single-source shortest path algorithms Bellman-Ford algorithm Dijkstra algorithm All-Pair shortest path algorithms Floyd-Warshall algorithm

All-pairs shortest path Define $d_{i,j}^{k}$ to be the length of a shortest path from $i$ to $j$ that does not pass any vertex in $\{k+1,k+2,\ldots,n\}$. Clearly \[d_{ij}^{k} = \left\{\begin{array}{ll} l[i,j] & {\rm if}\ k=0 \\ min\{d_{i,j}^{k-1},d_{i,k}^{k-1}+d_{k,j}^{k-1}\} & {\rm if}\ 1\le k\le n \end{array}\right.\]

Floyd-Warshall algorithm \left[ \begin{array}{ccccc} 0 & 10 & \infty & 5 & \infty\\ \infty & 0 & 1 & 2 & \infty\\ \infty & \infty & 0 & \infty & 4\\ \infty & 3 & 9 & 0 & 2\\ 2 & \infty & 6 & \infty & 0 \end{array} \right]

Floyd-Warshall algorithm Θ(n3)

Quiz Run Floyd-Warshall algorithm for the following graph:

Conclusion Dijkstra’s algorithm. Nearly linear-time when weights are nonnegative. Acyclic edge-weighted digraphs. Faster than Dijkstra’s algorithm. Negative weights are no problem. Negative weights and negative cycles. If no negative cycles, can find shortest paths via Bellman-Ford. If negative cycles, can find one via Bellman-Ford. All-pair shortest path. can be solved via Floyd-Warshall Floyd-Warshall can also compute the transitive closure of directed graph.

Which of the following statements are true for shortest path? ♠. If you run Dijkstra's algorithm on an edge-weighted DAG with positive weights, the order in which the vertices are relaxed is a topological order. ♥. Let P be a shortest path from some s to t in an edge- weighted digraph G. If the weight of each edge in G is increased by one, then P will still be a shortest path from s to t in the modified digraph G'. ♣. Let G be a digraph with positive edge weights. Suppose that you increase the length of an edge by x. Then, the length of the shortest path from s to t can increase by more than x. ♦. Bellman-Ford finds the shortest simple path from s to every other vertex, even if the edge weights are positive or negative integers, provided there are no negative cycles. ♣ ♦