CSE 417: Algorithms and Computational Complexity. 3.1 Basic Definitions and Applications. Goals. Chapter 3. Winter 2012 Graphs and Graph Algorithms

Similar documents
Chapter 3. Graphs. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

3.1 Basic Definitions and Applications

3.1 Basic Definitions and Applications. Chapter 3. Graphs. Undirected Graphs. Some Graph Applications

Goals! CSE 417: Algorithms and Computational Complexity!

Chapter 3. Graphs CLRS Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Undirected Graphs. V = { 1, 2, 3, 4, 5, 6, 7, 8 } E = { 1-2, 1-3, 2-3, 2-4, 2-5, 3-5, 3-7, 3-8, 4-5, 5-6 } n = 8 m = 11

Copyright 2000, Kevin Wayne 1

Copyright 2000, Kevin Wayne 1

3.4 Testing Bipartiteness

Graph Algorithms. Imran Rashid. Jan 16, University of Washington

CS781 Lecture 2 January 13, Graph Traversals, Search, and Ordering

3.1 Basic Definitions and Applications

Graphs and Graph Algorithms. Slides by Larry Ruzzo

Chapter 3. Graphs CLRS Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.

Algorithm Design and Analysis

Algorithms: Lecture 10. Chalmers University of Technology

3. GRAPHS. Lecture slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley Copyright 2013 Kevin Wayne. Last updated on Sep 8, :19 AM

CSE 421 DFS / Topological Ordering

Lecture 3: Graphs and flows

Algorithm Design and Analysis

CSE 421 Applications of DFS(?) Topological sort

Objec&ves. Wrap up: Implemen&ng BFS and DFS Graph Applica&on: Bipar&te Graphs. Get out your BFS implementa&on handouts. Feb 2, 2018 CSCI211 - Sprenkle

12/5/17. trees. CS 220: Discrete Structures and their Applications. Trees Chapter 11 in zybooks. rooted trees. rooted trees

CS 310 Advanced Data Structures and Algorithms

Graph Algorithms. Definition

Scribes: Romil Verma, Juliana Cook (2015), Virginia Williams, Date: May 1, 2017 and Seth Hildick-Smith (2016), G. Valiant (2017), M.

CS 220: Discrete Structures and their Applications. graphs zybooks chapter 10

Graph Algorithms. Chapter 22. CPTR 430 Algorithms Graph Algorithms 1

implementing the breadth-first search algorithm implementing the depth-first search algorithm

Graph: representation and traversal

Graph Representation

Plan. CMPSCI 311: Introduction to Algorithms. Recall. Adjacency List Representation. DFS Descriptions. BFS Description

Solutions to relevant spring 2000 exam problems

CSE 417: Algorithms and Computational Complexity

Graph. Vertex. edge. Directed Graph. Undirected Graph

Outline. Graphs. Divide and Conquer.

GRAPHS Lecture 17 CS2110 Spring 2014

W4231: Analysis of Algorithms

CS 580: Algorithm Design and Analysis. Jeremiah Blocki Purdue University Spring 2019

Algorithms: Graphs. Amotz Bar-Noy. Spring 2012 CUNY. Amotz Bar-Noy (CUNY) Graphs Spring / 95

COL351: Analysis and Design of Algorithms (CSE, IITD, Semester-I ) Name: Entry number:

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

MA/CSSE 473 Day 12. Questions? Insertion sort analysis Depth first Search Breadth first Search. (Introduce permutation and subset generation)

CSE 331: Introduction to Algorithm Analysis and Design Graphs

Graph Algorithms Using Depth First Search

Fundamental Graph Algorithms Part Four

Adjacent: Two distinct vertices u, v are adjacent if there is an edge with ends u, v. In this case we let uv denote such an edge.

CSI 604 Elementary Graph Algorithms

Algorithms. Graphs. Algorithms

Lecture 10. Elementary Graph Algorithm Minimum Spanning Trees

CS 491 CAP Introduction to Graphs and Search

Graphs. Part I: Basic algorithms. Laura Toma Algorithms (csci2200), Bowdoin College

Algorithm Design and Analysis

Lecture 22 Tuesday, April 10

Graph Algorithms. Andreas Klappenecker. [based on slides by Prof. Welch]

Elementary Graph Algorithms. Ref: Chapter 22 of the text by Cormen et al. Representing a graph:

Homework 2. Sample Solution. Due Date: Thursday, May 31, 11:59 pm

Announcements. CSEP 521 Applied Algorithms. Announcements. Polynomial time efficiency. Definitions of efficiency 1/14/2013

Math.3336: Discrete Mathematics. Chapter 10 Graph Theory

Algorithm Design and Analysis

GRAPHS Lecture 19 CS2110 Spring 2013

Graphs. CSE 2320 Algorithms and Data Structures Alexandra Stefan and Vassilis Athitsos University of Texas at Arlington

Lecture 9 Graph Traversal

Graphs. A graph is a data structure consisting of nodes (or vertices) and edges. An edge is a connection between two nodes

Lecture 10 Graph algorithms: testing graph properties

Graph Theory CS/Math231 Discrete Mathematics Spring2015

LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS

Announcements. HW3 is graded. Average is 81%

Basic Graph Algorithms (CLRS B.4-B.5, )

CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT

Graphs and trees come up everywhere. We can view the internet as a graph (in many ways) Web search views web pages as a graph

Trees. Arash Rafiey. 20 October, 2015

CS4800: Algorithms & Data Jonathan Ullman

CSE 2331/5331. Topic 9: Basic Graph Alg. Representations Basic traversal algorithms Topological sort CSE 2331/5331

CSE 101. Algorithm Design and Analysis Miles Jones Office 4208 CSE Building Lecture 5: SCC/BFS

Varying Applications (examples)

Introduction to Graphs. CS2110, Spring 2011 Cornell University

Problem Score Maximum MC 34 (25/17) = 50 Total 100

Graph Theory. Many problems are mapped to graphs. Problems. traffic VLSI circuits social network communication networks web pages relationship

Chapter 5. Decrease-and-Conquer. Copyright 2007 Pearson Addison-Wesley. All rights reserved.

CS200: Graphs. Prichard Ch. 14 Rosen Ch. 10. CS200 - Graphs 1

v V Question: How many edges are there in a graph with 10 vertices each of degree 6?

CS521 \ Notes for the Final Exam

Applications of BDF and DFS

Elements of Graph Theory

Majority and Friendship Paradoxes

Graph Representations and Traversal

CS 161 Lecture 11 BFS, Dijkstra s algorithm Jessica Su (some parts copied from CLRS) 1 Review

Depth-First Search Depth-first search (DFS) is another way to traverse the graph.

PERFECT MATCHING THE CENTRALIZED DEPLOYMENT MOBILE SENSORS THE PROBLEM SECOND PART: WIRELESS NETWORKS 2.B. SENSOR NETWORKS OF MOBILE SENSORS

Induction Review. Graphs. EECS 310: Discrete Math Lecture 5 Graph Theory, Matching. Common Graphs. a set of edges or collection of two-elt subsets

DFS & STRONGLY CONNECTED COMPONENTS

GRAPHS, GRAPH MODELS, GRAPH TERMINOLOGY, AND SPECIAL TYPES OF GRAPHS

Algorithm Design and Analysis

(Re)Introduction to Graphs and Some Algorithms

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

Chapter 3. Graphs. 3.1 Basic Definitions and Applications

Searching in Graphs (cut points)

Design and Analysis of Algorithms

Konigsberg Bridge Problem

Transcription:

Chapter 3 CSE 417: Algorithms and Computational Complexity Graphs Reading: 3.1-3.6 Winter 2012 Graphs and Graph Algorithms Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. Based on slides by Larry Ruzzo 1 2 Goals Graphs: Definitions, examples, utility, terminology, representation Traversal: Breadth- & Depth-first search 3.1 Basic Definitions and Applications Three Algorithms: Connected Components Bipartiteness Topological sort 3 1

Graphs: Objects & Relationships An extremely important formalism for representing (binary) relationships Exam Scheduling: Classes Two are related if they have students in common Traveling Salesperson Problem: Cities Two are related if can travel directly between them Undirected graph. G = (V, E) Undirected Graphs V = nodes. E = edges between pairs of nodes. Captures pairwise relationship between objects. Graph size parameters: n = V, m = E. V = { 1, 2, 3, 4, 5, 6, 7, 8 } E = { 1-2, 1-3, 2-3, 2-4, 2-5, 3-5, 3-7, 3-8, 4-5, 5-6 } n = 8 m = 11 5 6 Social Network Node: people. Edge: relationship between two people. Food web graph. Ecological Food Web Node = species. Edge = from prey to predator. Reference: http://www.twingroves.district96.k12.il.us/wetlands/salamander/salgraphics/salfoodweb.giff Reference: Valdis Krebs, http://www.firstmonday.org/issues/issue7_4/krebs 7 8 2

# Vertices vs # Edges More Cool Graph Lingo Let G be an undirected graph with n vertices and m edges. How are nand mrelated? Since every edge connects two different vertices (no loops), and no two edges connect the same two vertices (no multi-edges), A graph is called sparseif m << n 2, otherwise it is dense Boundary is somewhat fuzzy; O(n) edges is certainly sparse, Ω(n 2 ) edges is dense. Sparse graphs are common in practice E.g., all planar graphs are sparse (m 3n-6, for n 3) It must be true that: 0 m n(n-1)/2 = O(n 2 ) Q: which is a better run time, O(n+m) or O(n 2 )? A: O(n+m) = O(n 2 ), but n+m usually way better! 9 10 Graph Representation: Adjacency Matrix Adjacency matrix. n-by-n matrix with A uv = 1 if (u, v) is an edge. Two representations of each edge. Space proportional to n 2. Checking if (u, v) is an edge takes Θ(1) time. Identifying all edges takes Θ(n 2 ) time. Graph Representation: Adjacency List Adjacency list. Node indexed array of lists. Two representations of each edge. Space proportional to m + n. Checking if (u, v) is an edge takes O(deg(u)) time. Identifying all edges takes Θ(m + n) time. degree = number of neighbors of u 1 2 3 11 1 2 3 4 5 6 7 8 1 0 1 1 0 0 0 0 0 2 1 0 1 1 1 0 0 0 3 1 1 0 0 1 0 1 1 4 0 1 0 1 1 0 0 0 5 0 1 1 1 0 1 0 0 6 0 0 0 0 1 0 0 0 7 0 0 1 0 0 0 0 1 8 0 0 1 0 0 0 1 0 11 2 3 4 2 5 5 6 7 3 8 8 1 3 4 5 1 2 5 7 8 2 3 4 6 5 3 7 12 3

Paths and Connectivity Def. Apath in an undirected graph G = (V, E) is a sequence P of nodes v 1, v 2,, v k-1, v k with the property that each consecutive pair v i, v i+1 is joined by an edge in E. Def. A path is simple if all nodes are distinct. Cycles Def. Acycle is a path v 1, v 2,, v k-1, v k in which v 1 = v k, k > 2, and the first k-1 nodes are all distinct. Def. An undirected graph is connected if for every pair of nodes u and v, there is a path between u and v. cycle C = 1-2-4-5-3-1 13 14 Trees Def. An undirected graph is a treeif it is connected and does not contain a cycle. Theorem. Let G be an undirected graph on n nodes. Any two of the following statements imply the third. G is connected. G does not contain a cycle. G has n-1 edges. Rooted Trees Rooted tree. Given a tree T, choose a root node r and orient each edge away from r. Importance. Models hierarchical structure. root r parent of v v child of v 15 a tree the same tree, rooted at 1 16 4

Graph Traversal 3.2 Graph Traversal Learn the basic structure of a graph Walk, via edges, from a fixed starting vertex sto all vertices reachable from s Being orderly helps. Two common ways: Breadth-First Search Depth-First Search 18 Breadth-First Search Breadth First Search: Example Idea: Explore from s in all possible directions, layer by layer. BFS algorithm. s L 0 = { s }. L 1 = all neighbors of L 0. L 1 L 2 L n-1 L 2 = all nodes not in L 0 or L 1, and having an edge to a node in L 1. L i+1 = all nodes not in earlier layers, and having an edge to a node in L i. Theorem. For each i, L i consists of all nodes at distance (i.e., min path length) exactly ifrom s. L 0 L 1 L 2 Cor: There is a path from s to t iff t appears in some layer. L 3 19 20 5

BFS(s) Implementation BFS(v) Global initialization: mark all vertices "undiscovered" BFS(s) Mark s "discovered" queue = {s} while queue not empty u = remove_first(queue) for each edge {u,x} if (x is undiscovered) mark x discovered append x on queue mark u fully explored Queue: 1 21 22 BFS(v) BFS(v) Queue: 2 3 Queue: 3 4 23 24 6

BFS(v) BFS(v) Queue: 4 5 6 7 Queue: 5 6 7 8 9 25 26 BFS(v) BFS(v) Queue: 8 9 10 11 Queue: 10 11 12 13 27 28 7

BFS(v) Breadth First Search: Analysis Queue: Theorem. The above implementation of BFS runs in O(??) time if the graph is given by its adjacency representation. 29 Pf. Easy to prove O(n 2 ) running time: After a node is removed from the queue, it never appears in the queue again : while loop runs n times when we consider node u, there are n incident edges (u, v), and we spend O(1) processing each edge 30 Breadth First Search: Analysis Actually runs in O(m + n) time: when we consider node u, there are deg(u) incident edges (u, v) total time processing edges is Σ u V deg(u) = 2m each edge (u, v) is counted exactly twice in sum: once in deg(u) and once in deg(v) Homework Rules Homework 2 is out, due next Wednesday in class. When asked to describe an algorithm, you should give: 1. An English description of the algorithm idea 2. A pseudocodeif the English description is not sufficient to communicate the fundamental details 3. (Optional) An example to illustrate the idea 4. A clear correctness proof if the proof is not a part of the algorithm description 5. A clear analysis of the running 31 32 8

Homework Rules BFS Application: Shortest Paths When asked to prove a statement 1. Make sure all your variables are defined 2. Never write an argument you are not convinced in because this may damage your brain 3. If the proof is long, explain the proof idea before explaining the details Format: Submit each problem on a SEPARATE sheet(s) of paper with your name and the problem number. Your homework will be disregarded if it is not in this format. Due date rule: Late homeworks are not accepted. Tree (solid edges) gives shortest paths from start vertex 4 33 34 0 can label by distances from start all edges connect same/adjacent levels 1 3 2 BFS Application: Shortest Paths Why fuss about trees? Tree (solid edges) gives shortest paths from start vertex 0 1 2 Trees are simpler than graphs So, this is often a good way to approach a graph problem: find a nice tree in the graph, i.e., one such that non-tree edges have some simplifying structure E.g., BFS finds a tree s.t. level-jumps are minimized 3 DFS(next) finds a different tree, but it also has an interesting structure 4 can label by distances from start all edges connect same/adjacent levels 35 36 9

Depth-First Search Depth First Search: Example Idea: Follow the first path you find as far as you can go Back up to last unexplored edge when you reach a dead end, then go as far you can Naturally implemented using a stack 37 38 DFS(s) Implementation Depth First Search: Analysis Theorem. The above implementation of BFS runs in O(m + n)time if the graph is given by its adjacency representation. Pf. Similar ideas to BFS analysis 39 40 10

BFS vs DFS Similarities: Both visit x if and only if there is a path in G from v to x. Edges into then-undiscovered vertices define a tree BFS vs DFS Differences: In the BFS tree, levels reflect minimum distance from the root; not the case for DFS In BFS, all non-tree edges join vertices on the same or adjacent levels while in DFS, all non-tree edges join a vertex and one of its descendants/ancestors in the DFS tree 41 BFS tree DFS tree 42 Graph Search Application: Connected Component Connected component. Find all nodes reachable from s. Graph Search Application: Connected Component Connected component. Find all nodes reachable from s. s R u v it's safe to add v Connected component containing node 1 = { 1, 2, 3, 4, 5, 6, 7, 8 }. Theorem. Upon termination, R is the connected component containing s. BFS = explore in order of distance from s. DFS = explore in a different way. 43 44 11

Bipartite Graphs 3.4 Testing Bipartiteness Def. An undirected graph G = (V, E) is bipartiteif the nodes can be colored red or blue such that every edge has one red and one blue end. Applications. Stable marriage: men = red, women = blue. Scheduling: machines = red, jobs = blue. a bipartite graph 46 Testing Bipartiteness Given a graph G, is it bipartite? Many graph problems become: easier if the underlying graph is bipartite (matching) tractable if the underlying graph is bipartite (independent set) Before attempting to design an algorithm, we need to understand structure of bipartite graphs. An Obstruction to Bipartiteness Lemma. If a graph G is bipartite, it cannot contain an odd length cycle. Pf. Not possible to 2-color the odd cycle, let alone G. v 2 v 3 v 2 v 4 v 1 v 6 v 5 v 4 v 3 v 5 v 6 v 7 v 1 v 7 a bipartite graph G another drawing of G 47 bipartite (2-colorable) not bipartite (not 2-colorable) 48 12

Bipartite Graphs Lemma. Let G be a connected graph, and let L 0,, L k be the layers produced by BFS starting at node s. Exactly one of the following holds. (i) No edge of G joins two nodes of the same layer, and G is bipartite. (ii) An edge of G joins two nodes of the same layer, and G contains an odd-length cycle (and hence is not bipartite). Bipartite Graphs (i) No edge of G joins two nodes of the same layer, and G is bipartite. Pf. Suppose no edge joins two nodes in the same layer. By the properties of a BFS tree, this implies all edges join nodes on adjacent levels. Bipartition: red = nodes on odd levels, blue = nodes on even levels. All edges have differently colored endpoints. L 1 L 2 L 3 L 1 L 2 L 3 Case (i) Case (i) Case (ii) 49 L 1 L 2 L 3 50 Bipartite Graphs (ii) An edge of G joins two nodes of the same layer, and G contains an odd-length cycle (and hence is not bipartite). Obstruction to Bipartiteness Corollary. A graph G is bipartite iff it contain no odd length cycle. Pf. Suppose (x, y) is an edge with x, y in same level L j. Let z = lca(x, y) = lowest common ancestor. Let L i be level containing z. Consider the cycle that takes edge from x to y, then path from y to z, then path from z to x. Its length is 1 + (j-i) + (j-i), which is odd. z = lca(x, y) bipartite (2-colorable) not bipartite (not 2-colorable) 5-cycle C (x, y) path from y to z path from z to x 52 13

Directed Graphs 3.5 Connectivity in Directed Graphs Directed graph. G = (V, E) Edge (u, v) goes from node u to node v. Ex. Web graph -hyperlink points from one web page to another. Directedness of graph is crucial. Modern web search engines exploit hyperlink structure to rank web pages by importance. 54 Graph Search Graph search. BFS extends naturally to directed graphs. Directed reachability. Given a node s, find all nodes reachable from s. Strong Connectivity Def. Node u and v are mutually reachableif there is a path from u to v and also a path from v to u. Def. A graph is strongly connected if every pair of nodes is mutually reachable. Directed s-t shortest path problem. Given two node s and t, what is the length of the shortest path between s and t? strongly connected not strongly connected 55 56 14

Strong Connectivity Lemma. Let s be any node. G is strongly connected iff every node is reachable from s, and s is reachable from every node. Pf. Follows from definition. Let u and v be arbitrary nodes in G 1. Path from u to v: concatenate u-s path with s-v path. 2. Path from v to u: concatenate v-s path with s-u path. s u Strong Connectivity: Algorithm Theorem. Wecan determine if G is strongly connected in O(m + n) time. Pf. 1. Pick any node s. 2. Run BFS from s in G. 3. Run BFS from s in G rev. reverse orientation of every edge in G 4. Return true iffall nodes reached in both BFS executions. 5. Correctness follows immediately from previous lemma. v 57 58 Directed Acyclic Graphs 3.6 DAGs and Topological Ordering Def. An DAGis a directed graph that contains no directed cycles. Ex. Precedence constraints: edge (v i, v j ) means v i must precede v j. Def. A topological order of a directed graph G = (V, E) is an ordering of its nodes as v 1, v 2,, v n so that for every edge (v i, v j ) we have i< j. v 2 v 3 v 6 v 5 v 4 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 7 v 1 a DAG a topological ordering 60 15

Precedence Constraints Edge (v i, v j ) means task v i must occur before v j. Applications Course prerequisites: course v i must be taken before v j Compilation: must compile module v i before v j Job Workflow: output of job v i is part of input to job v j Manufacturing or assembly: sand it before you paint it Spreadsheet evaluation: cell v j depends on v i 61 Directed Acyclic Graphs Lemma. If G has a topological order, then G is a DAG. Pf. (by contradiction) Suppose that G has a topological order v 1,, v n and that G also has a directed cycle C. Let v i be the lowest-indexed node in C, and let v j be the node in C just before v i ; thus (v j, v i ) is an edge. By our choice of i, we have i< j. On the other hand, since (v j, v i ) is an edge and v 1,, v n is a topological order, we must have j < i, a contradiction. the directed cycle C v 1 v i v j v n the supposed topological order: v 1,, v n 62 Directed Acyclic Graphs Lemma. If G has a topological order, then G is a DAG. Q. Does every DAG have a topological ordering? Q. If so, how do we compute one? Directed Acyclic Graphs Lemma. If G is a DAG, then G has a node with no incoming edges. Pf. (by contradiction) Suppose that G is a DAG and every node has at least one incoming edge. Pick any node v, and begin following edges backward from v. Since v has at least one incoming edge (u, v) we can walk backward to u. Repeat same process for u Repeat until we visit a node, say w, twice. Let C denote the sequence of nodes encountered between successive visits to w. C is a cycle. w x u v 63 64 16

Directed Acyclic Graphs Topological Sort Algorithm Lemma. If G is a DAG, then G has a topological ordering. Pf. (by induction on n) Base case: true if n = 1. Given DAG on n > 1 nodes, find a node v with no incoming edges. G -{ v } is a DAG, since deleting v cannot create cycles. By inductive hypothesis, G -{ v } has a topological ordering. Place v first in topological ordering; then append nodes of G -{ v } in topological order. This is valid since v has no incoming edges. 65 v DAG 66 Topological Sorting Algorithm Maintain the following: count[w] = (remaining) number of incoming edges to node w S = set of (remaining) nodes with no incoming edges Initialization: count[w] = 0 for all w count[w]++ for all edges (v,w) O(m + n) Topological Ordering Algorithm: Example v 2 v 3 v 6 v 5 v 4 S = S {w} for all w with count[w]==0 Main loop: while S not empty remove some v from S v 7 v 1 make v next in topoorder O(1) per node for all edges from v to some w O(1) per edge Topological order: decrement count[w] add w to S if count[w] hits 0 Time: O(m + n) (assuming edge-list representation of graph) 67 68 17

Topological Ordering Algorithm: Example Topological Ordering Algorithm: Example v 2 v 3 v 3 v 6 v 5 v 4 v 6 v 5 v 4 v 7 v 7 Topological order: v 1 Topological order: v 1, v 2 69 70 Topological Ordering Algorithm: Example Topological Ordering Algorithm: Example v 6 v 5 v 4 v 6 v 5 v 7 v 7 Topological order: v 1, v 2, v 3 Topological order: v 1, v 2, v 3, v 4 71 72 18

Topological Ordering Algorithm: Example Topological Ordering Algorithm: Example v 6 v 7 v 7 Topological order: v 1, v 2, v 3, v 4, v 5 Topological order: v 1, v 2, v 3, v 4, v 5, v 6 73 74 Topological Ordering Algorithm: Example v 2 v 3 v 6 v 5 v 4 v 1 v 2 v 3 v 4 v 5 v 6 v 7 v 7 v 1 Topological order: v 1, v 2, v 3, v 4, v 5, v 6, v 7. 75 19