CMPS 2200 Fall Carola Wenk Slides courtesy of Charles Leiserson with small changes by Carola Wenk. 10/8/12 CMPS 2200 Intro.
|
|
- Corey Woods
- 6 years ago
- Views:
Transcription
1 CMPS 00 Fall 01 Single Source Shortest Paths Carola Wenk Slides courtesy of Charles Leiserson with small changes by Carola Wenk 1
2 Paths in graphs Consider a digraph G = (V, E) with edge-weight function w : E R. The weight of path p = v 1 v... v k is defined to be Example: k 1 i=1= 1 w ( p) = w( v i, v i + 1). v 1 4 v 5 1 v 5 v v 4 w(p) =
3 Shortest paths A shortest path from u to v is a path of minimum weight from u to v. The shortestpath weight from u to v is defined as δ(u, v) = min{w(p) : p is a path from u to v}. Note: δ(u, v) = if no path from u to v exists.
4 Optimal substructure Theorem. A subpath of a shortest path is a shortest path. Proof. Cut and paste: 4
5 Triangle inequality Theorem. For all u,, v,, x V,, we have δ(u, v) δ(u, x) + δ(x, v). Proof. δ(u,v) minimizes over all paths from u to v δ(u, v) over all paths from u u v Concatenating two shortest paths from u to x and from x to v yields one specific path from u to v δ(u, x) δ(x, v) x 5
6 Well-definedness of shortest paths If a graph G contains a negative-weight g cycle, then some shortest paths may not exist. Example: u -6 5 < 0-8 v 6
7 Single-source shortest paths Problem. From a given source vertex s V, find the shortest-path weights δ(s, v) for all v V. Assumption: All edge weights w(u, v) are nonnegative. It follows that all shortest-path weights must exist. IDEA: Greedy. 1. Maintain a set S of vertices whose shortest-path weights from s are known, i.e., d[v]=δ(s,v) [ ] ( ). At each step add to S the vertex u V S whose distance estimate d[u] from s is minimal.. Update the distance estimates d[v] [ ] of vertices v adjacent to u. 7
8 Dijkstra s algorithm d[s] 0 for each v V {s} do d[v] S Vertices for which d[v]=d(s,v) Q V Q is a priority queue maintaining V S while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then relaxation step d[v] d[u] + w(u, v) Implicit DECREASE-KEY 8
9 Example of Dijkstra s algorithm Graph with nonnegative edge weights: A 10 B D C E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 9
10 Example of Dijkstra s algorithm Initialize: S: {} 0 A 10 B D Q: C E A B C D E 0 while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 10
11 Example of Dijkstra s algorithm A EXTRACT-MIN(Q): S: { A } 0 A 10 B D Q: C E A B C D E 0 while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 11
12 Example of Dijkstra s algorithm Relax all edges leaving A: S: { A } 0 A B D Q: C E A B C D E 0 10 while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 1
13 Example of Dijkstra s algorithm C EXTRACT-MIN(Q): S: { A,,C} } 0 A B D Q: C E A B C D E 0 10 while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 1
14 Example of Dijkstra s algorithm Relax all edges leaving C: S: { A,,C} } 0 A B D Q: C E A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 14
15 Example of Dijkstra s algorithm E EXTRACT-MIN(Q): S: { A,,C, E } 0 A B D Q: C E A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 15
16 Example of Dijkstra s algorithm Relax all edges leaving E: S: { A,,C, E } 0 A B D Q: C E A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 16
17 Example of Dijkstra s algorithm B EXTRACT-MIN(Q): S: { A,,C, E, B } 0 A B D Q: C E A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 17
18 Example of Dijkstra s algorithm Relax all edges leaving B: S: { A,,C, E, B } 0 A 10 B D Q: C E A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 18
19 Example of Dijkstra s algorithm D EXTRACT-MIN(Q): S: { A,,C, E, B, D}0 A 10 B D Q: C E A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 19
20 Analysis of Dijkstra V times degree(u) times while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) Handshaking Lemma Θ( E ) implicit DECREASE-KEY s. Time = Θ( V ) TT EXTRACT -MIN + Θ( E ) T TDECREASE-KEY Note: Same formula as in the analysis of Prim s minimum spanning tree algorithm. 0
21 Analysis of Dijkstra (continued) Time = Θ( V ) T ) EXTRACT-MIN + Θ( E ) T ) DECREASE-KEY Q T EXTRACT -MIN T DECREASE-KEY Total array O( V ) O(1) O( V ) binary heap Fibonacci heap O(log V ) O(log V ) O( E log V ) O(log V ) amortized O(1) O( E + V log V ) amortized worst case 1
22 Correctness Theorem. (i) For all v S: d[v] = δ(s, v) (ii) For all v S: d[v] ] = weight of shortest t path from s to v that uses only (besides v itself) vertices in S. Corollary. Dijkstra s algorithm terminates with d[v] = δ(s, v) for all v V.
23 Correctness Theorem. (i) For all v S: d[v] = δ(s, v) (ii) For all v S: d[v] ] = weight of shortest t path from s to v that uses only (besides v itself) vertices in S. Proof. By induction. Base: Before the while loop, d[s]=0 and d[v]= for all v s s, so (i) and (ii) are true. Step: Assume (i) and (ii) are true before an iteration; now we need to show they remain true after another iteration. Let u be the vertex added dto S, so d[u] ] d[v] ] for all other v S.
24 Correctness Theorem. (i) For all v S: d[v] = δ(s, v) (ii) For all v S: d[v] ] = weight of shortest t path from s to v that uses only (besides v itself) vertices in S. (i) Need to show that d[u] = δ(s, u). Assume the contrary. There is a path p from s to u with w(p) < d[u]. Because of (ii) that path uses vertices S, in addition to u. Let y be first vertex on p such that y S. s S,,just before x Path p from y adding u. s to u 4 u
25 Correctness Theorem. (i) For all v S: d[v] = δ(s, v) (ii) For all v S: d[v] ] = weight of shortest t path from s to v that uses only (besides v itself) vertices in S. S, just before adding u. s x y u Path p from s to u d[y] w(p) < d[u]. Contradiction to the choice of u. weights are assumption nonnegative about path 5
26 Correctness Theorem. (i) For all v S: d[v] = δ(s, v) (ii) For all v S: d[v] ] = weight of shortest t path from s to v that uses only (besides v itself) vertices in S. (ii) Let v S. Let p be a shortest path from s to v that uses only (besides v itself) vertices in S. p does not contain u: (ii) true by inductive hypothesis p contains u: p consists of vertices in S\{u} and ends with an edge from u to v. w(p)=d[u]+w(u,v), which is the value of d[v] after adding u. So (ii) is true. 6
27 Unweighted graphs Suppose w(u, v) = 1 for all (u, v) E. Can the code for Dijkstra be improved? Use a simple FIFO queue instead of a priority queue. while Q do Breadth-first search while Q do u DEQUEUE(Q) for each v Adj[u] do if d[v] = Analysis: Time = O( V + E ). u EXTRACT-MIN(Q) for each v Adj[u] do then d[v] d[u] + 1 ENQUEUE(Q, v) if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) 7
28 Example of breadth-first search a b c d e f g h i Q: 8
29 Example of breadth-first search 0 a f h d b g e i c 0 Q: a 9
30 Example of breadth-first search a d b e c 1 1 Q: a bd f g h i 0
31 Example of breadth-first search a d b e c 1 Q: a b d c e f g h i 1
32 Example of breadth-first search a d b e c Q: a b d c e f g h i
33 Example of breadth-first search a d b e c Q: a b d c e f g h i
34 Example of breadth-first search a d b e c f h g i Q: a b d c e gi 4
35 Example of breadth-first search a b c d e 4 f g 4 Q: a b d c e g i f h i 5
36 Example of breadth-first search a b c d e 4 4 f g 4 4 Q: a b d c e g i f h h i 6
37 Example of breadth-first search a b c d e 4 4 f g Q: a b d c e g i f h 4 h i 7
38 Example of breadth-first search a b c d e 4 4 f g Q: a b d c e g i f h h i 8
39 Example of breadth-first search a b c d e 4 4 f g Q: a b d c e g i f h h i 9
40 Correctness of BFS while Q do u DEQUEUE(Q) for each v Adj[u] do if d[v] = then d[v] d[u] + 1 ENQUEUE(Q, v) Key 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]
41 How to find the actual shortest paths? Store a predecessor tree: d[s] 0 for each v V {s} do d[v] S Q V Q is a priority queue maintaining V S while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u]+w(u + w(u, v) π[v] u 41
42 Example of Dijkstra s algorithm Graph with nonnegative edge weights: A 10 B D C E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 4
43 Example of Dijkstra s algorithm Initialize: S: {} 0 A 10 B D Q: C E A B C D E 0 while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 4
44 Example of Dijkstra s algorithm A EXTRACT-MIN(Q): S: { A } 0 A π: A B C D E C E Q: A B C D E 0 10 B D while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 44
45 Example of Dijkstra s algorithm Relax all edges leaving A: B D S: { A } 0 A π: A B C D E - C E Q: A B C D E 0 10 while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 45
46 Example of Dijkstra s algorithm Relax all edges leaving A: B D S: { A } 0 A π: A B C D E Α Α - C E Q: A B C D E 0 10 while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 46
47 Example of Dijkstra s algorithm C EXTRACT-MIN(Q): 10 B D S: { A,,C} } 0 A π: A B C D E Α Α - C E Q: A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 47
48 Example of Dijkstra s algorithm Relax all edges leaving C: B D S: { A,,C} } 0 A π: A B C D E Α Α - C E Q: A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 48
49 Example of Dijkstra s algorithm Relax all edges leaving C: B D S: { A,,C} } 0 A π: A B C D E Α Α - C E Q: A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 49
50 Example of Dijkstra s algorithm E EXTRACT-MIN(Q): 7 11 B D S: { A,,C, E } 0 A π: A B C D E C Α C C C E Q: A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 50
51 Example of Dijkstra s algorithm Relax all edges leaving E: B D S: { A,,C, E } 0 A π: A B C D E C Α C C C E Q: A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 51
52 Example of Dijkstra s algorithm B EXTRACT-MIN(Q): 7 11 B D S: { A,,C, E, B } 0 A π: A B C D E C Α C C C E Q: A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 5
53 Example of Dijkstra s algorithm Relax all edges leaving B: 10 B D S: { A,,C, E, B } 0 A π: A B C D E C Α B C C E Q: A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 5
54 Example of Dijkstra s algorithm D EXTRACT-MIN(Q): B D S: { A,,C, E, B, D}0 A π: A B C D E C Α B C C E Q: A B C D E while Q do u EXTRACT-MIN(Q) for each v Adj[u] do if d[v] > d[u] + w(u, v) then d[v] d[u] + w(u, v) π[v] u 54
Single Source Shortest Paths
CMPS 00 Fall 015 Single Source Shortest Paths Carola Wenk Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk 1 Paths in graphs Consider a digraph G = (V, E) with an edge-weight
More informationCMPS 6610 Fall 2018 Shortest Paths Carola Wenk
CMPS 6610 Fall 018 Shortest Paths Carola Wenk Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk Paths in graphs Consider a digraph G = (V, E) with an edge-weight function w
More informationIntroduction to Algorithms
Introduction to Algorithms 6.046J/18.401J LECTURE 14 Shortest Paths I Properties of shortest paths Dijkstra s algorithm Correctness Analysis Breadth-first search Prof. Charles E. Leiserson Paths in graphs
More informationSingle Source Shortest Paths
CMPS 00 Fall 017 Single Source Shortest Paths Carola Wenk Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk Paths in graphs Consider a digraph G = (V, E) with an edge-weight
More informationIntroduction to Algorithms
Introduction to Algorithms 6.046J/18.401J LECTURE 17 Shortest Paths I Properties of shortest paths Dijkstra s algorithm Correctness Analysis Breadth-first search Prof. Erik Demaine November 14, 005 Copyright
More informationIntroduction to Algorithms
Introduction to Algorithms 6.046J/8.40J/SMA550 Lecture 7 Prof. Erik Demaine Paths in graphs Consider a digraph G = (V, E) with edge-weight function w : E R. The weight of path p = v v L v k is defined
More informationCS60020: Foundations of Algorithm Design and Machine Learning. Sourangshu Bhattacharya
CS6000: Foundations of Algorithm Design and Machine Learning Sourangshu Bhattacharya Paths in graphs Consider a digraph G = (V, E) with edge-weight function w : E R. The weight of path p = v 1 v L v k
More informationIntroduction to Algorithms
Introduction to Algorithms, Lecture 5 // Introduction to Algorithms 6.46J/.4J LECTURE Shortest Paths I Properties o shortest paths Dijkstra s Correctness Analysis Breadth-irst Pro. Manolis Kellis March,
More informationDesign and Analysis of Algorithms
Design and Analysis of Algorithms CSE 5311 Lecture 21 Single-Source Shortest Paths Junzhou Huang, Ph.D. Department of Computer Science and Engineering CSE5311 Design and Analysis of Algorithms 1 Single-Source
More informationCS 4407 Algorithms Lecture: Shortest Path Algorithms
CS 440 Algorithms Lecture: Shortest Path Algorithms Prof. Gregory Provan Department of Computer Science University College Cork 1 Outline Shortest Path Problem General Lemmas and Theorems. Algorithms Bellman-Ford
More informationAnalysis of Algorithms. Outline. Single Source Shortest Path. Andres Mendez-Vazquez. November 9, Notes. Notes
Analysis of Algorithms Single Source Shortest Path Andres Mendez-Vazquez November 9, 01 1 / 108 Outline 1 Introduction Introduction and Similar Problems General Results Optimal Substructure Properties
More informationDiscrete Wiskunde II. Lecture 5: Shortest Paths & Spanning Trees
, 2009 Lecture 5: Shortest Paths & Spanning Trees University of Twente m.uetz@utwente.nl wwwhome.math.utwente.nl/~uetzm/dw/ Shortest Path Problem "#$%&'%()*%"()$#+,&- Given directed "#$%&'()*+,%+('-*.#/'01234564'.*,'7+"-%/8',&'5"4'84%#3
More informationDijkstra s Single Source Shortest Path Algorithm. Andreas Klappenecker
Dijkstra s Single Source Shortest Path Algorithm Andreas Klappenecker Single Source Shortest Path Given: a directed or undirected graph G = (V,E) a source node s in V a weight function w: E -> R. Goal:
More informationShortest Path Algorithms
Shortest Path Algorithms Andreas Klappenecker [based on slides by Prof. Welch] 1 Single Source Shortest Path 2 Single Source Shortest Path Given: a directed or undirected graph G = (V,E) a source node
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 7 Greedy Graph Algorithms Shortest paths Minimum Spanning Tree Sofya Raskhodnikova 9/14/016 S. Raskhodnikova; based on slides by E. Demaine, C. Leiserson, A. Smith,
More informationLecture 11. Single-Source Shortest Paths All-Pairs Shortest Paths
Lecture. Single-Source Shortest Paths All-Pairs Shortest Paths T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to, rd Edition, MIT Press, 009 Sungkyunkwan University Hyunseung Choo choo@skku.edu
More informationData Structures and and Algorithm Xiaoqing Zheng
Data Structures and Algorithm Xiaoqing Zheng zhengxq@fudan.edu.cn Representations of undirected graph 1 2 1 2 5 / 5 4 3 2 3 4 5 1 3 4 / 2 4 / 2 5 3 / 4 1 / Adjacency-list representation of graph G = (V,
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 8 Greedy Algorithms V Huffman Codes Adam Smith Review Questions Let G be a connected undirected graph with distinct edge weights. Answer true or false: Let e be the
More informationBreadth First Search, Dijkstra s Algorithm for Shortest Paths
CS 374: Algorithms & Models of Computation, Spring 2017 Breadth First Search, Dijkstra s Algorithm for Shortest Paths Lecture 17 March 1, 2017 Chandra Chekuri (UIUC) CS374 1 Spring 2017 1 / 42 Part I Breadth
More informationSlides credited from Hsueh-I Lu & Hsu-Chun Hsiao
Slides credited from Hsueh-I Lu & Hsu-Chun Hsiao Homework 3 released Due on 12/13 (Thur) 14:20 (one week only) Mini-HW 9 released Due on 12/13 (Thur) 14:20 Homework 4 released Due on 1/3 (Thur) 14:20 (four
More informationCS 253: Algorithms. Chapter 24. Shortest Paths. Credit: Dr. George Bebis
CS : Algorithms Chapter 4 Shortest Paths Credit: Dr. George Bebis 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
More informationBFS Dijkstra. Oct abhi shelat
4102 BFS Dijkstra Oct 22 2009 abhi shelat breadth first search bfs(g, a) 1 2 a b 1 2 d c e f g 2 h bfs theorem Theorem 1 (CLRS, p. 599) Let G =(V, E) be a graph and suppose that BFS is run on G from vertex
More informationDiscrete Optimization 2010 Lecture 2 Matroids & Shortest Paths
Matroids Shortest Paths Discrete Optimization 2010 Lecture 2 Matroids & Shortest Paths Marc Uetz University of Twente m.uetz@utwente.nl Lecture 2: sheet 1 / 25 Marc Uetz Discrete Optimization Matroids
More informationMyriad of applications
Shortet Path Myriad of application Finding hortet ditance between location (Google map, etc.) Internet router protocol: OSPF (Open Shortet Path Firt) i ued to find the hortet path to interchange package
More informationCOMP251: Bipartite graphs
COMP251: Bipartite graphs Jérôme Waldispühl School of Computer Science McGill University Based on slides fom M. Langer (McGill) & P. Beame (UofW) Recap: Dijkstra s algorithm DIJKSTRA(V, E,w,s) INIT-SINGLE-SOURCE(V,s)
More informationAlgorithms: Lecture 12. Chalmers University of Technology
Algorithms: Lecture 1 Chalmers University of Technology Today s Topics Shortest Paths Network Flow Algorithms Shortest Path in a Graph Shortest Path Problem Shortest path network. Directed graph G = (V,
More informationChapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright Pearson-Addison Wesley. All rights reserved. 4 4.1 Interval Scheduling Interval Scheduling Interval scheduling. Job j starts at s j and finishes
More informationContents Lecture 4. Greedy graph algorithms Dijkstra s algorithm Prim s algorithm Kruskal s algorithm Union-find data structure with path compression
Contents Lecture 4 Greedy graph algorithms Dijkstra s algorithm Prim s algorithm Kruskal s algorithm Union-find data structure with path compression Jonas Skeppstedt (jonasskeppstedt.net) Lecture 4 2018
More informationA faster algorithm for the single source shortest path problem with few distinct positive lengths
A faster algorithm for the single source shortest path problem with few distinct positive lengths J. B. Orlin, K. Madduri, K. Subramani, and M. Williamson Journal of Discrete Algorithms 8 (2010) 189 198.
More informationAlgorithms Booklet. 1 Graph Searching. 1.1 Breadth First Search
Algorithms Booklet 2010 Note: in all algorithms, unless stated otherwise, the input graph G is represented by adjacency lists. 1 Graph Searching 1.1 Breadth First Search Algorithm 1: BFS(G, s) Input: G
More informationChapter 4. Greedy Algorithms. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 4.1 Interval Scheduling Interval Scheduling Interval scheduling. Job j starts at s j and
More informationDiscrete Optimization 2010 Lecture 3 Maximum Flows
Remainder: Shortest Paths Maximum Flows Discrete Optimization 2010 Lecture 3 Maximum Flows Marc Uetz University of Twente m.uetz@utwente.nl Lecture 3: sheet 1 / 29 Marc Uetz Discrete Optimization Outline
More information8 Priority Queues. 8 Priority Queues. Prim s Minimum Spanning Tree Algorithm. Dijkstra s Shortest Path Algorithm
8 Priority Queues 8 Priority Queues A Priority Queue S is a dynamic set data structure that supports the following operations: S. build(x 1,..., x n ): Creates a data-structure that contains just the elements
More informationBreadth-First Search of Graphs
Breadth-First Search of Graphs Analysis of Algorithms Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Applications of Breadth-First Search of Graphs a) Single Source
More informationLecture Notes for Chapter 25: All-Pairs Shortest Paths
Lecture Notes for Chapter 25: All-Pairs Shortest Paths Chapter 25 overview Given a directed graph G (V, E), weight function w : E R, V n. Goal: create an n n matrix of shortest-path distances δ(u,v). Could
More informationShortest Paths. CS 320, Fall Dr. Geri Georg, Instructor 320 ShortestPaths 3
Shortest Paths CS 320, Fall 2017 Dr. Geri Georg, Instructor georg@colostate.edu 320 ShortestPaths 3 Preliminaries Weighted, directed graphs Weight function: maps edges to real numbers Shortest path weight:
More informationCOMP251: Bipartite graphs
COMP251: Bipartite graphs Jérôme Waldispühl School of Computer Science McGill University Based on slides fom M. Langer (McGill) & P. Beame (UofW) Recap: Dijkstra s algorithm DIJKSTRA(V, E,w,s) INIT-SINGLE-SOURCE(V,s)
More informationQuery Processing in Spatial Network Databases
Temporal and Spatial Data Management Fall 0 Query Processing in Spatial Network Databases SL06 Spatial network databases Shortest Path Incremental Euclidean Restriction Incremental Network Expansion Spatial
More informationCSE101: Design and Analysis of Algorithms. Ragesh Jaiswal, CSE, UCSD
Greedy s Greedy s Shortest path Claim 2: Let S be a subset of vertices containing s such that we know the shortest path length l(s, u) from s to any vertex in u S. Let e = (u, v) be an edge such that 1
More information25. Minimum Spanning Trees
695 25. Minimum Spanning Trees Motivation, Greedy, Algorithm Kruskal, General Rules, ADT Union-Find, Algorithm Jarnik, Prim, Dijkstra, Fibonacci Heaps [Ottman/Widmayer, Kap. 9.6, 6.2, 6.1, Cormen et al,
More information25. Minimum Spanning Trees
Problem Given: Undirected, weighted, connected graph G = (V, E, c). 5. Minimum Spanning Trees Motivation, Greedy, Algorithm Kruskal, General Rules, ADT Union-Find, Algorithm Jarnik, Prim, Dijkstra, Fibonacci
More informationLecture Notes Discrete Optimization
Lecture Notes Discrete Optimization Bernd Gärtner ETH Zürich (Figures and Proofreading by Hiroyuki Miyazawa) 1 Contents 1 Introduction 4 1.1 The Warehouse Problem From an Ancient Competition..........
More informationUndirected Graphs. V = { 1, 2, 3, 4, 5, 6, 7, 8 } E = { 1-2, 1-3, 2-3, 2-4, 2-5, 3-5, 3-7, 3-8, 4-5, 5-6 } n = 8 m = 11
Undirected Graphs Undirected graph. G = (V, E) V = nodes. E = edges between pairs of nodes. Captures pairwise relationship between objects. Graph size parameters: n = V, m = E. V = {, 2, 3,,,, 7, 8 } E
More informationDynamic Programming: Shortest Paths and DFA to Reg Exps
CS 374: Algorithms & Models of Computation, Fall 205 Dynamic Programming: Shortest Paths and DFA to Reg Exps Lecture 7 October 22, 205 Chandra & Manoj (UIUC) CS374 Fall 205 / 54 Part I Shortest Paths with
More informationDesign and Analysis of Algorithms
Design and Analysis of Algorithms CSE 5311 Lecture 22 All-Pairs Shortest Paths Junzhou Huang, Ph.D. Department of Computer Science and Engineering CSE5311 Design and Analysis of Algorithms 1 All Pairs
More informationMA015: Graph Algorithms
MA015 3. Minimum cuts 1 MA015: Graph Algorithms 3. Minimum cuts (in undirected graphs) Jan Obdržálek obdrzalek@fi.muni.cz Faculty of Informatics, Masaryk University, Brno All pairs flows/cuts MA015 3.
More informationDynamic Programming: Shortest Paths and DFA to Reg Exps
CS 374: Algorithms & Models of Computation, Spring 207 Dynamic Programming: Shortest Paths and DFA to Reg Exps Lecture 8 March 28, 207 Chandra Chekuri (UIUC) CS374 Spring 207 / 56 Part I Shortest Paths
More informationIS 709/809: Computational Methods in IS Research Fall Exam Review
IS 709/809: Computational Methods in IS Research Fall 2017 Exam Review Nirmalya Roy Department of Information Systems University of Maryland Baltimore County www.umbc.edu Exam When: Tuesday (11/28) 7:10pm
More informationIntroduction to Algorithms
Introduction to Algorithms 6.046J/18.401J/SMA5503 Lecture 18 Prof. Erik Demaine Negative-weight cycles Recall: If a graph G = (V, E) contains a negativeweight cycle, then some shortest paths may not exist.
More informationCS781 Lecture 3 January 27, 2011
CS781 Lecture 3 January 7, 011 Greedy Algorithms Topics: Interval Scheduling and Partitioning Dijkstra s Shortest Path Algorithm Minimum Spanning Trees Single-Link k-clustering Interval Scheduling Interval
More informationMatching Residents to Hospitals
Midterm Review Matching Residents to Hospitals Goal. Given a set of preferences among hospitals and medical school students, design a self-reinforcing admissions process. Unstable pair: applicant x and
More informationChapter 5 Data Structures Algorithm Theory WS 2017/18 Fabian Kuhn
Chapter 5 Data Structures Algorithm Theory WS 2017/18 Fabian Kuhn Priority Queue / Heap Stores (key,data) pairs (like dictionary) But, different set of operations: Initialize-Heap: creates new empty heap
More informationICS 252 Introduction to Computer Design
ICS 252 fall 2006 Eli Bozorgzadeh Computer Science Department-UCI References and Copyright Textbooks referred [Mic94] G. De Micheli Synthesis and Optimization of Digital Circuits McGraw-Hill, 1994. [CLR90]
More informationCS 6301 PROGRAMMING AND DATA STRUCTURE II Dept of CSE/IT UNIT V GRAPHS
UNIT V GRAPHS Representation of Graphs Breadth-first search Depth-first search Topological sort Minimum Spanning Trees Kruskal and Prim algorithm Shortest path algorithm Dijkstra s algorithm Bellman-Ford
More informationCS 410/584, Algorithm Design & Analysis, Lecture Notes 4
CS 0/58,, Biconnectivity Let G = (N,E) be a connected A node a N is an articulation point if there are v and w different from a such that every path from 0 9 8 3 5 7 6 David Maier Biconnected Component
More informationAnalysis of Algorithms. Outline 1 Introduction Basic Definitions Ordered Trees. Fibonacci Heaps. Andres Mendez-Vazquez. October 29, Notes.
Analysis of Algorithms Fibonacci Heaps Andres Mendez-Vazquez October 29, 2015 1 / 119 Outline 1 Introduction Basic Definitions Ordered Trees 2 Binomial Trees Example 3 Fibonacci Heap Operations Fibonacci
More informationCS 580: Algorithm Design and Analysis
CS 580: Algorithm Design and Analysis Jeremiah Blocki Purdue University Spring 2018 Announcement: Homework 1 due soon! Due: January 25 th at midnight (Blackboard) Recap: Graphs Bipartite Graphs Definition
More informationFibonacci Heaps These lecture slides are adapted from CLRS, Chapter 20.
Fibonacci Heaps These lecture slides are adapted from CLRS, Chapter 20. Princeton University COS 4 Theory of Algorithms Spring 2002 Kevin Wayne Priority Queues Operation mae-heap insert find- delete- union
More informationPreliminaries. Graphs. E : set of edges (arcs) (Undirected) Graph : (i, j) = (j, i) (edges) V = {1, 2, 3, 4, 5}, E = {(1, 3), (3, 2), (2, 4)}
Preliminaries Graphs G = (V, E), V : set of vertices E : set of edges (arcs) (Undirected) Graph : (i, j) = (j, i) (edges) 1 2 3 5 4 V = {1, 2, 3, 4, 5}, E = {(1, 3), (3, 2), (2, 4)} 1 Directed Graph (Digraph)
More informationne a priority queue for the nodes of G; ile (! PQ.is empty( )) select u PQ with d(u) minimal and remove it; I Informatik 1 Kurt Mehlhorn
n-negative Edge Costs: optimal choice: u U with d(u) minimal. e use a priority queue (de nition on next slide) PQ to maintain the set of pairs, d(u)) ; u U } and obtain Dijkstra s Algorithm: ne a priority
More informationObservation 4.1 G has a proper separation of order 0 if and only if G is disconnected.
4 Connectivity 2-connectivity Separation: A separation of G of order k is a pair of subgraphs (H, K) with H K = G and E(H K) = and V (H) V (K) = k. Such a separation is proper if V (H) \ V (K) and V (K)
More informationAnalysis of Algorithms I: All-Pairs Shortest Paths
Analysis of Algorithms I: All-Pairs Shortest Paths Xi Chen Columbia University The All-Pairs Shortest Paths Problem. Input: A directed weighted graph G = (V, E) with an edge-weight function w : E R. Output:
More informationObservation 4.1 G has a proper separation of order 0 if and only if G is disconnected.
4 Connectivity 2-connectivity Separation: A separation of G of order k is a pair of subgraphs (H 1, H 2 ) so that H 1 H 2 = G E(H 1 ) E(H 2 ) = V (H 1 ) V (H 2 ) = k Such a separation is proper if V (H
More informationPartha Sarathi Mandal
MA 252: Data Structures and Algorithms Lecture 32 http://www.iitg.ernet.in/psm/indexing_ma252/y12/index.html Partha Sarathi Mandal Dept. of Mathematics, IIT Guwahati The All-Pairs Shortest Paths Problem
More informationDynamic Programming. Data Structures and Algorithms Andrei Bulatov
Dynamic Programming Data Structures and Algorithms Andrei Bulatov Algorithms Dynamic Programming 18-2 Weighted Interval Scheduling Weighted interval scheduling problem. Instance A set of n jobs. Job j
More informationL feb abhi shelat
L10 661 feb 17 2009 abhi shelat General-MST-Strategy(G =(V, E)) 1 A 2 repeat V 1 times: 3 Pick a cut (S, V S) that respects A 4 Let e be min-weight edge over cut (S, V S) 5 A A {e} prim General-MST-Strategy(G
More informationarxiv: v1 [cs.ds] 20 Nov 2016
Algorithmic and Hardness Results for the Hub Labeling Problem Haris Angelidakis 1, Yury Makarychev 1 and Vsevolod Oparin 2 1 Toyota Technological Institute at Chicago 2 Saint Petersburg Academic University
More informationCSCE 750 Final Exam Answer Key Wednesday December 7, 2005
CSCE 750 Final Exam Answer Key Wednesday December 7, 2005 Do all problems. Put your answers on blank paper or in a test booklet. There are 00 points total in the exam. You have 80 minutes. Please note
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 6 Greedy Algorithms Interval Scheduling Interval Partitioning Scheduling to Minimize Lateness Sofya Raskhodnikova S. Raskhodnikova; based on slides by E. Demaine,
More information6.889 Lecture 4: Single-Source Shortest Paths
6.889 Lecture 4: Single-Source Shortest Paths Christian Sommer csom@mit.edu September 19 and 26, 2011 Single-Source Shortest Path SSSP) Problem: given a graph G = V, E) and a source vertex s V, compute
More information6. DYNAMIC PROGRAMMING II
6. DYNAMIC PROGRAMMING II sequence alignment Hirschberg's algorithm Bellman-Ford algorithm distance vector protocols negative cycles in a digraph Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison
More informationGeneral Methods for Algorithm Design
General Methods for Algorithm Design 1. Dynamic Programming Multiplication of matrices Elements of the dynamic programming Optimal triangulation of polygons Longest common subsequence 2. Greedy Methods
More informationShortest paths with negative lengths
Chapter 8 Shortest paths with negative lengths In this chapter we give a linear-space, nearly linear-time algorithm that, given a directed planar graph G with real positive and negative lengths, but no
More information6. DYNAMIC PROGRAMMING II. sequence alignment Hirschberg's algorithm Bellman-Ford distance vector protocols negative cycles in a digraph
6. DYNAMIC PROGRAMMING II sequence alignment Hirschberg's algorithm Bellman-Ford distance vector protocols negative cycles in a digraph Shortest paths Shortest path problem. Given a digraph G = (V, E),
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 5 Greedy Algorithms Interval Scheduling Interval Partitioning Guest lecturer: Martin Furer Review In a DFS tree of an undirected graph, can there be an edge (u,v)
More informationQuestion Paper Code :
www.vidyarthiplus.com Reg. No. : B.E./B.Tech. DEGREE EXAMINATION, NOVEMBER/DECEMBER 2011. Time : Three hours Fourth Semester Computer Science and Engineering CS 2251 DESIGN AND ANALYSIS OF ALGORITHMS (Regulation
More informationMath 391: Midterm 1.0 Spring 2016
Math 391: Midterm 1.0 Spring 2016 James Skon skonjp@kenyon.edu Test date: October 5 Submission Instructions: Give all your assumptions. Show all your work. Be as complete as possible. Grading Problem 1
More informationTrees. A tree is a graph which is. (a) Connected and. (b) has no cycles (acyclic).
Trees A tree is a graph which is (a) Connected and (b) has no cycles (acyclic). 1 Lemma 1 Let the components of G be C 1, C 2,..., C r, Suppose e = (u, v) / E, u C i, v C j. (a) i = j ω(g + e) = ω(g).
More information1 Some loose ends from last time
Cornell University, Fall 2010 CS 6820: Algorithms Lecture notes: Kruskal s and Borůvka s MST algorithms September 20, 2010 1 Some loose ends from last time 1.1 A lemma concerning greedy algorithms and
More informationSolutions to Exercises
1/13 Solutions to Exercises The exercises referred to as WS 1.1(a), and so forth, are from the course book: Williamson and Shmoys, The Design of Approximation Algorithms, Cambridge University Press, 2011,
More informationAn Õ m 2 n Randomized Algorithm to compute a Minimum Cycle Basis of a Directed Graph
An Õ m 2 n Randomized Algorithm to compute a Minimum Cycle Basis of a Directed Graph T Kavitha Indian Institute of Science Bangalore, India kavitha@csaiiscernetin Abstract We consider the problem of computing
More informationNgày 20 tháng 7 năm Discrete Optimization Graphs
Discrete Optimization Graphs Ngày 20 tháng 7 năm 2011 Lecture 6: Graphs In this class we shall prove some simple, useful theorems about graphs. We start with very simple obseravations. Lecture 6: Graphs
More informationFibonacci (Min-)Heap. (I draw dashed lines in place of of circular lists.) 1 / 17
Fibonacci (Min-)Heap A forest of heap-order trees (parent priority child priority). Roots in circular doubly-linked list. Pointer to minimum-priority root. Siblings in circular doubly-linked list; parent
More informationA Note on the Connection between the Primal-Dual and the A* Algorithm
A Note on the Connection between the Primal-Dual and the A* Algorithm Xugang Ye, Johns Hopkins University, USA Shih-Ping Han, Johns Hopkins University, USA Anhua Lin, Middle Tennessee State University,
More informationdirected weighted graphs as flow networks the Ford-Fulkerson algorithm termination and running time
Network Flow 1 The Maximum-Flow Problem directed weighted graphs as flow networks the Ford-Fulkerson algorithm termination and running time 2 Maximum Flows and Minimum Cuts flows and cuts max flow equals
More informationCSE 4502/5717 Big Data Analytics Spring 2018; Homework 1 Solutions
CSE 502/5717 Big Data Analytics Spring 2018; Homework 1 Solutions 1. Consider the following algorithm: for i := 1 to α n log e n do Pick a random j [1, n]; If a[j] = a[j + 1] or a[j] = a[j 1] then output:
More informationAnother way of saying this is that amortized analysis guarantees the average case performance of each operation in the worst case.
Amortized Analysis: CLRS Chapter 17 Last revised: August 30, 2006 1 In amortized analysis we try to analyze the time required by a sequence of operations. There are many situations in which, even though
More informationABHELSINKI UNIVERSITY OF TECHNOLOGY
Approximation Algorithms Seminar 1 Set Cover, Steiner Tree and TSP Siert Wieringa siert.wieringa@tkk.fi Approximation Algorithms Seminar 1 1/27 Contents Approximation algorithms for: Set Cover Steiner
More information2-INF-237 Vybrané partie z dátových štruktúr 2-INF-237 Selected Topics in Data Structures
2-INF-237 Vybrané partie z dátových štruktúr 2-INF-237 Selected Topics in Data Structures Instructor: Broňa Brejová E-mail: brejova@fmph.uniba.sk Office: M163 Course webpage: http://compbio.fmph.uniba.sk/vyuka/vpds/
More informationScribes: Po-Hsuan Wei, William Kuzmaul Editor: Kevin Wu Date: October 18, 2016
CS 267 Lecture 7 Graph Spanners Scribes: Po-Hsuan Wei, William Kuzmaul Editor: Kevin Wu Date: October 18, 2016 1 Graph Spanners Our goal is to compress information about distances in a graph by looking
More informationSpace Complexity of Algorithms
Space Complexity of Algorithms So far we have considered only the time necessary for a computation Sometimes the size of the memory necessary for the computation is more critical. The amount of memory
More informationCS 161: Design and Analysis of Algorithms
CS 161: Design and Analysis of Algorithms Greedy Algorithms 1: Shortest Paths In Weighted Graphs Greedy Algorithm BFS as a greedy algorithm Shortest Paths in Weighted Graphs Dijsktra s Algorithm Greedy
More informationCSE 591 Foundations of Algorithms Homework 4 Sample Solution Outlines. Problem 1
CSE 591 Foundations of Algorithms Homework 4 Sample Solution Outlines Problem 1 (a) Consider the situation in the figure, every edge has the same weight and V = n = 2k + 2. Easy to check, every simple
More informationGreedy. Outline CS141. Stefano Lonardi, UCR 1. Activity selection Fractional knapsack Huffman encoding Later:
October 5, 017 Greedy Chapters 5 of Dasgupta et al. 1 Activity selection Fractional knapsack Huffman encoding Later: Outline Dijkstra (single source shortest path) Prim and Kruskal (minimum spanning tree)
More informationCS675: Convex and Combinatorial Optimization Fall 2014 Combinatorial Problems as Linear Programs. Instructor: Shaddin Dughmi
CS675: Convex and Combinatorial Optimization Fall 2014 Combinatorial Problems as Linear Programs Instructor: Shaddin Dughmi Outline 1 Introduction 2 Shortest Path 3 Algorithms for Single-Source Shortest
More informationDiscrete Optimization Lecture 5. M. Pawan Kumar
Discrete Optimization Lecture 5 M. Pawan Kumar pawan.kumar@ecp.fr Exam Question Type 1 v 1 s v 0 4 2 1 v 4 Q. Find the distance of the shortest path from s=v 0 to all vertices in the graph using Dijkstra
More informationBranch-and-Bound for the Travelling Salesman Problem
Branch-and-Bound for the Travelling Salesman Problem Leo Liberti LIX, École Polytechnique, F-91128 Palaiseau, France Email:liberti@lix.polytechnique.fr March 15, 2011 Contents 1 The setting 1 1.1 Graphs...............................................
More informationNATIONAL UNIVERSITY OF SINGAPORE CS3230 DESIGN AND ANALYSIS OF ALGORITHMS SEMESTER II: Time Allowed 2 Hours
NATIONAL UNIVERSITY OF SINGAPORE CS3230 DESIGN AND ANALYSIS OF ALGORITHMS SEMESTER II: 2017 2018 Time Allowed 2 Hours INSTRUCTIONS TO STUDENTS 1. This assessment consists of Eight (8) questions and comprises
More informationFIBONACCI HEAPS. preliminaries insert extract the minimum decrease key bounding the rank meld and delete. Copyright 2013 Kevin Wayne
FIBONACCI HEAPS preliminaries insert extract the minimum decrease key bounding the rank meld and delete Copyright 2013 Kevin Wayne http://www.cs.princeton.edu/~wayne/kleinberg-tardos Last updated on Sep
More informationChapter 11. Approximation Algorithms. Slides by Kevin Wayne Pearson-Addison Wesley. All rights reserved.
Chapter 11 Approximation Algorithms Slides by Kevin Wayne. Copyright @ 2005 Pearson-Addison Wesley. All rights reserved. 1 Approximation Algorithms Q. Suppose I need to solve an NP-hard problem. What should
More information