Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm context

Size: px
Start display at page:

Download "Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm context"

Transcription

1 Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.3 MINIMUM SPANNING TREES Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm context Last updated on 11/14/17 5:16 AM

2 4.3 MINIMUM SPANNING TREES Algorithms ROBERT SEDGEWICK KEVIN WAYNE introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm context

3 Spanning tree Def. A spanning tree of G is a subgraph T that is: A tree: connected and acyclic. Spanning: includes all of the vertices. graph G spanning tree T 3

4 Spanning tree Def. A spanning tree of G is a subgraph T that is: A tree: connected and acyclic. Spanning: includes all of the vertices. not connected 4

5 Spanning tree Def. A spanning tree of G is a subgraph T that is: A tree: connected and acyclic. Spanning: includes all of the vertices. not a tree (cyclic) 5

6 Spanning tree Def. A spanning tree of G is a subgraph T that is: A tree: connected and acyclic. Spanning: includes all of the vertices. not spanning 6

7 Minimum spanning tree problem Input. Connected, undirected graph G with positive edge weights edge-weighted digraph G 7

8 Minimum spanning tree problem Input. Connected, undirected graph G with positive edge weights. Output. A spanning tree of minimum weight. Brute force. Try all spanning trees? minimum spanning tree T (weight = 50 = ) 7 8

9 Minimum spanning trees: quiz 1 Let T be a spanning tree of a connected graph G with V vertices. Which of the following statements are true? A. T contains exactly V 1 edges. B. Removing any edge from T disconnects it. C. Adding any edge to T creates a cycle. D. All of the above. spanning tree T of graph G 9

10 Image processing MST dithering 10

11 Models of nature MST of random graph 11

12 Medical image processing MST describes arrangement of nuclei in the epithelium for cancer research 12

13 Slime mold grows network just like Tokyo rail system Rules for Biologically Inspired Adaptive Network Design Atsushi Tero, 1,2 Seiji Takagi, 1 Tetsu Saigusa, 3 Kentaro Ito, 1 Dan P. Bebber, 4 Mark D. Fricker, 4 Kenji Yumiki, 5 Ryo Kobayashi, 5,6 Toshiyuki Nakagaki 1,6 * 13

14 Applications MST is fundamental problem with diverse applications. Dithering. Cluster analysis. Max bottleneck paths. Real-time face verification. LDPC codes for error correction. Image registration with Renyi entropy. Find road networks in satellite and aerial imagery. Reducing data storage in sequencing amino acids in a protein. Model locality of particle interactions in turbulent fluid flows. Autoconfig protocol for Ethernet bridging to avoid cycles in a network. Network design (communication, electrical, hydraulic, computer, road). Approximation algorithms for NP-hard problems (e.g., TSP, Steiner tree). 14

15 4.3 MINIMUM SPANNING TREES Algorithms ROBERT SEDGEWICK KEVIN WAYNE introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm context

16 Simplifying assumptions For simplicity, we assume: The graph is connected. MST exists. The edge weights are distinct. MST is unique. see Exercise Note. Algorithms still work correctly even if duplicate edge weights no two edge weights are equal

17 Cut property Def. A cut in a graph is a partition of its vertices into two (nonempty) sets. Def. A crossing edge connects a vertex in one set with a vertex in the other. Cut property. Given any cut, the crossing edge of min weight is in the MST. crossing edges connect gray and white vertices minimum-weight crossing edge must be in the MST 17

18 Minimum spanning trees: quiz 2 Which is the min weight edge crossing the cut { 2, 3, 5, 6 }? A. 0 7 (0.16) B. 2 3 (0.17) C. 0 2 (0.26) D. 5 7 (0.28)

19 Cut property: correctness proof Def. A cut is a partition of a graph s vertices into two (nonempty) sets. Def. A crossing edge connects two vertices in different sets. Cut property. Given any cut, the min-weight crossing edge e is in the MST. Pf. Suppose e is not in the MST. Adding e to the MST creates a cycle. Some other edge f in cycle must be a crossing edge. Removing f and adding e is also a spanning tree. Since weight of e is less than the weight of f, that spanning tree has lower weight. Contradiction. f e the MST does not contain e adding e to MST creates a cycle 19

20 4.3 MINIMUM SPANNING TREES Algorithms ROBERT SEDGEWICK KEVIN WAYNE introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm context

21 Weighted edge API Edge abstraction needed for weighted edges. public class Edge implements Comparable<Edge> Edge(int v, int w, double weight) create a weighted edge v-w int either() either endpoint int other(int v) the endpoint that's not v int compareto(edge that) compare this edge to that edge double weight() the weight String tostring() string representation weight v w Idiom for processing an edge e: int v = e.either(), w = e.other(v); 21

22 Weighted edge: Java implementation public class Edge implements Comparable<Edge> { private final int v, w; private final double weight; } public Edge(int v, int w, double weight) { this.v = v; this.w = w; this.weight = weight; } public int either() { return v; } public int other(int vertex) { if (vertex == v) return w; else return v; } public int compareto(edge that) { if (this.weight < that.weight) return -1; else if (this.weight > that.weight) return +1; else return 0; } constructor either endpoint other endpoint compare edges by weight 22

23 Edge-weighted graph API public class EdgeWeightedGraph EdgeWeightedGraph(int V) EdgeWeightedGraph(In in) create an empty graph with V vertices create a graph from input stream void addedge(edge e) add weighted edge e to this graph Iterable<Edge> adj(int v) edges incident to v Iterable<Edge> edges() all edges in this graph int V() int E() number of vertices number of edges String tostring() string representation Conventions. Allow self-loops and parallel edges. 23

24 Edge-weighted graph: adjacency-lists representation Maintain vertex-indexed array of Edge lists. V tinyewg.txt 8 E adj[] Bag objects references to the same Edge object Edge-weighted graph representation 24

25 Edge-weighted graph: adjacency-lists implementation public class EdgeWeightedGraph { private final int V; private final Bag<Edge>[] adj; public EdgeWeightedGraph(int V) { } this.v = V; adj = (Bag<Edge>[]) new Bag[V]; for (int v = 0; v < V; v++) adj[v] = new Bag<Edge>(); public void addedge(edge e) { } int v = e.either(), w = e.other(v); adj[v].add(e); adj[w].add(e); same as Graph, but adjacency lists of Edges instead of integers constructor add edge to both adjacency lists } public Iterable<Edge> adj(int v) { return adj[v]; } 25

26 Minimum spanning tree API Q. How to represent the MST? public class MST MST(EdgeWeightedGraph G) constructor Iterable<Edge> edges() edges in MST double weight() weight of MST 26

27 4.3 MINIMUM SPANNING TREES Algorithms ROBERT SEDGEWICK KEVIN WAYNE introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm context

28 Kruskal s algorithm demo Consider edges in ascending order of weight. Add next edge to tree T unless doing so would create a cycle. graph edges sorted by weight an edge-weighted graph

29 Kruskal s algorithm: visualization 29

30 Kruskal s algorithm: correctness proof Proposition. [Kruskal 1956] Kruskal s algorithm computes the MST. Pf. [Case 1] Kruskal s algorithm adds edge e = v w to T. Vertices v and w are in different connected components of T. Cut = set of vertices connected to v in T. By construction of cut, no edge crossing cut is in T. No edge crossing cut has lower weight. Why? Cut property edge e is in the MST. add edge to tree w v 30

31 Kruskal s algorithm: correctness proof Proposition. [Kruskal 1956] Kruskal s algorithm computes the MST. Pf. [Case 2] Kruskal s algorithm discards edge e = v w. From Case 1, all edges in T are in the MST. The MST can t contain a cycle. adding edge to tree would create a cycle w v 31

32 Kruskal s algorithm: implementation challenge Challenge. Would adding edge v w to tree T create a cycle? If not, add it. How difficult to implement? A. 1 B. log V C. V D. E + V add edge to tree adding edge to tree would create a cycle Case 1: v and w in same component Case 2: v and w in different components 32

33 Kruskal s algorithm: implementation challenge Challenge. Would adding edge v w to tree T create a cycle? If not, add it. Efficient solution. Use the union find data structure. Maintain a set for each connected component in T. If v and w are in same set, then adding v w would create a cycle. To add v w to T, merge sets containing v and w. w v w v Case 2: adding v w creates a cycle Case 1: add v w to T and merge sets containing v and w 33

34 Kruskal s algorithm: Java implementation public class KruskalMST { private Queue<Edge> mst = new Queue<Edge>(); public KruskalMST(EdgeWeightedGraph G) { DirectedEdge[] edges = G.edges(); Arrays.sort(edges); UF uf = new UF(G.V()); edges in the MST sort edges by weight maintain connected components } for (int i = 0; i < G.E(); i++) { Edge e = edges[i]; int v = e.either(), w = e.other(v); if (uf.find(v)!= uf.find(w)) { uf.union(v, w); mst.enqueue(e); } } greedily add edges to MST edge v w does not create cycle merge connected components add edge e to MST } public Iterable<Edge> edges() { return mst; } 34

35 Kruskal s algorithm: running time Proposition. Kruskal s algorithm computes MST in time proportional to E log E (in the worst case). Pf. operation frequency time per op SORT 1 E log E UNION V 1 log V FIND 2 E log V using weighted quick union 35

36 Greed is good Gordon Gecko (Michael Douglas) evangelizing the importance of greed (in algorithm design?) Wall Street (1986) 36

37 MAXIMUM SPANNING TREE Problem. Given an undirected graph G with positive edge weights, find a spanning tree that maximizes the sum of the edge weights. Running time. E log E (or better) maximum spanning tree T (weight = 104) 37

38 4.3 MINIMUM SPANNING TREES Algorithms ROBERT SEDGEWICK KEVIN WAYNE introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm context

39 Prim s algorithm demo Start with vertex 0 and greedily grow tree T. Add to T the min weight edge with exactly one endpoint in T. Repeat until V 1 edges an edge-weighted graph

40 Prim s algorithm: visualization 40

41 Prim s algorithm: proof of correctness Proposition. [Jarník 1930, Dijkstra 1957, Prim 1959] Prim s algorithm computes the MST. Pf. Let e = min weight edge with exactly one endpoint in T. Cut = set of vertices in T. No crossing edge is in T. No crossing edge has lower weight. Cut property edge e is in the MST. edge e = 7-5 added to tree 41

42 Prim s algorithm: implementation challenge Challenge. Find the min weight edge with exactly one endpoint in T. How difficult to implement? A. l B. log E C. V D. E 1-7 is min weight edge with exactly one endpoint in T priority queue of crossing edges

43 Prim s algorithm: lazy implementation Challenge. Find the min weight edge with exactly one endpoint in T. Lazy solution. Maintain a PQ of edges with (at least) one endpoint in T. Key = edge; priority = weight of edge. DELETE-MIN to determine next edge e = v w to add to T. If both endpoints v and w are marked (both in T), disregard. Otherwise, let w be the unmarked vertex (not in T): add e to T and mark w add to PQ any edge incident to w (assuming other endpoint not in T) 1-7 is min weight edge with exactly one endpoint in T priority queue of crossing edges

44 Prim s algorithm: lazy implementation demo Start with vertex 0 and greedily grow tree T. Add to T the min weight edge with exactly one endpoint in T. Repeat until V 1 edges an edge-weighted graph

45 Prim s algorithm: lazy implementation public class LazyPrimMST { private boolean[] marked; private Queue<Edge> mst; private MinPQ<Edge> pq; // MST vertices // MST edges // PQ of edges } } public LazyPrimMST(WeightedGraph G) { pq = new MinPQ<Edge>(); mst = new Queue<Edge>(); marked = new boolean[g.v()]; visit(g, 0); while (!pq.isempty() && mst.size() < G.V() - 1) { } Edge e = pq.delmin(); int v = e.either(), w = e.other(v); if (marked[v] && marked[w]) continue; mst.enqueue(e); if (!marked[v]) visit(g, v); if (!marked[w]) visit(g, w); assume G is connected repeatedly delete the min weight edge e = v w from PQ ignore if both endpoints in T add edge e to tree add either v or w to tree 45

46 Prim s algorithm: lazy implementation private void visit(weightedgraph G, int v) { } marked[v] = true; for (Edge e : G.adj(v)) if (!marked[e.other(v)]) pq.insert(e); public Iterable<Edge> mst() { return mst; } add v to T for each edge e = v w, add to PQ if w not already in T 46

47 Lazy Prim s algorithm: running time Proposition. Lazy Prim s algorithm computes the MST in time proportional to E log E and extra space proportional to E (in the worst case). Pf. minor defect operation frequency binary heap DELETE-MIN E log E INSERT E log E 47

48 Prim s algorithm: eager implementation Challenge. Find min weight edge with exactly one endpoint in T. Observation. For each vertex v, need only lightest edge connecting v to T. MST includes at most one edge connecting v to T. Why? If MST includes such an edge, it must take lightest such edge. Why?

49 Prim s algorithm: eager implementation demo Start with vertex 0 and greedily grow tree T. Add to T the min weight edge with exactly one endpoint in T. Repeat until V 1 edges an edge-weighted graph

50 Prim s algorithm: eager implementation demo Start with vertex 0 and greedily grow tree T. Add to T the min weight edge with exactly one endpoint in T. Repeat until V 1 edges. v edgeto[] distto[] MST edges

51 Prim s algorithm: eager implementation Challenge. Find min weight edge with exactly one endpoint in T. Eager solution. Maintain a PQ of vertices connected by an edge to T, where priority of vertex v = weight of lightest edge connecting v to T. Delete min vertex v; add its associated edge e = v w to T. Update PQ by considering all edges e = v x incident to v ignore if x is already in T add x to PQ if not already on it PQ has at most one entry per vertex decrease priority of x if v x becomes lightest edge connecting x to T red: on PQ black: on MST 51

52 Indexed priority queue Associate an index between 0 and n 1 with each key in a priority queue. Insert a key associated with a given index. Delete a minimum key and return associated index. Decrease the key associated with a given index. for Prim s algorithm, n = V and index = vertex. public class IndexMinPQ<Key extends Comparable<Key>> IndexMinPQ(int n) create indexed PQ with indices 0, 1,, n 1 void insert(int i, Key key) associate key with index i int delmin() remove a minimal key and return its associated index void decreasekey(int i, Key key) decrease the key associated with index i boolean contains(int i) is i an index on the priority queue? boolean isempty() is the priority queue empty? int size() number of keys in the priority queue 52

53 Indexed priority queue: implementation Binary heap implementation. [see Section 2.4 of textbook] Start with same code as MinPQ. Maintain parallel arrays so that: keys[i] is the priority of vertex i qp[i] is the heap position of vertex i pq[i] is the index of the key in heap position i Use swim(qp[i]) to implement decreasekey(i, key). decrease key of vertex 2 to C i keys[i] A S O R T I N G - qp[i] pq[i] N 1 A 2 3 G vertex 2 is at heap index 4 8 R O S I T

54 Prim s algorithm: which priority queue? Depends on PQ implementation: V INSERT, V DELETE-MIN, E DECREASE-KEY. PQ implementation INSERT INSERT-MIN DECREASE-KEY total unordered array 1 V 1 V 2 Bottom line. binary heap log V log V log V E log V d-way heap log d V d log d V log d V E log E/V V Fibonacci heap 1 log V 1 E + V log V amortized Array implementation optimal for complete graphs. Binary heap much faster for sparse graphs. 4-way heap worth the trouble in performance-critical situations. Fibonacci heap best in theory, but not worth implementing. 54

55 4.3 MINIMUM SPANNING TREES Algorithms ROBERT SEDGEWICK KEVIN WAYNE introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm context

56 Does a linear-time MST algorithm exist? year worst case discovered by 1975 E log log V Yao 1976 E log log V Cheriton Tarjan 1984 E log* V, E + V log V Fredman Tarjan 1986 E log (log* V) Gabow Galil Spencer Tarjan 1997 E α(v) log α(v) Chazelle 2000 E α(v) Chazelle 2002 optimal Pettie Ramachandran 20xx E??? deterministic compare-based MST algorithms Remark. Linear-time randomized MST algorithm (Karger Klein Tarjan). 56

57 Euclidean MST Given n points in the plane, find MST connecting them, where the distances between point pairs are their Euclidean distances. Brute force. Compute ~ n 2 / 2 distances and run Prim s algorithm. Ingenuity. Exploit geometry; n log n using Delaunay triangulation. 57

58 MINIMUM BOTTLENECK SPANNING TREE Problem. Given an edge-weighted graph G, find a spanning tree that minimizes the maximum weight of its edges. Running time. E log E (or better) Note: not necessarily a MST 21 minimum bottleneck spanning tree T (bottleneck = 9) 58

Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm

Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction cut property edge-weighted graph API Kruskal s algorithm Prim s algorithm Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.3 MINIMUM SPANNING TREES Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE introduction cut property edge-weighted graph API Kruskal s algorithm

More information

Algorithms. Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES

Algorithms. Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES Algorithms ROBERT SEDGEWICK KEVIN WAYNE. MINIMUM SPANNING TREES. MINIMUM SPANNING TREES Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE http://algs.cs.princeton.edu introduction greedy

More information

Algorithms 4.3 MINIMUM SPANNING TREES. edge-weighted graph API greedy algorithm Kruskal's algorithm Prim's algorithm advanced topics

Algorithms 4.3 MINIMUM SPANNING TREES. edge-weighted graph API greedy algorithm Kruskal's algorithm Prim's algorithm advanced topics 4.3 MINIMUM SPANNING TREES Algorithms F O U R T H E D I T I O N edge-weighted graph API greedy algorithm Kruskal's algorithm Prim's algorithm advanced topics R O B E R T S E D G E W I C K K E V I N W A

More information

Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction greedy algorithm edge-weighted graph API Kruskal's algorithm Prim's algorithm context

Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction greedy algorithm edge-weighted graph API Kruskal's algorithm Prim's algorithm context Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.3 MINIMUM SPANNING TREES Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE http://algs4.cs.princeton.edu introduction greedy algorithm edge-weighted

More information

graph G not connected

graph G not connected Algorithms ROBERT SEDGEWICK KEVIN WAYNE. MINIMUM SPANNING TREES. MINIMUM SPANNING TREES introduction introduction Algorithms F O U R T H E D I T I O N greedy algorithm edge-weighted graph API Kruskal's

More information

Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction greedy algorithm edge-weighted graph API Kruskal's algorithm Prim's algorithm context

Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction greedy algorithm edge-weighted graph API Kruskal's algorithm Prim's algorithm context Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.3 MINIMUM SPANNING TREES Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE http://algs4.cs.princeton.edu introduction greedy algorithm edge-weighted

More information

Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction greedy algorithm edge-weighted graph API Kruskal's algorithm Prim's algorithm context

Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES. introduction greedy algorithm edge-weighted graph API Kruskal's algorithm Prim's algorithm context Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.3 MINIMUM SPANNING TREES Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE http://algs4.cs.princeton.edu introduction greedy algorithm edge-weighted

More information

Algorithms. Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES

Algorithms. Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES Announcements Algorithms ROBERT SEDGEWICK KEVIN WAYNE Exam Regrades Due by Wednesday s lecture. Teaching Experiment: Dynamic Deadlines (WordNet) Right now, WordNet is due at PM on April 8th. Starting Tuesday

More information

COMP 355 Advanced Algorithms

COMP 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 information

Chapter 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. Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 4.5 Minimum Spanning Tree Minimum Spanning Tree Minimum spanning tree. Given a connected

More information

Chapter 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. Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 4.5 Minimum Spanning Tree Minimum Spanning Tree Minimum spanning tree. Given a connected

More information

Chapter 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. Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 4.5 Minimum Spanning Tree Minimum Spanning Tree Minimum spanning tree. Given a connected

More information

Algorithms. Algorithms 4.4 SHORTEST PATHS. APIs properties Bellman Ford algorithm Dijkstra s algorithm ROBERT SEDGEWICK KEVIN WAYNE

Algorithms. Algorithms 4.4 SHORTEST PATHS. APIs properties Bellman Ford algorithm Dijkstra s algorithm ROBERT SEDGEWICK KEVIN WAYNE Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.4 SHORTEST PATHS Algorithms F O U R T H E D I T I O N APIs properties Bellman Ford algorithm Dijkstra s algorithm ROBERT SEDGEWICK KEVIN WAYNE https://algs4.cs.princeton.edu

More information

Chapter 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. Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 4.5 Minimum Spanning Tree Minimum Spanning Tree Minimum spanning tree. Given a connected

More information

Minimum Spanning Trees

Minimum Spanning Trees Minimum Spanning Trees Minimum Spanning Trees Representation of Weighted Graphs Properties of Minimum Spanning Trees Prim's Algorithm Kruskal's Algorithm Philip Bille Minimum Spanning Trees Minimum Spanning

More information

4.4 Shortest Paths. Dijkstra's algorithm implementation acyclic networks negative weights. Reference: Algorithms in Java, 4 th edition, Section 4.

4.4 Shortest Paths. Dijkstra's algorithm implementation acyclic networks negative weights. Reference: Algorithms in Java, 4 th edition, Section 4. 4.4 Shortest Paths Dijkstra's algorithm implementation acyclic networks negative weights Reference: Algorithms in Java, 4 th edition, Section 4.4 Algorithms in Java, 4 th Edition Robert Sedgewick and Kevin

More information

Minimum Spanning Trees. Minimum Spanning Trees. Minimum Spanning Trees. Minimum Spanning Trees

Minimum Spanning Trees. Minimum Spanning Trees. Minimum Spanning Trees. Minimum Spanning Trees Properties of Properties of Philip Bille 0 0 Graph G Not connected 0 0 Connected and cyclic Connected and acyclic = spanning tree Total weight = + + + + + + = Applications Network design. Computer, road,

More information

Chapter 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. Chapter 4 Greedy Algorithms Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 4.5 Minimum Spanning Tree Minimum Spanning Tree Minimum spanning tree. Given a connected

More information

4. GREEDY ALGORITHMS II

4. GREEDY ALGORITHMS II 4. GREEDY ALGORITHMS II Dijkstra s algorithm minimum spanning trees Prim, Kruskal, Boruvka single-link clustering min-cost arborescences Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley

More information

CMSC 132: Object-Oriented Programming II. Shortest Paths

CMSC 132: Object-Oriented Programming II. Shortest Paths CMSC 13: Object-Oriented Programming II Shortest Paths 1 Quiz 1 One advantage of adjacency list representation over adjacency matrix representation of a graph is that in adjacency list representation,

More information

Lecture 10: Analysis of Algorithms (CS ) 1

Lecture 10: Analysis of Algorithms (CS ) 1 Lecture 10: Analysis of Algorithms (CS583-002) 1 Amarda Shehu November 05, 2014 1 Some material adapted from Kevin Wayne s Algorithm Class @ Princeton 1 Topological Sort Strongly Connected Components 2

More information

6.4 Maximum Flow. overview Ford-Fulkerson implementations applications

6.4 Maximum Flow. overview Ford-Fulkerson implementations applications 6.4 Maximum Flow overview Ford-Fulkerson implementations applications Algorithms, 4 th Edition Robert Sedgewick and Kevin Wayne Copyright 2002 2010 April 18, 2011 11:02:27 AM Mincut problem Given. A weighted

More information

Minimum Spanning Trees My T. UF

Minimum 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 information

CIS 121 Data Structures and Algorithms Minimum Spanning Trees

CIS 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 information

Introduction to Algorithms

Introduction to Algorithms Introduction to Algorithms, Lecture 1 /1/200 Introduction to Algorithms.04J/1.401J LECTURE 11 Graphs, MST, Greedy, Prim Graph representation Minimum spanning trees Greedy algorithms hallmarks. Greedy choice

More information

4. GREEDY ALGORITHMS II

4. GREEDY ALGORITHMS II 4. GREEDY ALGORITHMS II Dijkstra s algorithm minimum spanning trees Prim, Kruskal, Boruvka single-link clustering min-cost arborescences Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley

More information

Algorithms after Dijkstra and Kruskal for Big Data. User Manual

Algorithms after Dijkstra and Kruskal for Big Data. User Manual Algorithms after Dijkstra and Kruskal for Big Data User Manual Ovak Technologies 2016 Contents 1. Introduction... 3 1.1. Definition and Acronyms... 3 1.2. Purpose... 3 1.3. Overview... 3 2. Algorithms...

More information

Introduction to Algorithms

Introduction 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 information

Introduction to Algorithms

Introduction 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 information

Design and Analysis of Algorithms

Design and Analysis of Algorithms CSE 101, Winter 2018 Design and Analysis of Algorithms Lecture 9: Minimum Spanning Trees Class URL: http://vlsicad.ucsd.edu/courses/cse101-w18/ Goal: MST cut and cycle properties Prim, Kruskal greedy algorithms

More information

Decreasing 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(,, ) 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 information

Algorithms for Minimum Spanning Trees

Algorithms for Minimum Spanning Trees Algorithms & Models of Computation CS/ECE, Fall Algorithms for Minimum Spanning Trees Lecture Thursday, November, Part I Algorithms for Minimum Spanning Tree Sariel Har-Peled (UIUC) CS Fall / 6 Sariel

More information

22 Elementary Graph Algorithms. There are two standard ways to represent a

22 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 information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II DIRECTED GRAPHS Graphs slides are modified from COS 126 slides of Dr. Robert Sedgewick. 1 Directed graphs Digraph Set of vertices connected pairwise by directed

More information

Minimum Spanning Trees

Minimum 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 information

Minimum-Spanning-Tree problem. Minimum Spanning Trees (Forests) Minimum-Spanning-Tree problem

Minimum-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 information

Notes on Minimum Spanning Trees. Red Rule: Given a cycle containing no red edges, select a maximum uncolored edge on the cycle, and color it red.

Notes on Minimum Spanning Trees. Red Rule: Given a cycle containing no red edges, select a maximum uncolored edge on the cycle, and color it red. COS 521 Fall 2009 Notes on Minimum Spanning Trees 1. The Generic Greedy Algorithm The generic greedy algorithm finds a minimum spanning tree (MST) by an edge-coloring process. Initially all edges are uncolored.

More information

22 Elementary Graph Algorithms. There are two standard ways to represent a

22 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 information

CS60020: Foundations of Algorithm Design and Machine Learning. Sourangshu Bhattacharya

CS60020: Foundations of Algorithm Design and Machine Learning. Sourangshu Bhattacharya CS60020: Foundations of Algorithm Design and Machine Learning Sourangshu Bhattacharya Graphs (review) Definition. A directed graph (digraph) G = (V, E) is an ordered pair consisting of a set V of vertices

More information

Algorithm Design and Analysis

Algorithm Design and Analysis Algorithm Design and Analysis LECTURE 10 Implementing MST Algorithms Adam Smith Minimum spanning tree (MST) Input: A connected undirected graph G = (V, E) with weight function w : E R. For now, assume

More information

Week 11: Minimum Spanning trees

Week 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 information

COS 226 Algorithms and Data Structures Practice Design Questions

COS 226 Algorithms and Data Structures Practice Design Questions COS 226 Algorithms & Data Structures p. 1/5 COS 226 Algorithms and Data Structures Practice Design Questions Version: May 1, 2017 Exercise 1 Shortest-Princeton-Path (Final Spring 2011) Consider the following

More information

COS 226 Lecture 19: Minimal Spanning Trees (MSTs) PFS BFS and DFS examples. Classic algorithms for solving a natural problem

COS 226 Lecture 19: Minimal Spanning Trees (MSTs) PFS BFS and DFS examples. Classic algorithms for solving a natural problem COS Lecture 9: Minimal Spanning Trees (MSTs) PFS BFS and DFS examples Classic algorithms for solving a natural problem MINIMAL SPANNING TREE Kruskal s algorithm Prim s algorithm Boruvka s algorithm Long

More information

Minimum Spanning Trees Shortest Paths

Minimum Spanning Trees Shortest Paths Minimum Spanning Trees Shortest Paths Minimum Spanning Tree Given a set of locations, with positive distances to each other, we want to create a network that connects all nodes to each other with minimal

More information

Minimum Spanning Trees

Minimum Spanning Trees CSMPS 2200 Fall Minimum Spanning Trees Carola Wenk Slides courtesy of Charles Leiserson with changes and additions by Carola Wenk 11/6/ CMPS 2200 Intro. to Algorithms 1 Minimum spanning trees Input: A

More information

Chapter 9 Graph Algorithms

Chapter 9 Graph Algorithms Chapter 9 Graph Algorithms 2 Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures 3 Definitions an undirected graph G = (V, E) is a

More information

Algorithm Design (8) Graph Algorithms 1/2

Algorithm 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 information

Chapter 9 Graph Algorithms

Chapter 9 Graph Algorithms Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures Chapter 9 Graph s 2 Definitions Definitions an undirected graph is a finite set

More information

Week 12: Minimum Spanning trees and Shortest Paths

Week 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 information

III Optimal Trees and Branchings

III Optimal Trees and Branchings Efficient Graph Algorithms III Optimal Trees and Branchings III Optimal Trees and Branchings 4 1 3 2 2 8 7 3 8 Efficient Graph Algorithms Wolfgang Stille WS 2011/2012 Chapter III - Optimal Trees and Branchings

More information

Undirected Graphs. DSA - lecture 6 - T.U.Cluj-Napoca - M. Joldos 1

Undirected 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 information

2 A Template for Minimum Spanning Tree Algorithms

2 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 information

Minimum Spanning Trees COSC 594: Graph Algorithms Spring By Kevin Chiang and Parker Tooley

Minimum Spanning Trees COSC 594: Graph Algorithms Spring By Kevin Chiang and Parker Tooley Minimum Spanning Trees COSC 594: Graph Algorithms Spring 2017 By Kevin Chiang and Parker Tooley Test Questions 1. What is one NP-Hard problem for which Minimum Spanning Trees is a good approximation for?

More information

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API depth-first search breadth-first search topological sort strong components

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API depth-first search breadth-first search topological sort strong components Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.2 DIRECTED GRAPHS Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE http://algs4.cs.princeton.edu introduction digraph API depth-first search breadth-first

More information

1 Minimum Spanning Trees: History

1 Minimum Spanning Trees: History -80: Advanced Algorithms CMU, Spring 07 Lecture #: Deterministic MSTs January, 07 Lecturer: Anupam Gupta Scribe: Anshu Bansal, C.J. Argue Minimum Spanning Trees: History The minimum spanning tree problem

More information

CSC 8301 Design & Analysis of Algorithms: Kruskal s and Dijkstra s Algorithms

CSC 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 information

Algorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree

Algorithms 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 information

Algorithms and Theory of Computation. Lecture 5: Minimum Spanning Tree

Algorithms 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 information

CSE331 Introduction to Algorithms Lecture 15 Minimum Spanning Trees

CSE331 Introduction to Algorithms Lecture 15 Minimum Spanning Trees CSE1 Introduction to Algorithms Lecture 1 Minimum Spanning Trees Antoine Vigneron antoine@unist.ac.kr Ulsan National Institute of Science and Technology July 11, 201 Antoine Vigneron (UNIST) CSE1 Lecture

More information

Reference Sheet for CO142.2 Discrete Mathematics II

Reference Sheet for CO142.2 Discrete Mathematics II Reference Sheet for CO14. Discrete Mathematics II Spring 017 1 Graphs Defintions 1. Graph: set of N nodes and A arcs such that each a A is associated with an unordered pair of nodes.. Simple graph: no

More information

Minimum Spanning Trees

Minimum Spanning Trees Course Trees - the ubiquitous structure in computer science and mathematics, JASS 08 Minimum Spanning Trees Maximilian Schlund Fakultät für Informatik TU München April 20, 2008 Maximilian Schlund: Minimum

More information

6.1 Minimum Spanning Trees

6.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 information

Priority Queues 1 / 15

Priority Queues 1 / 15 Priority Queues 1 / 15 Outline 1 API 2 Elementary Implementations 3 Heap Definitions 4 Algorithms on Heaps 5 Heap Sort 6 Heap Sort and Other Sorts 2 / 15 API Many applications require that we process items

More information

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API digraph search topological sort strong components ROBERT SEDGEWICK KEVIN WAYNE

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API digraph search topological sort strong components ROBERT SEDGEWICK KEVIN WAYNE Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.2 DIRECTED GRAPHS Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE introduction digraph API digraph search topological sort strong components

More information

CS 561, Lecture 9. Jared Saia University of New Mexico

CS 561, Lecture 9. Jared Saia University of New Mexico CS 561, Lecture 9 Jared Saia University of New Mexico Today s Outline Minimum Spanning Trees Safe Edge Theorem Kruskal and Prim s algorithms Graph Representation 1 Graph Definition A graph is a pair of

More information

Announcements Problem Set 5 is out (today)!

Announcements Problem Set 5 is out (today)! CSC263 Week 10 Announcements Problem Set is out (today)! Due Tuesday (Dec 1) Minimum Spanning Trees The Graph of interest today A connected undirected weighted graph G = (V, E) with weights w(e) for each

More information

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API digraph search topological sort strong components ROBERT SEDGEWICK KEVIN WAYNE

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API digraph search topological sort strong components ROBERT SEDGEWICK KEVIN WAYNE Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.2 DIRECTED GRAPHS Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE introduction digraph API digraph search topological sort strong components

More information

Autumn Minimum Spanning Tree Disjoint Union / Find Traveling Salesman Problem

Autumn Minimum Spanning Tree Disjoint Union / Find Traveling Salesman Problem Autumn Minimum Spanning Tree Disjoint Union / Find Traveling Salesman Problem Input: Undirected Graph G = (V,E) and a cost function C from E to the reals. C(e) is the cost of edge e. Output: A spanning

More information

cs2010: algorithms and data structures

cs2010: algorithms and data structures cs2010: algorithms and data structures Lecture 9: Priority Queues Vasileios Koutavas School of Computer Science and Statistics Trinity College Dublin Algorithms ROBERT SEDGEWICK KEVIN WAYNE 2.4 PRIORITY

More information

UC 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, 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 information

GRAPHS (Undirected) Graph: Set of objects with pairwise connections. Why study graph algorithms?

GRAPHS (Undirected) Graph: Set of objects with pairwise connections. Why study graph algorithms? GRAPHS (Undirected) Graph: Set of objects with pairwise connections. Why study graph algorithms? Interesting and broadly useful abstraction. Challenging branch of computer science and discrete math. Hundreds

More information

! Interesting and broadly useful abstraction. ! Challenging branch of computer science and discrete math. ! Hundreds of graph algorithms known.

! Interesting and broadly useful abstraction. ! Challenging branch of computer science and discrete math. ! Hundreds of graph algorithms known. Undirected Graphs Undirected Graphs Graph. Set of objects with pairwise connections. Why study graph algorithms?! Interesting and broadly useful abstraction.! Challenging branch of computer science and

More information

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API depth-first search breadth-first search topological sort strong components

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API depth-first search breadth-first search topological sort strong components Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.2 DIRECTED GRAPHS Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE https://algs4.cs.princeton.edu introduction digraph API depth-first search

More information

Design and Analysis of Algorithms

Design and Analysis of Algorithms CSE 101, Winter 018 D/Q Greed SP s DP LP, Flow B&B, Backtrack Metaheuristics P, NP Design and Analysis of Algorithms Lecture 8: Greed Class URL: http://vlsicad.ucsd.edu/courses/cse101-w18/ Optimization

More information

Review of Graph Theory. Gregory Provan

Review of Graph Theory. Gregory Provan Review of Graph Theory Gregory Provan Overview Need for graphical models of computation Cloud computing Data centres Telecommunications networks Graph theory Graph Models for Cloud Computing Integration

More information

2.1 Greedy Algorithms. 2.2 Minimum Spanning Trees. CS125 Lecture 2 Fall 2016

2.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 information

CSC 1700 Analysis of Algorithms: Minimum Spanning Tree

CSC 1700 Analysis of Algorithms: Minimum Spanning Tree CSC 1700 Analysis of Algorithms: Minimum Spanning Tree Professor Henry Carter Fall 2016 Recap Space-time tradeoffs allow for faster algorithms at the cost of space complexity overhead Dynamic programming

More information

4.5 Minimum Spanning Tree. Minimo albero di copertura o ricoprimento

4.5 Minimum Spanning Tree. Minimo albero di copertura o ricoprimento 4.5 Minimum Spanning Tree Minimo albero di copertura o ricoprimento Minimum Spanning Tree (MST) Minimum spanning tree. Given a connected graph G = (V, E) with real-valued edge weights c e, an MST is a

More information

Minimum Spanning Trees

Minimum 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 information

Greedy 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 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 information

Algorithms. Algorithms 1.5 UNION FIND. union find data type quick-find quick-union improvements applications ROBERT SEDGEWICK KEVIN WAYNE

Algorithms. Algorithms 1.5 UNION FIND. union find data type quick-find quick-union improvements applications ROBERT SEDGEWICK KEVIN WAYNE Algorithms ROBERT SEDGEWICK KEVIN WAYNE 1.5 UNION FIND Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE union find data type quick-find quick-union improvements applications http://algs4.cs.princeton.edu

More information

CSE 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 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 information

Representations of Weighted Graphs (as Matrices) Algorithms and Data Structures: Minimum Spanning Trees. Weighted Graphs

Representations of Weighted Graphs (as Matrices) Algorithms and Data Structures: Minimum Spanning Trees. Weighted Graphs Representations of Weighted Graphs (as Matrices) A B Algorithms and Data Structures: Minimum Spanning Trees 9.0 F 1.0 6.0 5.0 6.0 G 5.0 I H 3.0 1.0 C 5.0 E 1.0 D 28th Oct, 1st & 4th Nov, 2011 ADS: lects

More information

Algorithm Analysis Graph algorithm. Chung-Ang University, Jaesung Lee

Algorithm 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 information

CSE 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 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 information

Chapter 9 Graph Algorithms

Chapter 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 information

COP 4531 Complexity & Analysis of Data Structures & Algorithms

COP 4531 Complexity & Analysis of Data Structures & Algorithms COP 4531 Complexity & Analysis of Data Structures & Algorithms Lecture 9 Minimum Spanning Trees Thanks to the text authors who contributed to these slides Why Minimum Spanning Trees (MST)? Example 1 A

More information

! Vertex = species. ! Edge = from prey to predator.

! Vertex = species. ! Edge = from prey to predator. irected Graphs irected Graphs igraph. Set of objects with oriented pairwise connections. x. One-way street, hyperlink. Reference: Chapter 19, Algorithms in Java, 3 rd dition, Robert Sedgewick. Robert Sedgewick

More information

Directed Graphs. digraph API digraph search transitive closure topological sort strong components. Directed graphs

Directed Graphs. digraph API digraph search transitive closure topological sort strong components. Directed graphs Directed graphs Digraph. Set of vertices connected pairwise by oriented edges. Directed Graphs digraph API digraph search transitive closure topological sort strong components References: Algorithms in

More information

CHAPTER 23. Minimum Spanning Trees

CHAPTER 23. Minimum Spanning Trees CHAPTER 23 Minimum Spanning Trees In the design of electronic circuitry, it is often necessary to make the pins of several components electrically equivalent by wiring them together. To interconnect a

More information

11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions

11/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 information

Chapter 9. Greedy Technique. Copyright 2007 Pearson Addison-Wesley. All rights reserved.

Chapter 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 information

Graphs and Network Flows ISE 411. Lecture 7. Dr. Ted Ralphs

Graphs 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 information

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API digraph search topological sort strong components ROBERT SEDGEWICK KEVIN WAYNE

Algorithms. Algorithms 4.2 DIRECTED GRAPHS. introduction digraph API digraph search topological sort strong components ROBERT SEDGEWICK KEVIN WAYNE Algorithms ROBERT SEDGEWICK KEVIN WAYNE 4.2 DIRECTED GRAPHS Algorithms F O U R T H E D I T I O N ROBERT SEDGEWICK KEVIN WAYNE introduction digraph API digraph search topological sort strong components

More information

Lecture Notes for Chapter 23: Minimum Spanning Trees

Lecture Notes for Chapter 23: Minimum Spanning Trees Lecture Notes for Chapter 23: Minimum Spanning Trees Chapter 23 overview 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

More information

Undirected Graphs. introduction Graph API maze exploration depth-first search breadth-first search connected components challenges.

Undirected Graphs. introduction Graph API maze exploration depth-first search breadth-first search connected components challenges. Undirected Graphs Graph. Set of vertices connected pairwise by edges. Undirected Graphs Why study graph algorithms? Interesting and broadly useful abstraction. Challenging branch of computer science and

More information

CSE 521: Design and Analysis of Algorithms I

CSE 521: Design and Analysis of Algorithms I CSE 521: Design and Analysis of Algorithms I Greedy Algorithms Paul Beame 1 Greedy Algorithms Hard to define exactly but can give general properties Solution is built in small steps Decisions on how to

More information

Minimum-Cost Spanning Tree. Example

Minimum-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 information

Example. Minimum-Cost Spanning Tree. Edge Selection Greedy Strategies. Edge Selection Greedy Strategies

Example. 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 information

Algorithms and Data Structures: Minimum Spanning Trees I and II - Prim s Algorithm. ADS: lects 14 & 15 slide 1

Algorithms and Data Structures: Minimum Spanning Trees I and II - Prim s Algorithm. ADS: lects 14 & 15 slide 1 Algorithms and Data Structures: Minimum Spanning Trees I and II - Prim s Algorithm ADS: lects 14 & 15 slide 1 Weighted Graphs Definition 1 A weighted (directed or undirected graph) is a pair (G, W ) consisting

More information