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

Similar documents
Introduction to Algorithms

Introduction to Algorithms

Introduction to Algorithms

Minimum Spanning Trees

Minimum Spanning Trees My T. UF

Greedy Algorithms. At each step in the algorithm, one of several choices can be made.

Algorithm Design and Analysis

Minimum Spanning Trees

Computer Science & Engineering 423/823 Design and Analysis of Algorithms

Week 11: Minimum Spanning trees

Minimum Spanning Trees

Minimum Spanning Trees Ch 23 Traversing graphs

Lecture 10. Elementary Graph Algorithm Minimum Spanning Trees

Minimum Spanning Trees

Lecture Notes for Chapter 23: Minimum Spanning Trees

Introduction to Algorithms. Lecture 11

2pt 0em. Computer Science & Engineering 423/823 Design and Analysis of Algorithms. Lecture 04 Minimum-Weight Spanning Trees (Chapter 23)

CS473-Algorithms I. Lecture 13-A. Graphs. Cevdet Aykanat - Bilkent University Computer Engineering Department

Minimum Spanning Trees

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

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

Minimum Spanning Trees

2 A Template for Minimum Spanning Tree Algorithms

Depth-first Search (DFS)

COP 4531 Complexity & Analysis of Data Structures & Algorithms

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

CSE331 Introduction to Algorithms Lecture 15 Minimum Spanning Trees

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

Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 3.. NIL. 2. error new key is greater than current key 6. CASCADING-CUT(, )

Unit 2: Algorithmic Graph Theory

1 Start with each vertex being its own component. 2 Merge two components into one by choosing the light edge

Chapter 23. Minimum Spanning Trees

G205 Fundamentals of Computer Engineering. CLASS 21, Mon. Nov Stefano Basagni Fall 2004 M-W, 1:30pm-3:10pm

Week 12: Minimum Spanning trees and Shortest Paths

Algorithm Design and Analysis

Graph Definitions. In a directed graph the edges have directions (ordered pairs). A weighted graph includes a weight function.

Minimum Spanning Trees and Prim s Algorithm

CSE 431/531: Analysis of Algorithms. Greedy Algorithms. Lecturer: Shi Li. Department of Computer Science and Engineering University at Buffalo

Lecture 10: Analysis of Algorithms (CS ) 1

Minimum Spanning Trees Outline: MST

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

UC Berkeley CS 170: Efficient Algorithms and Intractable Problems Handout 8 Lecturer: David Wagner February 20, Notes 8 for CS 170

Partha Sarathi Manal

Shortest path problems

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

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

Context: Weighted, connected, undirected graph, G = (V, E), with w : E R.

Algorithm Design and Analysis

CHAPTER 23. Minimum Spanning Trees

Randomized Graph Algorithms

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

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

Minimum spanning trees

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

Announcements Problem Set 5 is out (today)!

Analysis of Algorithms, I

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

CSC 1700 Analysis of Algorithms: Minimum Spanning Tree

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

Algorithms. Algorithms. Algorithms 4.3 MINIMUM SPANNING TREES

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

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

Greedy Algorithms CSE 6331

Taking Stock. IE170: Algorithms in Systems Engineering: Lecture 20. Example. Shortest Paths Definitions

Introduction: (Edge-)Weighted Graph

CS 4407 Algorithms Lecture 5: Graphs an Introduction

Graph Algorithms Using Depth First Search

Shortest Path Algorithms

Algorithms for Minimum Spanning Trees

CIS 121 Data Structures and Algorithms Minimum Spanning Trees

23.2 Minimum Spanning Trees

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

CSC 8301 Design & Analysis of Algorithms: Warshall s, Floyd s, and Prim s algorithms

Outline. Computer Science 331. Analysis of Prim's Algorithm

CS 5321: Advanced Algorithms Minimum Spanning Trees. Acknowledgement. Minimum Spanning Trees

Part VI Graph algorithms. Chapter 22 Elementary Graph Algorithms Chapter 23 Minimum Spanning Trees Chapter 24 Single-source Shortest Paths

Graphs. Graph G = (V, E) Types of graphs E = O( V 2 ) V = set of vertices E = set of edges (V V)

We ve done. Introduction to the greedy method Activity selection problem How to prove that a greedy algorithm works Fractional Knapsack Huffman coding

CSE 431/531: Algorithm Analysis and Design (Spring 2018) Greedy Algorithms. Lecturer: Shi Li

5.4 Shortest Paths. Jacobs University Visualization and Computer Graphics Lab. CH : Algorithms and Data Structures 456

Data Structures and Algorithms. Werner Nutt

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

Minimum Spanning Tree (undirected graph)

COMP251: Single source shortest paths

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

CS583 Lecture 09. Jana Kosecka. Graph Algorithms Topological Sort Strongly Connected Component Minimum Spanning Tree

CS 341: Algorithms. Douglas R. Stinson. David R. Cheriton School of Computer Science University of Waterloo. February 26, 2019

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

6.1 Minimum Spanning Trees

CS161 - Minimum Spanning Trees and Single Source Shortest Paths

Graph Representation

CSE 100 Minimum Spanning Trees Prim s and Kruskal

CS420/520 Algorithm Analysis Spring 2009 Lecture 14

CSci 231 Final Review

Dijkstra s Shortest Path Algorithm

Jana Kosecka. Red-Black Trees Graph Algorithms. Many slides here are based on E. Demaine, D. Luebke slides

The minimum spanning tree problem

managing an evolving set of connected components implementing a Union-Find data structure implementing Kruskal s algorithm

1 Minimum Spanning Trees: History

Lecture 5: Graph algorithms 1

Transcription:

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 (singular: vertex), a set E Í V V of edges. In an undirected graph G = (V, E), the edge set E consists of unordered pairs of vertices. In either case, we have E = O(V 2 ). Moreover, if G is connected, then E ³ V 1, which implies that lg E = Q(lgV). (Review CLRS, Appendix B.) November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.2

Adjacency-matrix representation The adjacency matrix of a graph G = (V, E), where V = {1, 2,, n}, is the matrix A[1.. n, 1.. n] given by 1 if (i, j) Î E, A[i, j] = 0 if (i, j) Ï E. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.3

Adjacency-matrix representation The adjacency matrix of a graph G = (V, E), where V = {1, 2,, n}, is the matrix A[1.. n, 1.. n] given by 1 if (i, j) Î E, A[i, j] = 0 if (i, j) Ï E. 22 11 33 44 A 1 2 3 4 1 0 1 1 0 2 0 0 1 0 3 0 0 0 0 4 0 0 1 0 Q(V 2 ) storage Þ dense representation. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.4

Adjacency-list representation An adjacency list of a vertex v Î V is the list Adj[v] of vertices adjacent to v. 22 11 33 44 Adj[1] = {2, 3} Adj[2] = {3} Adj[3] = {} Adj[4] = {3} November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.5

Adjacency-list representation An adjacency list of a vertex v Î V is the list Adj[v] of vertices adjacent to v. 22 11 33 44 Adj[1] = {2, 3} Adj[2] = {3} Adj[3] = {} Adj[4] = {3} For undirected graphs, Adj[v] = degree(v). For digraphs, Adj[v] = out-degree(v). November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.6

Adjacency-list representation An adjacency list of a vertex v Î V is the list Adj[v] of vertices adjacent to v. 22 11 33 44 Adj[1] = {2, 3} Adj[2] = {3} Adj[3] = {} Adj[4] = {3} For undirected graphs, Adj[v] = degree(v). For digraphs, Adj[v] = out-degree(v). Handshaking Lemma: å vîv = 2 E for undirected graphs Þ adjacency lists use Q(V + E) storage a sparse representation (for either type of graph). November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.7

Minimum spanning trees Input: A connected, undirected graph G = (V, E) with weight function w : E R. For simplicity, assume that all edge weights are distinct. (CLRS covers the general case.) November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.8

Minimum spanning trees Input: A connected, undirected graph G = (V, E) with weight function w : E R. For simplicity, assume that all edge weights are distinct. (CLRS covers the general case.) Output: A spanning tree T a tree that connects all vertices of minimum weight: w(t )= å w(u,v). (u,v)ît November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.9

Example of MST 6 12 5 9 14 8 7 15 3 10 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.10

Example of MST 6 12 5 9 14 8 7 15 3 10 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.11

Optimal substructure MST T: (Other edges of G are not shown.) November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.12

Optimal substructure MST T: (Other edges of G are not shown.) Remove any edge (u, v) Î T. u v November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.13

Optimal substructure MST T: (Other edges of G are not shown.) Remove any edge (u, v) Î T. u v November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.14

Optimal substructure MST T: (Other edges of G are not shown.) u T 2 T 1 Remove any edge (u, v) Î T. Then, T is partitioned into two subtrees T 1 and T 2. v November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.15

Optimal substructure MST T: (Other edges of G are not shown.) u T 2 T 1 Remove any edge (u, v) Î T. Then, T is partitioned into two subtrees T 1 and T 2. Theorem. The subtree T 1 is an MST of G 1 = (V 1, E 1 ), the subgraph of G induced by the vertices of T 1 : V 1 = vertices of T 1, E 1 = {(x, y) Î E : x, y Î V 1 }. Similarly for T 2. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.16 v

Proof of optimal substructure Proof. Cut and paste: w(t) = w(u, v) + w(t 1 ) + w(t 2 ). If T 1 were a lower-weight spanning tree than T 1 for G 1, then T = {(u, v)} È T 1 È T 2 would bea lower-weight spanning tree than T for G. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.17

Proof of optimal substructure Proof. Cut and paste: w(t) = w(u, v) + w(t 1 ) + w(t 2 ). If T 1 were a lower-weight spanning tree than T 1 for G 1, then T = {(u, v)} È T 1 È T 2 would bea lower-weight spanning tree than T for G. Do we also have overlapping subproblems? Yes. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.18

Proof of optimal substructure Proof. Cut and paste: w(t) = w(u, v) + w(t 1 ) + w(t 2 ). If T 1 were a lower-weight spanning tree than T 1 for G 1, then T = {(u, v)} È T 1 È T 2 would bea lower-weight spanning tree than T for G. Do we also have overlapping subproblems? Yes. Great, then dynamic programming may work! Yes, but MST exhibits another powerful property which leads to an even more efficient algorithm. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.19

Hallmark for greedy algorithms Greedy-choice property A locally optimal choice is globally optimal. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.20

Hallmark for greedy algorithms Greedy-choice property A locally optimal choice is globally optimal. Theorem. Let T be the MST of G = (V, E), and let A Í V. Suppose that (u, v) Î E is the least-weight edge connecting A to V A. Then, (u, v) Î T. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.21

Proof of theorem Proof. Suppose (u, v) Ï T. Cut and paste. T: v Î A Î V A u (u, v) = least-weight edge connecting A to V A November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.22

Proof of theorem Proof. Suppose (u, v) Ï T. Cut and paste. T: v Î A Î V A u (u, v) = least-weight edge connecting A to V A Consider the unique simple path from u to v in T. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.23

Proof of theorem Proof. Suppose (u, v) Ï T. Cut and paste. T: v Î A Î V A u (u, v) = least-weight edge connecting A to V A Consider the unique simple path from u to v in T. Swap (u, v) with the first edge on this path that connects a vertex in A to a vertex in V A. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.24

Proof of theorem Proof. Suppose (u, v) Ï T. Cut and paste. T : v Î A Î V A u (u, v) = least-weight edge connecting A to V A Consider the unique simple path from u to v in T. Swap (u, v) with the first edge on this path that connects a vertex in A to a vertex in V A. A lighter-weight spanning tree than T results. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.25

Kruskal s Algorithm

Prim s algorithm IDEA: Maintain V A as a priority queue Q. Key each vertex in Q with the weight of the leastweight edge connecting it to a vertex in A. Q V key[v] for all v Î V key[s] 0 for some arbitrary s Î V while Q ¹ Æ do u EXTRACT-MIN(Q) for each v Î Adj[u] do if v Î Q and w(u, v) < key[v] then key[v] w(u, v) p[v] u At the end, {(v, p[v])} forms the MST. November 9, 2005 DECREASE-KEY Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.26

Example of Prim s algorithm Î A Î V A 14 6 12 5 9 7 8 00 15 3 10 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.27

Example of Prim s algorithm Î A Î V A 14 6 12 5 9 7 8 00 15 3 10 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.28

Example of Prim s algorithm Î A Î V A 14 6 12 5 7 7 8 00 9 15 15 3 10 10 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.29

Example of Prim s algorithm Î A Î V A 14 6 12 5 7 7 8 00 9 15 15 3 10 10 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.30

Example of Prim s algorithm Î A Î V A 14 6 12 12 5 5 7 7 8 00 9 15 9 15 3 10 10 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.31

Example of Prim s algorithm Î A Î V A 6 12 12 5 5 7 14 7 8 00 3 10 10 9 15 9 15 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.32

Example of Prim s algorithm Î A Î V A 6 6 12 5 5 7 14 7 8 14 00 3 8 10 9 15 9 15 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.33

Example of Prim s algorithm Î A Î V A 6 6 12 5 5 7 14 7 8 14 00 3 8 10 9 15 9 15 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.34

Example of Prim s algorithm Î A Î V A 6 6 12 5 5 7 14 7 8 14 00 3 8 10 9 15 9 15 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.35

Example of Prim s algorithm Î A Î V A 6 6 12 5 5 7 14 7 8 3 00 3 8 10 9 15 9 15 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.36

Example of Prim s algorithm Î A Î V A 6 6 12 5 5 7 14 7 8 3 00 3 8 10 9 15 9 15 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.37

Example of Prim s algorithm Î A Î V A 6 6 12 5 5 7 14 7 8 3 00 3 8 10 9 15 9 15 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.38

Example of Prim s algorithm Î A Î V A 6 6 12 5 5 7 14 7 8 3 00 3 8 10 9 9 15 15 November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.39

Analysis of Prim Q V key[v] for all v Î V key[s] 0 for some arbitrary s Î V while Q ¹ Æ do u EXTRACT-MIN(Q) for each v Î Adj[u] do if v Î Q and w(u, v) < key[v] then key[v] w(u, v) p[v] u November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.40

Analysis of Prim Q(V) total Q V key[v] for all v Î V key[s] 0 for some arbitrary s Î V while Q ¹ Æ do u EXTRACT-MIN(Q) for each v Î Adj[u] do if v Î Q and w(u, v) < key[v] then key[v] w(u, v) p[v] u November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.41

Analysis of Prim V times Q(V) total Q V key[v] for all v Î V key[s] 0 for some arbitrary s Î V while Q ¹ Æ do u EXTRACT-MIN(Q) for each v Î Adj[u] do if v Î Q and w(u, v) < key[v] then key[v] w(u, v) p[v] u November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.42

Analysis of Prim V times Q(V) total degree(u) times Q V key[v] for all v Î V key[s] 0 for some arbitrary s Î V while Q ¹ Æ do u EXTRACT-MIN(Q) for each v Î Adj[u] do if v Î Q and w(u, v) < key[v] then key[v] w(u, v) p[v] u November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.43

V times Analysis of Prim Q(V) total degree(u) times Q V key[v] for all v Î V key[s] 0 for some arbitrary s Î V while Q ¹ Æ do u EXTRACT-MIN(Q) for each v Î Adj[u] do if v Î Q and w(u, v) < key[v] then key[v] w(u, v) p[v] u Handshaking Lemma Þ Q(E) implicit DECREASE-KEY s. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.44

V times Analysis of Prim Q(V) total degree(u) times Q V key[v] for all v Î V key[s] 0 for some arbitrary s Î V while Q ¹ Æ do u EXTRACT-MIN(Q) for each v Î Adj[u] do if v Î Q and w(u, v) < key[v] then key[v] w(u, v) p[v] u Handshaking Lemma Þ Q(E) implicit DECREASE-KEY s. Time = Q(V) T EXTRACT -MIN + Q(E) T DECREASE -KEY November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.45

Analysis of Prim (continued) Time = Q(V) T EXTRACT -MIN + Q(E) T DECREASE -KEY November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.46

Analysis of Prim (continued) Time = Q(V) T EXTRACT -MIN + Q(E) T DECREASE -KEY Q T EXTRACT -MIN T DECREASE -KEY Total November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.47

Analysis of Prim (continued) Time = Q(V) T EXTRACT -MIN + Q(E) T DECREASE -KEY Q T EXTRACT -MIN T DECREASE -KEY Total array O(V) O(1) O(V 2 ) November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.48

Analysis of Prim (continued) Time = Q(V) T EXTRACT -MIN + Q(E) T DECREASE -KEY Q T EXTRACT -MIN T DECREASE -KEY Total array binary heap O(V) O(1) O(V 2 ) O(lg V) O(lg V) O(E lg V) November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.49

Analysis of Prim (continued) Time = Q(V) T EXTRACT -MIN + Q(E) T DECREASE -KEY Q T EXTRACT -MIN T DECREASE -KEY Total array binary heap Fibonacci heap O(V) O(1) O(V 2 ) O(lg V) O(lg V) amortized O(lg V) O(1) amortized O(E lgv) O(E + V lg V) worst case November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.50

MST algorithms Kruskal s algorithm (see CLRS): Uses the disjoint-set data structure (Lecture 10). Running time = O(E lgv). November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.51

MST algorithms Kruskal s algorithm (see CLRS): Uses the disjoint-set data structure (Lecture 10). Running time = O(E lgv). Best to date: Karger, Klein, and Tarjan [1993]. Randomized algorithm. O(V + E) expected time. November 9, 2005 Copyright 2001-5 by Erik D. Demaine and Charles E. Leiserson L16.52