Parallel Graph Algorithms
|
|
- Lynette Morrison
- 5 years ago
- Views:
Transcription
1 Parallel Graph Algorithms Design and Analysis of Parallel Algorithms 5DV050/VT3
2 Part I Introduction
3 Overview Graphs definitions & representations Minimal Spanning Tree (MST) Prim s algorithm Single Source Shortest Paths (SSSP) Dijkstra s algorithm All-Pairs Shortest Paths (APSP) Dijkstra s algorithm Source partitioned Source parallel Floyd s algorithm Transitive closure Connected components
4 Graphs: Definitions Graph Graph G represented by the tuple G = (V, E), where V is the set of vertices and and E is the set of edges Undirected graph An edge e E is an unordered pair {u, v} where u, v V Edges drawn without arrows Directed graphs An edge or arc e E is an ordered pair (u, v) directed from u to v where u, v V Edge (u, v) drawn as an arrow from u to v Paths A path from v to v n consists of a sequence v, v 2,..., v n of vertices such that (v k, v k+ ) E for all k. Simple path: all vertices are distinct (v i v j if i j) Cycle: v = v n Acyclic graph: Graph containing no cycles
5 Examples of graphs Undirected Directed
6 Graphs: Properties A graph is connected if there exists a path between every pair of vertices A graph is complete if there exists an edge between every pair of vertices A graph G = (V, E ) is a sub-graph of graph G = (V, E) if V V and E E A tree is a connected acyclic graph A forest is a collection of trees A graph G = (V, E) is sparse if E is much smaller than V 2 Weighted graphs: A weighted graph G is represented by a 3-tuple G = (V, E, w), where w is a real-valued function that maps edges to weights (typically non-negative). The length of a path is the sum of the weights of all edges along the path.
7 Adjacency matrix Non-weighted graphs: { if (vi, v j ) E, a i,j = 0 otherwise Weighted graphs: w(v i, w j ) if (v i, v j ) E, a i,j = 0 if i = j, otherwise A = Suitable for dense graphs
8 Adjacency lists G = (V, E) is represented by the list Adj[... V ] of lists For each v V, Adj[v] is a list of all vertices that has an edge in common with v 2 3 Adj[] 2 Adj[2] Adj[3] Adj[4] Adj[5] Suitable for sparse graphs
9 Part II Minimum Spanning Tree (MST)
10 Minimum Spanning Tree (MST) A spanning tree of a graph G = (V, E) is a sub-graph of G that is also a tree and contains all vertices of G The weight of a (spanning) tree is the sum of the weights of all edges in the tree An MST is a spanning tree with minimum weight (If G = (V, E) is not connected, then it cannot have an MST but instead has a minimum spanning forest) We assume that G is connected, otherwise we first find the connected components and then find an MST of each component
11 Prim s algorithm Greedy algorithm: Start from a single vertex and add one edge at a time without creating cycles The constructed tree will be an MST (not obvious)
12 Prim s algorithm: Example (/6) a b c d d[] 0 5 e f a 2 3 f b 5 c e d
13 Prim s algorithm: Example (2/6) a b c d d[] 0 2 e 4 f a 2 3 f b 5 c e d
14 Prim s algorithm: Example (3/6) a b c d d[] 0 2 e 4 f 2 a 2 3 f b 5 c e d
15 Prim s algorithm: Example (4/6) a b c d d[] 0 2 e f 2 a 2 3 f b 5 c e d
16 Prim s algorithm: Example (5/6) a b c d d[] 0 2 e f 2 a 2 3 f b 5 c e d
17 Prim s algorithm: Example (6/6) a b c d d[] 0 2 e f 2 a 2 3 f b 5 c e d
18 Prim s algorithm : PRIM(V, E, w, r) 2: // Initialize 3: V T := {r} 4: d[r] := 0 5: for all v (V V T ) do 6: d[v] := w(r, v) if (r, v) E else d[v] := 7: end for 8: // Add edges one by one 9: while V T V do 0: Find vertex u (V V T ) such that d[u] = min{d[v] v (V V T )} : V T := V T {u} 2: for all v (V V T ) do 3: d[v] := min{d[v], w(u, v)} 4: end for 5: end while 6: // Note: Only the weight of the MST has been computed
19 Parallelizing Prim s algorithm d[v] is updated for all v Cannot parallelize outer while loop (unless sparse...) Instead we parallelize the inner for loop: min-map! Every process holds a block column of adjacency matrix A: A = [A A 2 ] A p and corresponding part of vector d Process P i responsible for updating its part of d Find global minimum (line 0) with all-reduce Update d in parallel (line 3)
20 Analysis of the parallel Prim s algorithm Per iteration: Computation (line 3): Θ(n/p) All-reduce (line 0): Θ(log 2 p) Total for n iterations: T P (n, p) = Θ(n 2 /p) + Θ(n log 2 p) T S (n) = Θ(n 2 ) Iso-efficiency condition: n = Ω(p log 2 p) Iso-efficiency function: W = n 2 = Ω(p 2 log 2 2 p)
21 Part III Single-Source Shortest Paths (SSSP)
22 Dijkstra s algorithm Dijkstra s algorithm: Essentially identical to Prim s algorithm, except Instead of d[u] store l[u]: the length from r to u Parallel Dijkstra s algorithm: Analogous to parallel Prim s algorithm
23 Parallel Dijkstra s algorithm with lower-bounded weights Parallel Dijkstra limited by n synchronization points Can reduce the number of sync points by expanding multiple edges at once Assume all edge weights w(u, v) After selecting vertex u with l[u] = l min we can also select vertices u where l[u ] l min +.
24 Part IV All-Pairs Shortest Paths (APSP)
25 All-Pairs Shortest Paths (APSP) APSP: Find the length of the shortest path between all pairs of vertices The lengths can be summarized in a square matrix D = (d i,j ) where d i,j is the length of the shortest path from vertex i to vertex j.
26 Dijkstra s algorithm applied to all-to-all shortest paths Source-partitioned approach: Distribute the sources Run sequential -vertex Dijkstra on all processors in parallel Complexity: Θ(n 2 ) Θ(n/p) = Θ(n 3 /p) Perfectly parallel Degree of concurrency limited to p = O(n) Each processor must have access to the entire graph Source-parallel approach: Partition processors into groups (e.g., of size p) Distribute sources over the groups Run parallel -vertex Dijkstra on all processor groups in parallel Complexity: [ Θ(n 2 / p) + Θ(n log 2 p) ] n/ p = Θ(n 3 /p) + Θ((n 2 / p) log 2 p) Degree of concurrency p = O(n 2 ) Each processor needs access only to a sub-graph
27 Floyd s algorithm Given G = (V, E, w) Let V k := {v,..., v k } (first k vertices of G) For any pair v i, v j V, consider all paths whose intermediate vertices belong to the subset V k Let p (k) i,j be the shortest such path and let d (k) i,j If the vertex v k is not in the path, then p (k) i,j be its length = p (k ) i,j If the vertex v k is in the path, then it can be split into two paths: One from v i to v k and one from v k to v j where both paths use vertices only from V k In that case, the weight of the path is d (k) i,j = d (k ) i,k + d (k ) k,j
28 Floyd s algorithm : FLOYD(A) 2: D (0) := A 3: for k = to n do 4: for i = to n do 5: for j = to n do 6: d (k) i,j 7: end for 8: end for 9: end for := min{d (k ) i,j, d (k ) i,k + d (k ) k,j } Similar in structure to matrix multiplication Parallelized using SUMMA-style algorithm
29 Part V Transitive closure
30 Transitive closure If G = (V, E) is a graph, then its transitive closure is the graph G = (V, E ), where E := {(v i, v j ) exists path from v i to v j in G} Gives the connectivity matrix A such that a i,j = if i = j or a path from v i to v j exists in G and a i,j = otherwise Method : Set the weights in G to and solve an all-pairs shortest paths problem followed by a reinterpretation of the output Method 2: Modify Floyd s algorithm by replacing min with logical or and + with logical and: d (k) i,j := d (k ) i,j or (d (k ) i,k and d (k ) k,j )
31 Part VI Connected components
32 Connected components Partition V into maximal disjoint subsets C, C 2,..., C r such that V = C C 2 C r and u, v C i if and only if u is reachable from v and vice versa The graph below has three connected components
33 Depth-first search based algorithm Perform depth-first traversal of the graph to generate a spanning forest Each tree in the forest defines a connected component Parallel formulation: Give sub-graph G i = (V, E i ) to process P i Perform sequential algorithm on each sub-graph in parallel Merge forests pair-wise using log 2 p steps
34 Forest merging find(x): Tree to which x belongs union(u, v): Merge trees to which u and v belong Merge forest A into forest B: Send A to processor holding B For each edge (u, v) (there are at most n ) in A: find(u) in B find(v) in B Same tree? Do nothing Different trees? union(u, v) in B Discard A, continue with B Using appropriate set data structure and algorithms, find(x) and union(u, v) have expected constant time complexity Complexity (D block partitioning): T P (n, p) = Θ(n 2 /p) + Θ(n log 2 p)
35 Part VII Johnson s algorithm
36 Johnson s algorithm (SSSP) Recall Dijkstra s algorithm: Find unprocessed u such that d[u] = min{d[v] v unprocessed} Update for all unprocessed vertices v: d[v] := min{d[v], d[u] + w(u, v)} Dijkstra s algorithm assumes dense graph For sparse graph, we instead use Johnson s algorithm which stores unprocessed vertices in a priority queue based on d[v] (smallest value first) Take minimum distance vertex from the priority queue Update adjacent vertices
37 Johnson s algorithm : JOHNSON(V, E, r) 2: Q := V 3: for all v Q do 4: d[v] := 5: end for 6: d[r] := 0 7: while Q do 8: u := ExtractMin(Q) 9: for each v adjacent to u do 0: if v Q and d[u] + w(u, v) < d[v] then : d[v] := d[u] + w(u, v) 2: end if 3: end for 4: end while
38 Parallel Johnson s (centralized queue) Maintain Q at a centralized location Processors compute new values and request updates of Q Major bottleneck No asymptotic speedup, since O( E ) updates that are serialized and each take time O(log 2 n) leading to the same complexity as the sequential formulation Moreover, only E / V vertices can be updated in parallel in each iteration, and this number is small since the graph is assumed sparse
39 Parallel Johnson s (distributed queue) Distributed queue: Manage Q using distributed algorithm Requires a machine with very low latency to be practical Even if the update complexity is reduced from O(log 2 n) to O(), we can expect no more than a O(log 2 n) speedup since the updates are applied sequentially Safe vertices: Let u be a vertex with minimal d[u] All vertices v with d[v] = d[u] can be processed in parallel If we know that the minimum edge weight is, then we can relax this to all vertices v with d[v] d[u] +
40 Parallel Johnson s (unsafe vertices) Process also unsafe vertices in parallel Leads to an algorithm that is no longer equivalent to the sequential algorithm Process p vertices at the top of Q in parallel Each process maintains its own priority queue The distances might no longer correspond to the shortest paths Detect instances of wrongly computed distances and re-process the corresponding vertices
41 Part VIII Weighted matchings
42 Weighted matchings A matching M(G) of a graph G = (V, E) is any sub-graph of G where each vertex is incident to at most one edge Let w(e) be the weight of an edge e We define the weight w(g) of a graph G as the sum of all edge weights A maximum weighted matching M (G) of G is a matching whose weight w(m (G)) is maximum among all matchings of G
43 Matchings and parallel graph partitioning
44 Sequential greedy weighted matching algorithm : MATCHING(V, E) 2: M(G) := 3: while E do 4: Pick locally heaviest edge e from E 5: Add e to M(G) 6: Remove e = {u, v} and all edges incident to u and v from E 7: end while Approximates a maximal matching within a factor 2
45 Parallel greedy weighted matching algorithm For each vertex v in parallel: : PMATCHING(V, E) 2: R := 3: Initialize N to the neighborhood of v (all vertices adjacent to v) 4: Let the candidate c be the vertex connected to v by the locally heaviest edge in N 5: if c then 6: Send req to c 7: end if 8: while N do 9: Receive message m from vertex u 0: If m = req, then R := R {u} : If m = drop, then N := N {u} and update c if u = c and if c send req to c 2: If c and c R, send drop to all vertices in N except c 3: end while
Parallel Graph Algorithms
Parallel Graph Algorithms Design and Analysis of Parallel Algorithms 5DV050 Spring 202 Part I Introduction Overview Graphsdenitions, properties, representation Minimal spanning tree Prim's algorithm Shortest
More informationLecture 4: Graph Algorithms
Lecture 4: Graph Algorithms Definitions Undirected graph: G =(V, E) V finite set of vertices, E finite set of edges any edge e = (u,v) is an unordered pair Directed graph: edges are ordered pairs If e
More informationIntroduction to Parallel & Distributed Computing Parallel Graph Algorithms
Introduction to Parallel & Distributed Computing Parallel Graph Algorithms Lecture 16, Spring 2014 Instructor: 罗国杰 gluo@pku.edu.cn In This Lecture Parallel formulations of some important and fundamental
More informationMinimum Spanning Trees
Minimum Spanning Trees Problem A town has a set of houses and a set of roads. A road connects 2 and only 2 houses. A road connecting houses u and v has a repair cost w(u, v). Goal: Repair enough (and no
More informationLecture 6 Basic Graph Algorithms
CS 491 CAP Intro to Competitive Algorithmic Programming Lecture 6 Basic Graph Algorithms Uttam Thakore University of Illinois at Urbana-Champaign September 30, 2015 Updates ICPC Regionals teams will be
More informationCS 341: Algorithms. Douglas R. Stinson. David R. Cheriton School of Computer Science University of Waterloo. February 26, 2019
CS 341: Algorithms Douglas R. Stinson David R. Cheriton School of Computer Science University of Waterloo February 26, 2019 D.R. Stinson (SCS) CS 341 February 26, 2019 1 / 296 1 Course Information 2 Introduction
More informationWeek 12: Minimum Spanning trees and Shortest Paths
Agenda: Week 12: Minimum Spanning trees and Shortest Paths Kruskal s Algorithm Single-source shortest paths Dijkstra s algorithm for non-negatively weighted case Reading: Textbook : 61-7, 80-87, 9-601
More informationSingle Source Shortest Path (SSSP) Problem
Single Source Shortest Path (SSSP) Problem Single Source Shortest Path Problem Input: A directed graph G = (V, E); an edge weight function w : E R, and a start vertex s V. Find: for each vertex u V, δ(s,
More informationMinimum-Spanning-Tree problem. Minimum Spanning Trees (Forests) Minimum-Spanning-Tree problem
Minimum Spanning Trees (Forests) Given an undirected graph G=(V,E) with each edge e having a weight w(e) : Find a subgraph T of G of minimum total weight s.t. every pair of vertices connected in G are
More information22 Elementary Graph Algorithms. There are two standard ways to represent a
VI Graph Algorithms Elementary Graph Algorithms Minimum Spanning Trees Single-Source Shortest Paths All-Pairs Shortest Paths 22 Elementary Graph Algorithms There are two standard ways to represent a graph
More informationCIS 121 Data Structures and Algorithms Minimum Spanning Trees
CIS 121 Data Structures and Algorithms Minimum Spanning Trees March 19, 2019 Introduction and Background Consider a very natural problem: we are given a set of locations V = {v 1, v 2,..., v n }. We want
More information22 Elementary Graph Algorithms. There are two standard ways to represent a
VI Graph Algorithms Elementary Graph Algorithms Minimum Spanning Trees Single-Source Shortest Paths All-Pairs Shortest Paths 22 Elementary Graph Algorithms There are two standard ways to represent a graph
More informationUndirected Graphs. DSA - lecture 6 - T.U.Cluj-Napoca - M. Joldos 1
Undirected Graphs Terminology. Free Trees. Representations. Minimum Spanning Trees (algorithms: Prim, Kruskal). Graph Traversals (dfs, bfs). Articulation points & Biconnected Components. Graph Matching
More informationDecreasing a key FIB-HEAP-DECREASE-KEY(,, ) 3.. NIL. 2. error new key is greater than current key 6. CASCADING-CUT(, )
Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 1. if >. 2. error new key is greater than current key 3.. 4.. 5. if NIL and.
More informationCS 310 Advanced Data Structures and Algorithms
CS 0 Advanced Data Structures and Algorithms Weighted Graphs July 0, 07 Tong Wang UMass Boston CS 0 July 0, 07 / Weighted Graphs Each edge has a weight (cost) Edge-weighted graphs Mostly we consider only
More informationDESIGN AND ANALYSIS OF ALGORITHMS GREEDY METHOD
1 DESIGN AND ANALYSIS OF ALGORITHMS UNIT II Objectives GREEDY METHOD Explain and detail about greedy method Explain the concept of knapsack problem and solve the problems in knapsack Discuss the applications
More informationWeek 11: Minimum Spanning trees
Week 11: Minimum Spanning trees Agenda: Minimum Spanning Trees Prim s Algorithm Reading: Textbook : 61-7 1 Week 11: Minimum Spanning trees Minimum spanning tree (MST) problem: Input: edge-weighted (simple,
More informationCHAPTER 13 GRAPH ALGORITHMS
CHAPTER 13 GRAPH ALGORITHMS SFO LAX ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY 00) AND SLIDES FROM NANCY
More informationShortest Path Problem
Shortest Path Problem CLRS Chapters 24.1 3, 24.5, 25.2 Shortest path problem Shortest path problem (and variants) Properties of shortest paths Algorithmic framework Bellman-Ford algorithm Shortest paths
More informationCSC 8301 Design & Analysis of Algorithms: Kruskal s and Dijkstra s Algorithms
CSC 8301 Design & Analysis of Algorithms: Kruskal s and Dijkstra s Algorithms Professor Henry Carter Fall 2016 Recap Greedy algorithms iterate locally optimal choices to construct a globally optimal solution
More informationTutorial. Question There are no forward edges. 4. For each back edge u, v, we have 0 d[v] d[u].
Tutorial Question 1 A depth-first forest classifies the edges of a graph into tree, back, forward, and cross edges. A breadth-first tree can also be used to classify the edges reachable from the source
More informationCS200: Graphs. Rosen Ch , 9.6, Walls and Mirrors Ch. 14
CS200: Graphs Rosen Ch. 9.1-9.4, 9.6, 10.4-10.5 Walls and Mirrors Ch. 14 Trees as Graphs Tree: an undirected connected graph that has no cycles. A B C D E F G H I J K L M N O P Rooted Trees A rooted tree
More informationGreedy Algorithms. At each step in the algorithm, one of several choices can be made.
Greedy Algorithms At each step in the algorithm, one of several choices can be made. Greedy Strategy: make the choice that is the best at the moment. After making a choice, we are left with one subproblem
More informationfrom notes written mostly by Dr. Carla Savage: All Rights Reserved
CSC 505, Fall 2000: Week 9 Objectives: learn about various issues related to finding shortest paths in graphs learn algorithms for the single-source shortest-path problem observe the relationship among
More informationCSC 8301 Design & Analysis of Algorithms: Warshall s, Floyd s, and Prim s algorithms
CSC 8301 Design & Analysis of Algorithms: Warshall s, Floyd s, and Prim s algorithms Professor Henry Carter Fall 2016 Recap Space-time tradeoffs allow for faster algorithms at the cost of space complexity
More informationPart VI Graph algorithms. Chapter 22 Elementary Graph Algorithms Chapter 23 Minimum Spanning Trees Chapter 24 Single-source Shortest Paths
Part VI Graph algorithms Chapter 22 Elementary Graph Algorithms Chapter 23 Minimum Spanning Trees Chapter 24 Single-source Shortest Paths 1 Chapter 22 Elementary Graph Algorithms Representations of graphs
More informationComputer Science & Engineering 423/823 Design and Analysis of Algorithms
Computer Science & Engineering 423/823 Design and Analysis of Algorithms Lecture 07 Single-Source Shortest Paths (Chapter 24) Stephen Scott and Vinodchandran N. Variyam sscott@cse.unl.edu 1/36 Introduction
More informationCS420/520 Algorithm Analysis Spring 2009 Lecture 14
CS420/520 Algorithm Analysis Spring 2009 Lecture 14 "A Computational Analysis of Alternative Algorithms for Labeling Techniques for Finding Shortest Path Trees", Dial, Glover, Karney, and Klingman, Networks
More informationMinimum Spanning Trees My T. UF
Introduction to Algorithms Minimum Spanning Trees @ UF Problem Find a low cost network connecting a set of locations Any pair of locations are connected There is no cycle Some applications: Communication
More informationUndirected Graphs. Hwansoo Han
Undirected Graphs Hwansoo Han Definitions Undirected graph (simply graph) G = (V, E) V : set of vertexes (vertices, nodes, points) E : set of edges (lines) An edge is an unordered pair Edge (v, w) = (w,
More informationLecture 10. Elementary Graph Algorithm Minimum Spanning Trees
Lecture 10. Elementary Graph Algorithm Minimum Spanning Trees T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to Algorithms, 3rd Edition, MIT Press, 2009 Sungkyunkwan University Hyunseung Choo
More informationGreedy Approach: Intro
Greedy Approach: Intro Applies to optimization problems only Problem solving consists of a series of actions/steps Each action must be 1. Feasible 2. Locally optimal 3. Irrevocable Motivation: If always
More informationGraphs and Network Flows ISE 411. Lecture 7. Dr. Ted Ralphs
Graphs and Network Flows ISE 411 Lecture 7 Dr. Ted Ralphs ISE 411 Lecture 7 1 References for Today s Lecture Required reading Chapter 20 References AMO Chapter 13 CLRS Chapter 23 ISE 411 Lecture 7 2 Minimum
More informationSingle Source Shortest Path
Single Source Shortest Path A directed graph G = (V, E) and a pair of nodes s, d is given. The edges have a real-valued weight W i. This time we are looking for the weight and the shortest path from s
More informationGraphs. Part II: SP and MST. Laura Toma Algorithms (csci2200), Bowdoin College
Laura Toma Algorithms (csci2200), Bowdoin College Topics Weighted graphs each edge (u, v) has a weight denoted w(u, v) or w uv stored in the adjacency list or adjacency matrix The weight of a path p =
More informationThe Shortest Path Problem. The Shortest Path Problem. Mathematical Model. Integer Programming Formulation
The Shortest Path Problem jla,jc@imm.dtu.dk Department of Management Engineering Technical University of Denmark The Shortest Path Problem Given a directed network G = (V,E,w) for which the underlying
More informationCSci 231 Final Review
CSci 231 Final Review Here is a list of topics for the final. Generally you are responsible for anything discussed in class (except topics that appear italicized), and anything appearing on the homeworks.
More informationAlgorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree
Algorithms and Theory of Computation Lecture 5: Minimum Spanning Tree Xiaohui Bei MAS 714 August 31, 2017 Nanyang Technological University MAS 714 August 31, 2017 1 / 30 Minimum Spanning Trees (MST) A
More informationShortest path problems
Next... Shortest path problems Single-source shortest paths in weighted graphs Shortest-Path Problems Properties of Shortest Paths, Relaxation Dijkstra s Algorithm Bellman-Ford Algorithm Shortest-Paths
More informationTaking Stock. Last Time Flows. This Time Review! 1 Characterize the structure of an optimal solution
Taking Stock IE170: Algorithms in Systems Engineering: Lecture 26 Jeff Linderoth Last Time Department of Industrial and Systems Engineering Lehigh University April 2, 2007 This Time Review! Jeff Linderoth
More information2. True or false: even though BFS and DFS have the same space complexity, they do not always have the same worst case asymptotic time complexity.
1. T F: Consider a directed graph G = (V, E) and a vertex s V. Suppose that for all v V, there exists a directed path in G from s to v. Suppose that a DFS is run on G, starting from s. Then, true or false:
More informationCS521 \ Notes for the Final Exam
CS521 \ Notes for final exam 1 Ariel Stolerman Asymptotic Notations: CS521 \ Notes for the Final Exam Notation Definition Limit Big-O ( ) Small-o ( ) Big- ( ) Small- ( ) Big- ( ) Notes: ( ) ( ) ( ) ( )
More informationAlgorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree
Algorithms and Theory of Computation Lecture 5: Minimum Spanning Tree Xiaohui Bei MAS 714 August 31, 2017 Nanyang Technological University MAS 714 August 31, 2017 1 / 30 Minimum Spanning Trees (MST) A
More informationAnalysis of Algorithms, I
Analysis of Algorithms, I CSOR W4231.002 Eleni Drinea Computer Science Department Columbia University Thursday, March 8, 2016 Outline 1 Recap Single-source shortest paths in graphs with real edge weights:
More information2.1 Greedy Algorithms. 2.2 Minimum Spanning Trees. CS125 Lecture 2 Fall 2016
CS125 Lecture 2 Fall 2016 2.1 Greedy Algorithms We will start talking about methods high-level plans for constructing algorithms. One of the simplest is just to have your algorithm be greedy. Being greedy,
More informationMinimum Spanning Tree
Minimum Spanning Tree 1 Minimum Spanning Tree G=(V,E) is an undirected graph, where V is a set of nodes and E is a set of possible interconnections between pairs of nodes. For each edge (u,v) in E, we
More informationCSE 431/531: Algorithm Analysis and Design (Spring 2018) Greedy Algorithms. Lecturer: Shi Li
CSE 431/531: Algorithm Analysis and Design (Spring 2018) Greedy Algorithms Lecturer: Shi Li Department of Computer Science and Engineering University at Buffalo Main Goal of Algorithm Design Design fast
More informationDirected Graphs. DSA - lecture 5 - T.U.Cluj-Napoca - M. Joldos 1
Directed Graphs Definitions. Representations. ADT s. Single Source Shortest Path Problem (Dijkstra, Bellman-Ford, Floyd-Warshall). Traversals for DGs. Parenthesis Lemma. DAGs. Strong Components. Topological
More informationUNIT 5 GRAPH. Application of Graph Structure in real world:- Graph Terminologies:
UNIT 5 CSE 103 - Unit V- Graph GRAPH Graph is another important non-linear data structure. In tree Structure, there is a hierarchical relationship between, parent and children that is one-to-many relationship.
More informationHomework Assignment #3 Graph
CISC 4080 Computer Algorithms Spring, 2019 Homework Assignment #3 Graph Some of the problems are adapted from problems in the book Introduction to Algorithms by Cormen, Leiserson and Rivest, and some are
More informationShortest Paths. Nishant Mehta Lectures 10 and 11
Shortest Paths Nishant Mehta Lectures 0 and Communication Speeds in a Computer Network Find fastest way to route a data packet between two computers 6 Kbps 4 0 Mbps 6 6 Kbps 6 Kbps Gbps 00 Mbps 8 6 Kbps
More information2 A Template for Minimum Spanning Tree Algorithms
CS, Lecture 5 Minimum Spanning Trees Scribe: Logan Short (05), William Chen (0), Mary Wootters (0) Date: May, 0 Introduction Today we will continue our discussion of greedy algorithms, specifically in
More informationCSE 100 Minimum Spanning Trees Prim s and Kruskal
CSE 100 Minimum Spanning Trees Prim s and Kruskal Your Turn The array of vertices, which include dist, prev, and done fields (initialize dist to INFINITY and done to false ): V0: dist= prev= done= adj:
More informationAlgorithm Design (8) Graph Algorithms 1/2
Graph Algorithm Design (8) Graph Algorithms / Graph:, : A finite set of vertices (or nodes) : A finite set of edges (or arcs or branches) each of which connect two vertices Takashi Chikayama School of
More informationMinimum Spanning Trees. CSE 373 Data Structures
Minimum Spanning Trees CSE 373 Data Structures Reading Chapter 3 Section 3.7 MSTs 2 Spanning Tree Given (connected) G(V,E) a spanning tree T(V,E ): Spans the graph (V = V) Forms a tree (no cycle); E has
More informationKruskal's MST Algorithm
Kruskal's MST Algorithm In Wednesday's class we looked at the Disjoint Set data structure that splits a bunch of data values into sets in such a way that each datum is in exactly one set. There are 2 primary
More informationLecture 11: Analysis of Algorithms (CS ) 1
Lecture 11: Analysis of Algorithms (CS583-002) 1 Amarda Shehu November 12, 2014 1 Some material adapted from Kevin Wayne s Algorithm Class @ Princeton 1 2 Dynamic Programming Approach Floyd-Warshall Shortest
More informationChapter 9. Greedy Technique. Copyright 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 9 Greedy Technique Copyright 2007 Pearson Addison-Wesley. All rights reserved. Greedy Technique Constructs a solution to an optimization problem piece by piece through a sequence of choices that
More informationAll Shortest Paths. Questions from exercises and exams
All Shortest Paths Questions from exercises and exams The Problem: G = (V, E, w) is a weighted directed graph. We want to find the shortest path between any pair of vertices in G. Example: find the distance
More informationCOMP 355 Advanced Algorithms
COMP 355 Advanced Algorithms Algorithms for MSTs Sections 4.5 (KT) 1 Minimum Spanning Tree Minimum spanning tree. Given a connected graph G = (V, E) with realvalued edge weights c e, an MST is a subset
More informationShortest Paths. Nishant Mehta Lectures 10 and 11
Shortest Paths Nishant Mehta Lectures 0 and Finding the Fastest Way to Travel between Two Intersections in Vancouver Granville St and W Hastings St Homer St and W Hastings St 6 Granville St and W Pender
More informationGraph Algorithms shortest paths, minimum spanning trees, etc.
Graph Algorithms shortest paths, minimum spanning trees, etc. SFO ORD LAX DFW Graphs 1 Outline and Reading Graphs ( 1.1) Definition Applications Terminology Properties ADT Data structures for graphs (
More informationGraph Theory. ICT Theory Excerpt from various sources by Robert Pergl
Graph Theory ICT Theory Excerpt from various sources by Robert Pergl What can graphs model? Cost of wiring electronic components together. Shortest route between two cities. Finding the shortest distance
More informationArtificial Intelligence
Artificial Intelligence Shortest Path Problem G. Guérard Department of Nouvelles Energies Ecole Supérieur d Ingénieurs Léonard de Vinci Lecture 3 GG A.I. 1/42 Outline 1 The Shortest Path Problem Introduction
More informationExample. Minimum-Cost Spanning Tree. Edge Selection Greedy Strategies. Edge Selection Greedy Strategies
Minimum-Cost Spanning Tree weighted connected undirected graph spanning tree cost of spanning tree is sum of edge costs find spanning tree that has minimum cost Example 2 4 12 6 3 Network has 10 edges.
More informationGraph Algorithms. Parallel and Distributed Computing. Department of Computer Science and Engineering (DEI) Instituto Superior Técnico.
Graph Algorithms Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico May, 0 CPD (DEI / IST) Parallel and Distributed Computing 0-0-0 / Outline
More informationKonigsberg Bridge Problem
Graphs Konigsberg Bridge Problem c C d g A Kneiphof e D a B b f c A C d e g D a b f B Euler s Graph Degree of a vertex: the number of edges incident to it Euler showed that there is a walk starting at
More informationMinimum-Cost Spanning Tree. Example
Minimum-Cost Spanning Tree weighted connected undirected graph spanning tree cost of spanning tree is sum of edge costs find spanning tree that has minimum cost Example 2 4 12 6 3 Network has 10 edges.
More informationCSE373: Data Structures & Algorithms Lecture 17: Minimum Spanning Trees. Dan Grossman Fall 2013
CSE373: Data Structures & Algorithms Lecture 7: Minimum Spanning Trees Dan Grossman Fall 03 Spanning Trees A simple problem: Given a connected undirected graph G=(V,E), find a minimal subset of edges such
More informationMinimum Spanning Trees
CS124 Lecture 5 Spring 2011 Minimum Spanning Trees A tree is an undirected graph which is connected and acyclic. It is easy to show that if graph G(V,E) that satisfies any two of the following properties
More informationMinimum Spanning Trees Ch 23 Traversing graphs
Next: Graph Algorithms Graphs Ch 22 Graph representations adjacency list adjacency matrix Minimum Spanning Trees Ch 23 Traversing graphs Breadth-First Search Depth-First Search 11/30/17 CSE 3101 1 Graphs
More informationCS473-Algorithms I. Lecture 13-A. Graphs. Cevdet Aykanat - Bilkent University Computer Engineering Department
CS473-Algorithms I Lecture 3-A Graphs Graphs A directed graph (or digraph) G is a pair (V, E), where V is a finite set, and E is a binary relation on V The set V: Vertex set of G The set E: Edge set of
More informationIntroduction to Algorithms
Introduction to Algorithms 6.046J/18.401J LECTURE 13 Graph algorithms Graph representation Minimum spanning trees Greedy algorithms Optimal substructure Greedy choice Prim s greedy MST algorithm Prof.
More informationMinimum spanning trees
Minimum spanning trees [We re following the book very closely.] One of the most famous greedy algorithms (actually rather family of greedy algorithms). Given undirected graph G = (V, E), connected Weight
More informationMinimum Spanning Trees
Minimum Spanning Trees Overview Problem A town has a set of houses and a set of roads. A road connects and only houses. A road connecting houses u and v has a repair cost w(u, v). Goal: Repair enough (and
More informationChapter 9 Graph Algorithms
Chapter 9 Graph Algorithms 2 Introduction graph theory useful in practice represent many real-life problems can be slow if not careful with data structures 3 Definitions an undirected graph G = (V, E)
More informationCSE 431/531: Analysis of Algorithms. Greedy Algorithms. Lecturer: Shi Li. Department of Computer Science and Engineering University at Buffalo
CSE 431/531: Analysis of Algorithms Greedy Algorithms Lecturer: Shi Li Department of Computer Science and Engineering University at Buffalo Main Goal of Algorithm Design Design fast algorithms to solve
More informationIntroduction to Algorithms
Introduction to Algorithms 6.046J/18.401J LECTURE 16 Greedy Algorithms (and Graphs) Graph representation Minimum spanning trees Optimal substructure Greedy choice Prim s greedy MST algorithm Prof. Charles
More informationModule 5 Graph Algorithms
Module 5 Graph lgorithms Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 97 E-mail: natarajan.meghanathan@jsums.edu 5. Graph Traversal lgorithms Depth First
More information11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions
Introduction Chapter 9 Graph Algorithms graph theory useful in practice represent many real-life problems can be slow if not careful with data structures 2 Definitions an undirected graph G = (V, E) is
More informationGraph Algorithms. Definition
Graph Algorithms Many problems in CS can be modeled as graph problems. Algorithms for solving graph problems are fundamental to the field of algorithm design. Definition A graph G = (V, E) consists of
More informationUC Berkeley CS 170: Efficient Algorithms and Intractable Problems Handout 8 Lecturer: David Wagner February 20, Notes 8 for CS 170
UC Berkeley CS 170: Efficient Algorithms and Intractable Problems Handout 8 Lecturer: David Wagner February 20, 2003 Notes 8 for CS 170 1 Minimum Spanning Trees A tree is an undirected graph that is connected
More informationlooking ahead to see the optimum
! Make choice based on immediate rewards rather than looking ahead to see the optimum! In many cases this is effective as the look ahead variation can require exponential time as the number of possible
More informationAlgorithm Computation of a Single Source Shortest Path in a Directed Graph. (SSSP algorithm)
.. PATH PROBLEMS IN DIRECTED GRAPHS 141 This algorithm is based on the Dynamic Programming idea. It is due to E. W. Dijkstra and it takes O(n ) time for graphs of n nodes, in the case in which labels form
More informationReview of course COMP-251B winter 2010
Review of course COMP-251B winter 2010 Lecture 1. Book Section 15.2 : Chained matrix product Matrix product is associative Computing all possible ways of parenthesizing Recursive solution Worst-case running-time
More informationLecture I: Shortest Path Algorithms
Lecture I: Shortest Path Algorithms Dr Kieran T. Herley Department of Computer Science University College Cork October 201 KH (21/10/1) Lecture I: Shortest Path Algorithms October 201 1 / 28 Background
More informationSample Solutions to Homework #4
National Taiwan University Handout #25 Department of Electrical Engineering January 02, 207 Algorithms, Fall 206 TA: Zhi-Wen Lin and Yen-Chun Liu Sample Solutions to Homework #4. (0) (a) Both of the answers
More informationAlgorithms. All-Pairs Shortest Paths. Dong Kyue Kim Hanyang University
Algorithms All-Pairs Shortest Paths Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr Contents Using single source shortest path algorithms Presents O(V 4 )-time algorithm, O(V 3 log V)-time algorithm,
More informationIntroduction. I Given a weighted, directed graph G =(V, E) with weight function
ntroduction Computer Science & Engineering 2/82 Design and Analysis of Algorithms Lecture 06 Single-Source Shortest Paths (Chapter 2) Stephen Scott (Adapted from Vinodchandran N. Variyam) sscott@cse.unl.edu
More informationGraph Algorithms shortest paths, minimum spanning trees, etc.
SFO ORD LAX Graph Algorithms shortest paths, minimum spanning trees, etc. DFW Nancy Amato Parasol Lab, Dept. CSE, Texas A&M University Acknowledgement: These slides are adapted from slides provided with
More informationUNIT 3. Greedy Method. Design and Analysis of Algorithms GENERAL METHOD
UNIT 3 Greedy Method GENERAL METHOD Greedy is the most straight forward design technique. Most of the problems have n inputs and require us to obtain a subset that satisfies some constraints. Any subset
More information6.1 Minimum Spanning Trees
CS124 Lecture 6 Fall 2018 6.1 Minimum Spanning Trees A tree is an undirected graph which is connected and acyclic. It is easy to show that if graph G(V,E) that satisfies any two of the following properties
More informationGraphs and Network Flows IE411. Lecture 21. Dr. Ted Ralphs
Graphs and Network Flows IE411 Lecture 21 Dr. Ted Ralphs IE411 Lecture 21 1 Combinatorial Optimization and Network Flows In general, most combinatorial optimization and integer programming problems are
More informationDHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI. Department of Computer Science and Engineering CS6301 PROGRAMMING DATA STRUCTURES II
DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering CS6301 PROGRAMMING DATA STRUCTURES II Anna University 2 & 16 Mark Questions & Answers Year / Semester: II / III
More informationAlgorithms Sequential and Parallel: A Unified Approach; R. Miller and L. Boxer 3rd Graph Algorithms
Algorithms Sequential and Parallel: A Unified Approach; R. Miller and L. Boxer rd Edition @ 0 www.thestudycampus.com Graph Algorithms Terminology Representations Fundamental Algorithms Computing the Transitive
More informationAlgorithm Analysis Graph algorithm. Chung-Ang University, Jaesung Lee
Algorithm Analysis Graph algorithm Chung-Ang University, Jaesung Lee Basic definitions Graph = (, ) where is a set of vertices and is a set of edges Directed graph = where consists of ordered pairs
More informationtree follows. Game Trees
CPSC-320: Intermediate Algorithm Design and Analysis 113 On a graph that is simply a linear list, or a graph consisting of a root node v that is connected to all other nodes, but such that no other edges
More informationGraphs. Pseudograph: multiple edges and loops allowed
Graphs G = (V, E) V - set of vertices, E - set of edges Undirected graphs Simple graph: V - nonempty set of vertices, E - set of unordered pairs of distinct vertices (no multiple edges or loops) Multigraph:
More informationALGORITHM DESIGN GREEDY ALGORITHMS. University of Waterloo
ALORITHM DSIN RDY ALORITHMS University of Waterloo LIST OF SLIDS - List of Slides reedy Approaches xample: Making Change 4 Making Change (cont.) 5 Minimum Spanning Tree 6 xample 7 Approaches that Don t
More informationCSE 100: GRAPH ALGORITHMS
CSE 100: GRAPH ALGORITHMS Dijkstra s Algorithm: Questions Initialize the graph: Give all vertices a dist of INFINITY, set all done flags to false Start at s; give s dist = 0 and set prev field to -1 Enqueue
More information