Applications of BDF and DFS
|
|
- Stuart Andrews
- 5 years ago
- Views:
Transcription
1 January 14, 2016
2 1 Deciding whether a graph is bipartite using BFS. 2 Finding connected components of a graph (both BFS and DFS) works. 3 Deciding whether a digraph is strongly connected. 4 Finding cut points in a graph. 5 Finding a cycle with the shortest length in a digraph. 6 Finding whether a digraph is acyclic and if so finding a topological ordering 7 Deciding whether a digraph is balanced 8 Coloring a digraph using a directed cycle of length 3, 4,.. (similar to 3-coloring)
3 Acyclic Digraphs and Topological Ordering A digraph D is acyclic if it does not contain any directed cycle. D is called DAG (directed acyclic graph).
4 Acyclic Digraphs and Topological Ordering A digraph D is acyclic if it does not contain any directed cycle. D is called DAG (directed acyclic graph). DAG can be used to model the job scheduling with precedence constraint. Suppose we want to schedule a set of jobs {J 1, J 2,..., J n } where there are some dependencies between them (precedence constraint). For certain pair i, j, job J i must be executed before job J j. We want to find an ordering of the jobs respecting the precedence constraints.
5 Topological ordering Let D be a digraph. We say an ordering v 1, v 2,..., v n of the nodes in D is a topological ordering if whenever v i v j is an arc of D, i < j. In other words, all the arcs are forward and there is no backward arc.
6 Topological ordering Let D be a digraph. We say an ordering v 1, v 2,..., v n of the nodes in D is a topological ordering if whenever v i v j is an arc of D, i < j. In other words, all the arcs are forward and there is no backward arc. Lemma Let D be an acyclic digraph. Then D has a node without in-degree.
7 Topological ordering Theorem Let D be a digraph. D has a topological ordering if and only if D is acyclic. Proof. If D contains a directed cycle C then in every ordering of the vertices of C at least one arc is backward. Conversely if D is acyclic we show that there is a topological ordering. We follow AC-Order algorithm. AC-Order(D) 1.If D is empty then return. 2.Else Let v be a node without in neighbor in D. 3. Printout v. 4. Call AC-Order(D v)
8 Topological ordering algorithm using queue AC-Order(D) 1. Initial queue Q to be empty. 2. For every node v set the Indegre[v] to be the number of nodes having arc to v. 3. For every vertex v, If (Indegree[v] = 0 ) { Q.add(v); } 4. While Q is not empty 5. u = Q.delete(); 6. Printout(u); 7. For every arc uw A(D) 8. Indegree[w] = Indegree[w] 1; 9. If (Indeegree[w] = 0) 10 Q.add(w);
9 Topological ordering algorithm using queue AC-Order(D) 1. Initial queue Q to be empty. 2. For every node v set the Indegre[v] to be the number of nodes having arc to v. 3. For every vertex v, If (Indegree[v] = 0 ) { Q.add(v); } 4. While Q is not empty 5. u = Q.delete(); 6. Printout(u); 7. For every arc uw A(D) 8. Indegree[w] = Indegree[w] 1; 9. If (Indeegree[w] = 0) 10 Q.add(w); The AC-Order(D) Algorithms runs in time O( D + E ).
10 Balanced Digraphs Let C be a cycle (induced). We oriented each edge of C (give direction) and we obtain an oriented cycle C We say C is balanced if the number of forward arcs and the number of backward arcs in C are the same (in a clockwise direction). We say digraph D is balanced if each of its oriented cycle is balanced. Alternatively, digraph D is balanced if there is a partitioning V 0, V 1,..., V k 1 of its vertices such that each arc of D is from a vertex in some V i to a vertex in V i+1. Design an algorithm that decides whether a given digraph D is balanced or not.
11 Balanced Checking Balanced (v, level) 1. set l(v) = level; 2. for every unvisited arc vu 3. set visit vu = true. 4. if (l(u) exists && l(u) l(v) + 1) 5. print-out Not balanced 6. exit(1); 7. else 8. Balanced(u, level+1); 9. for every unvisited arc uv 10 set visit uv = true. 11. if (l(u) exists && l(u) l(v) 1) 12. print-out Not balanced 13. exit(1); 14. else 15. Balanced(u, level-1);
12 Directed cycle coloring Let C 3 be a directed cycle on three vertices. V ( C 3 ) = {0, 1, 2} and arcs set A( C 3 ) = {01, 12, 20} We say a digraph D can be colored by C 3 if for every arc uv D whenever u is colored by i (i=0,1,2) then v is colored by i + 1 (sum is mod 3).
13 Directed cycle coloring Let C 3 be a directed cycle on three vertices. V ( C 3 ) = {0, 1, 2} and arcs set A( C 3 ) = {01, 12, 20} We say a digraph D can be colored by C 3 if for every arc uv D whenever u is colored by i (i=0,1,2) then v is colored by i + 1 (sum is mod 3). Design an algorithm that decides whether a given digraph D has a C 3 coloring.
14 Directed cycle coloring Let C 3 be a directed cycle on three vertices. V ( C 3 ) = {0, 1, 2} and arcs set A( C 3 ) = {01, 12, 20} We say a digraph D can be colored by C 3 if for every arc uv D whenever u is colored by i (i=0,1,2) then v is colored by i + 1 (sum is mod 3). Design an algorithm that decides whether a given digraph D has a C 3 coloring. Design an algorithm that decides whether a given digraph D has a C k coloring.
15 Strong Digraphs A digraph D is called strong, if for every two vertices u, v of D there is a directed path from u to v and there is a directed path from v to u. A directed cycle is a strong digraph.
16 Strong Digraphs A digraph D is called strong, if for every two vertices u, v of D there is a directed path from u to v and there is a directed path from v to u. A directed cycle is a strong digraph. A directed cycle is a strong digraph.
17 Strong Digraphs A digraph D is called strong, if for every two vertices u, v of D there is a directed path from u to v and there is a directed path from v to u. A directed cycle is a strong digraph. A directed cycle is a strong digraph. A strong component of D is a maximal subset U of D which is strong.
18 Strong Digraphs A digraph D is called strong, if for every two vertices u, v of D there is a directed path from u to v and there is a directed path from v to u. A directed cycle is a strong digraph. A directed cycle is a strong digraph. A strong component of D is a maximal subset U of D which is strong. Strong components are : S 1 = {a, b, c, j}, S 2 = {d, e}, and S 3 = {f, g, h, i}.
19 Strong Components of a digraph Finding strong components in a digraph. Input: digraph G = (V, E) Output: set of strongly connected components (sets of vertices)
20 Strong Components of a digraph Finding strong components in a digraph. Input: digraph G = (V, E) Output: set of strongly connected components (sets of vertices) Explaining Tarjan s algorithm : 1) The nodes are placed on a stack in the order in which they are visited.
21 Strong Components of a digraph Finding strong components in a digraph. Input: digraph G = (V, E) Output: set of strongly connected components (sets of vertices) Explaining Tarjan s algorithm : 1) The nodes are placed on a stack in the order in which they are visited. 2) When the depth-first search recursively explores a node v and its descendants, we may not popped them from the stack. Because there maybe a node v descendant of u which may have a path to a node earlier on the stack.
22 3) Each node v is assigned a unique integer index(v), The time when v is visited for the first time.
23 3) Each node v is assigned a unique integer index(v), The time when v is visited for the first time. 4) We maintain a value lowlink(v) that represents (roughly speaking) the smallest index of any node known to be reachable from v, including v itself.
24 3) Each node v is assigned a unique integer index(v), The time when v is visited for the first time. 4) We maintain a value lowlink(v) that represents (roughly speaking) the smallest index of any node known to be reachable from v, including v itself. 5) Therefore v must be left on the stack if lowlink(v) < index(v)
25 6) v must be removed as the root of a strongly connected component if lowlink(v) = index(v).
26 6) v must be removed as the root of a strongly connected component if lowlink(v) = index(v). 7) The value lowlink(v) is computed during the depth-first search from v.
27 Strong Components-Tarjan s Algorithm(D) function strongconnect(v) 1. index(v) := index; lowlink(v) := index; 2. index:= index + 1; Stack.push(v) 3. for each arc vw E do 6. if (index(w) is undefined) 7. strongconnect(w) 8. lowlink(v) :=min(lowlink(v), lowlink(w)) 9. else if (w is in Stack) 10. lowlink(v) := min(lowlink(v), index(w)) // If v is a root node, pop the stack for new strong component 11. if (lowlink(v) = index(v)) 12. repeat 13. w := Stack.pop() add w to current strong component 14. until (w = v) 15. output the current strongly component
28 Strong Components-Tarjan s Algorithm(D) 1. index := 0 2. Stack := empty 3. for each v in V do 4. if (index(v) is undefined) 5. strongconnect(v)
29 Biconnected Components Let G = (V, E) be a loop-free connected undirected graph. A vertex v in G is called an articulation point if κ(g v) > κ(g). G v has more connected components than v. A loop-free connected undirected graph with no articulation points is called biconnected.
30 Finding Articulation Points 1) We traverse the graph in DFS (preorder) manner. 2) For vertex x of G define dfi(x) to be the index of x in DFS (time we visit x). If y is a descendant of x then dfi(x) < dfi(y).
31 Finding Articulation Points 1) We traverse the graph in DFS (preorder) manner. 2) For vertex x of G define dfi(x) to be the index of x in DFS (time we visit x). If y is a descendant of x then dfi(x) < dfi(y). 3) Define low(x) = min{dfi(y) y is adjacent in G to either x or a descendant of x}
32 Let z be the parent of x in T. Then : 1) low(x) = dfi(z) : In this case T x contains no vertex that is adjacent to an ancestor of z (by back edge). Hence z is an articulation point of G. If T x contains no articulation points, then T x together with edge zx is a biconnected component of G. Remove T x and the edge xz and apply on the remaining subtree of T.
33 Let z be the parent of x in T. Then : 1) low(x) = dfi(z) : In this case T x contains no vertex that is adjacent to an ancestor of z (by back edge). Hence z is an articulation point of G. If T x contains no articulation points, then T x together with edge zx is a biconnected component of G. Remove T x and the edge xz and apply on the remaining subtree of T. 2) If low(x) < dfi(z) : there is a descendant of z in T x that is joined (by a back edge in G) to an ancestor of z.
34 Algorithm for Articulation Points 1 ) Find a DFS ordering x 1, x 2,..., x n of the vertices of G. 2) Start from x n and continue to x n 1, x n 2,..., x 1 and determine low(x j ) as follows : a) low (x j ) = min{dfi(z) z is adjacent in G to x j } b) If c 1, c 2,..., c m are children of x j, then low(x j ) = min{low (x j ), low (c 1 ), low (c 2 ),..., low (c m )} 3) Let w j be the parent of x j in T. If low(x j ) = dfi(w j ) then w j is an articulation point of G, unless w j is the root of T and w j has no child in T other than x j. Moreover, in either situation the subtree rooted at x j together with the edge w j x j is part of a biconnected component of G.
35 a e d c b(2) d(1) e(4) g f b c(3) a(5) f(6) h g(7) h(8) d(2,1) d(1,1) d d b(1,1) c(1,1) e(1,1) a(4,1) f(1,1) g(6,6) c(3,1) b(2,1) e(4,1) a(5,1) f(6,1) g(7,6) c b f g f a e g h(7,7) h(8,7) h
Searching in Graphs (cut points)
0 November, 0 Breath First Search (BFS) in Graphs In BFS algorithm we visit the verices level by level. The BFS algorithm creates a tree with root s. Once a node v is discovered by BFS algorithm we put
More informationGraph Algorithms Using Depth First Search
Graph Algorithms Using Depth First Search Analysis of Algorithms Week 8, Lecture 1 Prepared by John Reif, Ph.D. Distinguished Professor of Computer Science Duke University Graph Algorithms Using Depth
More informationLecture 3: Graphs and flows
Chapter 3 Lecture 3: Graphs and flows Graphs: a useful combinatorial structure. Definitions: graph, directed and undirected graph, edge as ordered pair, path, cycle, connected graph, strongly connected
More informationGraph Algorithms. Definition
Graph Algorithms Many problems in CS can be modeled as graph problems. Algorithms for solving graph problems are fundamental to the field of algorithm design. Definition A graph G = (V, E) consists of
More informationGraph. Vertex. edge. Directed Graph. Undirected Graph
Module : Graphs Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS E-mail: natarajan.meghanathan@jsums.edu Graph Graph is a data structure that is a collection
More informationUndirected Graphs. Hwansoo Han
Undirected Graphs Hwansoo Han Definitions Undirected graph (simply graph) G = (V, E) V : set of vertexes (vertices, nodes, points) E : set of edges (lines) An edge is an unordered pair Edge (v, w) = (w,
More informationCut vertices, Cut Edges and Biconnected components. MTL776 Graph algorithms
Cut vertices, Cut Edges and Biconnected components MTL776 Graph algorithms Articulation points, Bridges, Biconnected Components Let G = (V;E) be a connected, undirected graph. An articulation point of
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 4 Graphs Definitions Traversals Adam Smith 9/8/10 Exercise How can you simulate an array with two unbounded stacks and a small amount of memory? (Hint: think of a
More informationCopyright 2000, Kevin Wayne 1
Chapter 3 - Graphs Undirected Graphs Undirected graph. G = (V, E) V = nodes. E = edges between pairs of nodes. Captures pairwise relationship between objects. Graph size parameters: n = V, m = E. Directed
More informationGraphs. Part I: Basic algorithms. Laura Toma Algorithms (csci2200), Bowdoin College
Laura Toma Algorithms (csci2200), Bowdoin College Undirected graphs Concepts: connectivity, connected components paths (undirected) cycles Basic problems, given undirected graph G: is G connected how many
More informationDirected Graphs (II) Hwansoo Han
Directed Graphs (II) Hwansoo Han Traversals of Directed Graphs To solve many problems dealing with digraphs, we need to visit vertexes and arcs in a systematic way Depth-first search (DFS) A generalization
More informationUndirected Graphs. V = { 1, 2, 3, 4, 5, 6, 7, 8 } E = { 1-2, 1-3, 2-3, 2-4, 2-5, 3-5, 3-7, 3-8, 4-5, 5-6 } n = 8 m = 11
Chapter 3 - Graphs Undirected Graphs Undirected graph. G = (V, E) V = nodes. E = edges between pairs of nodes. Captures pairwise relationship between objects. Graph size parameters: n = V, m = E. V = {
More informationCS 310 Advanced Data Structures and Algorithms
CS 31 Advanced Data Structures and Algorithms Graphs July 18, 17 Tong Wang UMass Boston CS 31 July 18, 17 1 / 4 Graph Definitions Graph a mathematical construction that describes objects and relations
More informationDepth-First Search Depth-first search (DFS) is another way to traverse the graph.
Depth-First Search Depth-first search (DFS) is another way to traverse the graph. Motivating example: In a video game, you are searching for a path from a point in a maze to the exit. The maze can be modeled
More informationGraph Representations and Traversal
COMPSCI 330: Design and Analysis of Algorithms 02/08/2017-02/20/2017 Graph Representations and Traversal Lecturer: Debmalya Panigrahi Scribe: Tianqi Song, Fred Zhang, Tianyu Wang 1 Overview This lecture
More informationUNIT 5 GRAPH. Application of Graph Structure in real world:- Graph Terminologies:
UNIT 5 CSE 103 - Unit V- Graph GRAPH Graph is another important non-linear data structure. In tree Structure, there is a hierarchical relationship between, parent and children that is one-to-many relationship.
More information15-451/651: Design & Analysis of Algorithms October 5, 2017 Lecture #11: Depth First Search and Strong Components last changed: October 17, 2017
15-451/651: Design & Analysis of Algorithms October 5, 2017 Lecture #11: Depth First Search and Strong Components last changed: October 17, 2017 1 Introduction Depth first search is a very useful technique
More informationAlgorithms: Lecture 10. Chalmers University of Technology
Algorithms: Lecture 10 Chalmers University of Technology Today s Topics Basic Definitions Path, Cycle, Tree, Connectivity, etc. Graph Traversal Depth First Search Breadth First Search Testing Bipartatiness
More informationW4231: Analysis of Algorithms
W4231: Analysis of Algorithms 10/21/1999 Definitions for graphs Breadth First Search and Depth First Search Topological Sort. Graphs AgraphG is given by a set of vertices V and a set of edges E. Normally
More informationInfo 2950, Lecture 16
Info 2950, Lecture 16 28 Mar 2017 Prob Set 5: due Fri night 31 Mar Breadth first search (BFS) and Depth First Search (DFS) Must have an ordering on the vertices of the graph. In most examples here, the
More informationTrees. Arash Rafiey. 20 October, 2015
20 October, 2015 Definition Let G = (V, E) be a loop-free undirected graph. G is called a tree if G is connected and contains no cycle. Definition Let G = (V, E) be a loop-free undirected graph. G is called
More informationMarch 20/2003 Jayakanth Srinivasan,
Definition : A simple graph G = (V, E) consists of V, a nonempty set of vertices, and E, a set of unordered pairs of distinct elements of V called edges. Definition : In a multigraph G = (V, E) two or
More informationLECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS
Department of Computer Science University of Babylon LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS By Faculty of Science for Women( SCIW), University of Babylon, Iraq Samaher@uobabylon.edu.iq
More informationLecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1
CME 305: Discrete Mathematics and Algorithms Instructor: Professor Aaron Sidford (sidford@stanford.edu) January 11, 2018 Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1 In this lecture
More information22.3 Depth First Search
22.3 Depth First Search Depth-First Search(DFS) always visits a neighbour of the most recently visited vertex with an unvisited neighbour. This means the search moves forward when possible, and only backtracks
More informationGraph Algorithms. Imran Rashid. Jan 16, University of Washington
Graph Algorithms Imran Rashid University of Washington Jan 16, 2008 1 / 26 Lecture Outline 1 BFS Bipartite Graphs 2 DAGs & Topological Ordering 3 DFS 2 / 26 Lecture Outline 1 BFS Bipartite Graphs 2 DAGs
More informationCS781 Lecture 2 January 13, Graph Traversals, Search, and Ordering
CS781 Lecture 2 January 13, 2010 Graph Traversals, Search, and Ordering Review of Lecture 1 Notions of Algorithm Scalability Worst-Case and Average-Case Analysis Asymptotic Growth Rates: Big-Oh Prototypical
More informationElementary Graph Algorithms. Ref: Chapter 22 of the text by Cormen et al. Representing a graph:
Elementary Graph Algorithms Ref: Chapter 22 of the text by Cormen et al. Representing a graph: Graph G(V, E): V set of nodes (vertices); E set of edges. Notation: n = V and m = E. (Vertices are numbered
More information3.4 Testing Bipartiteness
3.4 Testing Bipartiteness Bipartite Graphs Def. An undirected graph G = (V, E) is bipartite (2-colorable) if the nodes can be colored red or blue such that no edge has both ends the same color. Applications.
More informationStrongly connected: A directed graph is strongly connected if every pair of vertices are reachable from each other.
Directed Graph In a directed graph, each edge (u, v) has a direction u v. Thus (u, v) (v, u). Directed graph is useful to model many practical problems (such as one-way road in traffic network, and asymmetric
More informationGraph and Digraph Glossary
1 of 15 31.1.2004 14:45 Graph and Digraph Glossary A B C D E F G H I-J K L M N O P-Q R S T U V W-Z Acyclic Graph A graph is acyclic if it contains no cycles. Adjacency Matrix A 0-1 square matrix whose
More informationUNIT IV -NON-LINEAR DATA STRUCTURES 4.1 Trees TREE: A tree is a finite set of one or more nodes such that there is a specially designated node called the Root, and zero or more non empty sub trees T1,
More informationAlgorithmic Aspects of Communication Networks
Algorithmic Aspects of Communication Networks Chapter 5 Network Resilience Algorithmic Aspects of ComNets (WS 16/17): 05 Network Resilience 1 Introduction and Motivation Network resilience denotes the
More informationCOS 423 Lecture14. Robert E. Tarjan 2011
COS 423 Lecture14 Graph Search Robert E. Tarjan 2011 An undirected graph 4 connected components c a b g d e f h i j Vertex j is isolated: no incident edges Undirected graph search G= (V, E) V= vertex set,
More informationGraph Algorithms. Chapter 22. CPTR 430 Algorithms Graph Algorithms 1
Graph Algorithms Chapter 22 CPTR 430 Algorithms Graph Algorithms Why Study Graph Algorithms? Mathematical graphs seem to be relatively specialized and abstract Why spend so much time and effort on algorithms
More informationCSI 604 Elementary Graph Algorithms
CSI 604 Elementary Graph Algorithms Ref: Chapter 22 of the text by Cormen et al. (Second edition) 1 / 25 Graphs: Basic Definitions Undirected Graph G(V, E): V is set of nodes (or vertices) and E is the
More informationUNIT III TREES. A tree is a non-linear data structure that is used to represents hierarchical relationships between individual data items.
UNIT III TREES A tree is a non-linear data structure that is used to represents hierarchical relationships between individual data items. Tree: A tree is a finite set of one or more nodes such that, there
More informationGraph Algorithms. Andreas Klappenecker. [based on slides by Prof. Welch]
Graph Algorithms Andreas Klappenecker [based on slides by Prof. Welch] 1 Directed Graphs Let V be a finite set and E a binary relation on V, that is, E VxV. Then the pair G=(V,E) is called a directed graph.
More informationTrees : Part 1. Section 4.1. Theory and Terminology. A Tree? A Tree? Theory and Terminology. Theory and Terminology
Trees : Part Section. () (2) Preorder, Postorder and Levelorder Traversals Definition: A tree is a connected graph with no cycles Consequences: Between any two vertices, there is exactly one unique path
More informationCSE 417: Algorithms and Computational Complexity. 3.1 Basic Definitions and Applications. Goals. Chapter 3. Winter 2012 Graphs and Graph Algorithms
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.
More informationDFS & STRONGLY CONNECTED COMPONENTS
DFS & STRONGLY CONNECTED COMPONENTS CS 4407 Search Tree Breadth-First Search (BFS) Depth-First Search (DFS) Depth-First Search (DFS) u d[u]: when u is discovered f[u]: when searching adj of u is finished
More informationGraph: representation and traversal
Graph: representation and traversal CISC4080, Computer Algorithms CIS, Fordham Univ. Instructor: X. Zhang! Acknowledgement The set of slides have use materials from the following resources Slides for textbook
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 5 Exploring graphs Adam Smith 9/5/2008 A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne Puzzles Suppose an undirected graph G is connected.
More informationGraphs: basic concepts and algorithms
: basic concepts and algorithms Topics covered by this lecture: - Reminder Trees Trees (in-order,post-order,pre-order) s (BFS, DFS) Denitions: Reminder Directed graph (digraph): G = (V, E), V - vertex
More informationKonigsberg Bridge Problem
Graphs Konigsberg Bridge Problem c C d g A Kneiphof e D a B b f c A C d e g D a b f B Euler s Graph Degree of a vertex: the number of edges incident to it Euler showed that there is a walk starting at
More informationCSE 421 DFS / Topological Ordering
CSE 421 DFS / Topological Ordering Shayan Oveis Gharan 1 Depth First Search 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
More informationProof: if not f[u] < d[v], then u still grey while v is being visited. DFS visit(v) will then terminate before DFS visit(u).
Parenthesis property of DFS discovery and finishing times (Thm 23.6 of CLR): For any two nodes u,v of a directed graph, if d[u] < d[v] (i.e. u discovered before v), either f[v] < f[u] (i.e. visit time
More informationCOL351: Analysis and Design of Algorithms (CSE, IITD, Semester-I ) Name: Entry number:
Name: Entry number: There are 6 questions for a total of 75 points. 1. Consider functions f(n) = 10n2 n + 3 n and g(n) = n3 n. Answer the following: (a) ( 1 / 2 point) State true or false: f(n) is O(g(n)).
More informationCS473-Algorithms I. Lecture 13-A. Graphs. Cevdet Aykanat - Bilkent University Computer Engineering Department
CS473-Algorithms I Lecture 3-A Graphs Graphs A directed graph (or digraph) G is a pair (V, E), where V is a finite set, and E is a binary relation on V The set V: Vertex set of G The set E: Edge set of
More informationNumber Theory and Graph Theory
1 Number Theory and Graph Theory Chapter 6 Basic concepts and definitions of graph theory By A. Satyanarayana Reddy Department of Mathematics Shiv Nadar University Uttar Pradesh, India E-mail: satya8118@gmail.com
More informationGRAPHS Lecture 17 CS2110 Spring 2014
GRAPHS Lecture 17 CS2110 Spring 2014 These are not Graphs 2...not the kind we mean, anyway These are Graphs 3 K 5 K 3,3 = Applications of Graphs 4 Communication networks The internet is a huge graph Routing
More informationInf 2B: Graphs II - Applications of DFS
Inf 2B: Graphs II - Applications of DFS Kyriakos Kalorkoti School of Informatics University of Edinburgh Reminder: Recursive DFS Algorithm dfs(g) 1. Initialise Boolean array visited by setting all entries
More informationTrees and Graphs Shabsi Walfish NYU - Fundamental Algorithms Summer 2006
Trees and Graphs Basic Definitions Tree: Any connected, acyclic graph G = (V,E) E = V -1 n-ary Tree: Tree s/t all vertices of degree n+1 A root has degree n Binary Search Tree: A binary tree such that
More informationDFS Search on Undirected Graphs. Algorithm : Design & Analysis [13]
DFS Search on Undirected Graphs Algorithm : Design & Analysis [13] In the last class Directed Acyclic Graph Topological Order Critical Path Analysis Strongly Connected Component Strong Component and Condensation
More informationElementary Graph Algorithms CSE 6331
Elementary Graph Algorithms CSE 6331 Reading Assignment: Chapter 22 1 Basic Depth-First Search Algorithm procedure Search(G = (V, E)) // Assume V = {1, 2,..., n} // // global array visited[1..n] // visited[1..n]
More informationROOT: A node which doesn't have a parent. In the above tree. The Root is A.
TREE: A tree is a finite set of one or more nodes such that there is a specially designated node called the Root, and zero or more non empty sub trees T 1, T 2...T k, each of whose roots are connected
More informationGraph Representation
Graph Representation Adjacency list representation of G = (V, E) An array of V lists, one for each vertex in V Each list Adj[u] contains all the vertices v such that there is an edge between u and v Adj[u]
More information(Re)Introduction to Graphs and Some Algorithms
(Re)Introduction to Graphs and Some Algorithms Graph Terminology (I) A graph is defined by a set of vertices V and a set of edges E. The edge set must work over the defined vertices in the vertex set.
More informationFundamental Algorithms
Fundamental Algorithms Chapter 8: Graphs Jan Křetínský Winter 2017/18 Chapter 8: Graphs, Winter 2017/18 1 Graphs Definition (Graph) A graph G = (V, E) consists of a set V of vertices (nodes) and a set
More informationCS 341: Algorithms. Douglas R. Stinson. David R. Cheriton School of Computer Science University of Waterloo. February 26, 2019
CS 341: Algorithms Douglas R. Stinson David R. Cheriton School of Computer Science University of Waterloo February 26, 2019 D.R. Stinson (SCS) CS 341 February 26, 2019 1 / 296 1 Course Information 2 Introduction
More informationCS 361 Data Structures & Algs Lecture 15. Prof. Tom Hayes University of New Mexico
CS 361 Data Structures & Algs Lecture 15 Prof. Tom Hayes University of New Mexico 10-12-2010 1 Last Time Identifying BFS vs. DFS trees Can they be the same? Problems 3.6, 3.9, 3.2 details left as homework.
More informationGoals! CSE 417: Algorithms and Computational Complexity!
Goals! CSE : Algorithms and Computational Complexity! Graphs: defns, examples, utility, terminology! Representation: input, internal! Traversal: Breadth- & Depth-first search! Three Algorithms:!!Connected
More information3.1 Basic Definitions and Applications
Graphs hapter hapter Graphs. Basic efinitions and Applications Graph. G = (V, ) n V = nodes. n = edges between pairs of nodes. n aptures pairwise relationship between objects: Undirected graph represents
More informationCS 220: Discrete Structures and their Applications. graphs zybooks chapter 10
CS 220: Discrete Structures and their Applications graphs zybooks chapter 10 directed graphs A collection of vertices and directed edges What can this represent? undirected graphs A collection of vertices
More informationMAL 376: Graph Algorithms I Semester Lecture 1: July 24
MAL 376: Graph Algorithms I Semester 2014-2015 Lecture 1: July 24 Course Coordinator: Prof. B. S. Panda Scribes: Raghuvansh, Himanshu, Mohit, Abhishek Disclaimer: These notes have not been subjected to
More informationAnnouncements. HW3 is graded. Average is 81%
CSC263 Week 9 Announcements HW3 is graded. Average is 81% Announcements Problem Set 4 is due this Tuesday! Due Tuesday (Nov 17) Recap The Graph ADT definition and data structures BFS gives us single-source
More informationUnweighted Graphs & Algorithms
Unweighted Graphs & Algorithms Zachary Friggstad Programming Club Meeting References Chapter 4: Graph (Section 4.2) Chapter 22: Elementary Graph Algorithms Graphs Features: vertices/nodes/dots and edges/links/lines
More informationLecture 10: Strongly Connected Components, Biconnected Graphs
15-750: Graduate Algorithms February 8, 2016 Lecture 10: Strongly Connected Components, Biconnected Graphs Lecturer: David Witmer Scribe: Zhong Zhou 1 DFS Continued We have introduced Depth-First Search
More informationCS2 Algorithms and Data Structures Note 10. Depth-First Search and Topological Sorting
CS2 Algorithms and Data Structures Note 10 Depth-First Search and Topological Sorting In this lecture, we will analyse the running time of DFS and discuss a few applications. 10.1 A recursive implementation
More informationCS 125 Section #6 Graph Traversal and Linear Programs 10/13/14
CS 125 Section #6 Graph Traversal and Linear Programs 10/13/14 1 Depth first search 1.1 The Algorithm Besides breadth first search, which we saw in class in relation to Dijkstra s algorithm, there is one
More information3.1 Basic Definitions and Applications. Chapter 3. Graphs. Undirected Graphs. Some Graph Applications
Chapter 3 31 Basic Definitions and Applications Graphs Slides by Kevin Wayne Copyright 2005 Pearson-Addison Wesley All rights reserved 1 Undirected Graphs Some Graph Applications Undirected graph G = (V,
More informationGraphs. CSE 2320 Algorithms and Data Structures Alexandra Stefan and Vassilis Athitsos University of Texas at Arlington
Graphs CSE 2320 Algorithms and Data Structures Alexandra Stefan and Vassilis Athitsos University of Texas at Arlington 1 Representation Adjacency matrix??adjacency lists?? Review Graphs (from CSE 2315)
More informationCS 161 Lecture 11 BFS, Dijkstra s algorithm Jessica Su (some parts copied from CLRS) 1 Review
1 Review 1 Something I did not emphasize enough last time is that during the execution of depth-firstsearch, we construct depth-first-search trees. One graph may have multiple depth-firstsearch trees,
More informationCS4800: Algorithms & Data Jonathan Ullman
CS4800: Algorithms & Data Jonathan Ullman Lecture 12: Graph Search: BFS Applications, DFS Feb 20, 2018 BFS Review BFS Algorithm: Input: source node! " # =! " % = all neighbors of " # " & = all neighbors
More informationBasic Graph Definitions
CMSC 341 Graphs Basic Graph Definitions A graph G = (V,E) consists of a finite set of vertices, V, and a finite set of edges, E. Each edge is a pair (v,w) where v, w V. V and E are sets, so each vertex
More informationAlgorithms (VII) Yijia Chen Shanghai Jiaotong University
Algorithms (VII) Yijia Chen Shanghai Jiaotong University Review of the Previous Lecture Depth-first search in undirected graphs Exploring graphs explore(g, v) Input: G = (V, E) is a graph; v V Output:
More informationDefinition of Graphs and Trees. Representation of Trees.
Definition of Graphs and Trees. Representation of Trees. Chapter 6 Definition of graphs (I) A directed graph or digraph is a pair G = (V,E) s.t.: V is a finite set called the set of vertices of G. E V
More informationCS/COE 1501 cs.pitt.edu/~bill/1501/ Graphs
CS/COE 1501 cs.pitt.edu/~bill/1501/ Graphs 5 3 2 4 1 0 2 Graphs A graph G = (V, E) Where V is a set of vertices E is a set of edges connecting vertex pairs Example: V = {0, 1, 2, 3, 4, 5} E = {(0, 1),
More informationChapter 3. Graphs. Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 3 Graphs Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 1 3.1 Basic Definitions and Applications Undirected Graphs Undirected graph. G = (V, E) V = nodes. E
More informationBACKGROUND: A BRIEF INTRODUCTION TO GRAPH THEORY
BACKGROUND: A BRIEF INTRODUCTION TO GRAPH THEORY General definitions; Representations; Graph Traversals; Topological sort; Graphs definitions & representations Graph theory is a fundamental tool in sparse
More informationData Structures Brett Bernstein
Data Structures Brett Bernstein Final Review 1. Consider a binary tree of height k. (a) What is the maximum number of nodes? (b) What is the maximum number of leaves? (c) What is the minimum number of
More informationTrees Algorhyme by Radia Perlman
Algorhyme by Radia Perlman I think that I shall never see A graph more lovely than a tree. A tree whose crucial property Is loop-free connectivity. A tree which must be sure to span. So packets can reach
More informationPartially Complemented Representations of Digraphs
Discrete Mathematics and Theoretical Computer Science 5, 2002, 147 168 Partially Complemented Representations of Digraphs Elias Dahlhaus 1 and Jens Gustedt 2 and Ross M. McConnell 3 1 Dept. of Computer
More informationIntroduction to Algorithms
6.006- Introduction to Algorithms Lecture 13 Prof. Constantinos Daskalakis CLRS 22.4-22.5 Graphs G=(V,E) V a set of vertices Usually number denoted by n E VxV a set of edges (pairs of vertices) Usually
More informationMTL 776: Graph Algorithms Lecture : Matching in Graphs
MTL 776: Graph Algorithms Lecture : Matching in Graphs Course Coordinator: Prof. B. S. Panda Note: The note is based on the lectures taken in the class. It is a draft version and may contain errors. It
More informationAlgorithms and Theory of Computation. Lecture 3: Graph Algorithms
Algorithms and Theory of Computation Lecture 3: Graph Algorithms Xiaohui Bei MAS 714 August 20, 2018 Nanyang Technological University MAS 714 August 20, 2018 1 / 18 Connectivity In a undirected graph G
More informationAlgorithms (VII) Yijia Chen Shanghai Jiaotong University
Algorithms (VII) Yijia Chen Shanghai Jiaotong University Review of the Previous Lecture Depth-first search in undirected graphs Exploring graphs explore(g, v) Input: G = (V, E) is a graph; v V Output:
More information12/5/17. trees. CS 220: Discrete Structures and their Applications. Trees Chapter 11 in zybooks. rooted trees. rooted trees
trees CS 220: Discrete Structures and their Applications A tree is an undirected graph that is connected and has no cycles. Trees Chapter 11 in zybooks rooted trees Rooted trees. Given a tree T, choose
More informationGraph Algorithms. Textbook reading. Chapter 3 Chapter 4. CSci 3110 Graph Algorithms 1/41
CSci 3110 Graph Algorithms 1/41 Graph Algorithms Textbook reading Chapter 3 Chapter 4 CSci 3110 Graph Algorithms 2/41 Overview Design principle: Learn the structure of a graph by systematic exploration
More informationMinimum Spanning Trees Ch 23 Traversing graphs
Next: Graph Algorithms Graphs Ch 22 Graph representations adjacency list adjacency matrix Minimum Spanning Trees Ch 23 Traversing graphs Breadth-First Search Depth-First Search 11/30/17 CSE 3101 1 Graphs
More informationGRAPHICAL ALGORITHMS. UNIT _II Lecture-12 Slides No. 3-7 Lecture Slides No Lecture Slides No
GRAPHICAL ALGORITHMS UNIT _II Lecture-12 Slides No. 3-7 Lecture-13-16 Slides No. 8-26 Lecture-17-19 Slides No. 27-42 Topics Covered Graphs & Trees ( Some Basic Terminologies) Spanning Trees (BFS & DFS)
More informationData Structure. IBPS SO (IT- Officer) Exam 2017
Data Structure IBPS SO (IT- Officer) Exam 2017 Data Structure: In computer science, a data structure is a way of storing and organizing data in a computer s memory so that it can be used efficiently. Data
More informationGraph Terminology and Representations
Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Graph Terminology and Representations 1 Graphs A graph is a pair (V, E), where
More informationAlgorithms and Data Structures
Algorithms and Data Structures Graphs 3: Finding Connected Components Marius Kloft Content of this Lecture Finding Connected Components in Undirected Graphs Finding Strongly Connected Components in Directed
More information12 Abstract Data Types
12 Abstract Data Types 12.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT). Define
More informationLecture 10. Elementary Graph Algorithm Minimum Spanning Trees
Lecture 10. Elementary Graph Algorithm Minimum Spanning Trees T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to Algorithms, 3rd Edition, MIT Press, 2009 Sungkyunkwan University Hyunseung Choo
More informationSearch means finding a path or traversal between a start node and one of a set of goal nodes. Search is a study of states and their transitions.
UNIT 3 BASIC TRAVERSAL AND SEARCH TECHNIQUES Search means finding a path or traversal between a start node and one of a set of goal nodes. Search is a study of states and their transitions. Search involves
More informationBrute Force: Selection Sort
Brute Force: Intro Brute force means straightforward approach Usually based directly on problem s specs Force refers to computational power Usually not as efficient as elegant solutions Advantages: Applicable
More informationChapter 3. Graphs CLRS Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved.
Chapter 3 Graphs CLRS 12-13 Slides by Kevin Wayne. Copyright 2005 Pearson-Addison Wesley. All rights reserved. 25 3.4 Testing Bipartiteness Bipartite Graphs Def. An undirected graph G = (V, E) is bipartite
More informationFinding Strongly Connected Components
Yufei Tao ITEE University of Queensland We just can t get enough of the beautiful algorithm of DFS! In this lecture, we will use it to solve a problem finding strongly connected components that seems to
More information