MAL 376: Graph Algorithms I Semester Lecture 1: July 24
|
|
- Tyrone Warner
- 5 years ago
- Views:
Transcription
1 MAL 376: Graph Algorithms I Semester Lecture 1: July 24 Course Coordinator: Prof. B. S. Panda Scribes: Raghuvansh, Himanshu, Mohit, Abhishek Disclaimer: These notes have not been subjected to the usual scrutiny reserved for formal publications. They may be distributed outside this class only with the permission of the Course Coordinator. This lecture s notes describe the concept of depth first search and biconnectivity in graphs. They start by introducing graphs, their preliminaries and other notations that would be used later on to finally give an algorithm to enumerate all the biconnected components in the graph using depth first search. 1.1 Preliminaries A graph is a set of vertices V and edges E V V. A graph is called simple if it has no multiple edges (multiple edges between the same pair of vertices) and self loops (an edge from a vertex to itself). A graph is considered to be undirected if there is no sense of ordering in the vertices of an edge i.e. an edge from a to b is also an edge from b to a, otherwise it is said to be directed. An edge (u, v) is said to be incident on the vertices u and v. The degree of a vertex is the number of edges incident on it. For directed graphs, there are two degrees, an in-degree and a out-degree for every vertex. Henceforth, unless otherwise specified, a use of the term graph would mean an undirected, simple graph. Pictorially, a graph with V = {r, s, u, v, w} and E = {(r, s), (r, v), (r, w), (s, v), (u, v), (u, w)} would be drawn as shown below: Figure 1.1: A Graph A graph (V, E ) is said to be a subgraph of another graph (V, E) if V V and E E. A path is an sequence of edges that connect distinct vertices. A graph is said to be connected if there is a path between any pair of vertices, otherwise it is said to be disconnected. A graph can always be broken down into a set of connected subgraphs that are known as connected components of a graph. We will use the Big-Oh O in our analysis of algorithms. By saying that an algorithm is O(f(n)) in some 1-1
2 1-2 Lecture 1: July 24 input parameter n, we mean that as there exist constants c > 0 and n 0 > 0 such that n > n 0, the total units of time the algorithm would take to terminate will never be more than c f(n). 1.2 Definitions Walk: A walk in the graph G = (V, E) is a finite sequence of the form v i0, e j1, v i1, e j2,..., e jk, v ik, which consists of alternating vertices and edges of G such that all edges e in the sequence are incident on the vertices just before and just after in the sequence. v i0 is said to be the initial vertex and v ik is said to be the terminal vertex. k is called the length of the walk. Trail:Trail is a walk in which there are no repeated edges. Path:Path is a walk in which there are no repeated vertices. Circuit:A circuit is a trail that begins and ends at the same vertex. Cycle: A cycle is a path that begins and ends at the same vertex. Tree: A graph with no cycles is termed a tree. A tree is said to be rooted if one special vertex has been designated the root and unrooted otherwise. Parent: A vertex v is a parent of w in a rooted tree v comes just before w in a path from root to w in the tree. Ancestor: A vertex v is a ancestor of w in a rooted tree if a path from root to w in the tree includes v. Descendant: A vertex v is a descendant of w if w is an ancestor of v in the tree. 1.3 Depth-first Search One of the most basic algorithm to traverse a graph (i.e., to visit all it s vertices and/or edges) is the depth first search(dfs). The basic idea of DFS is, as the name suggests, to search deeper in the graph wherever possible. It explores edges out of the most recently discovered vertex v that still has unexplored edges leaving it. After all the edges of v have been explored, the search backtracks to explore all the yet unexplored edges leaving the vertex from which v was discovered. When it discovers all the vertices that are reachable from the source vertex, it stops. For example, one of the possible ways in which the vertices of a graph could be explored by DFS is shown in Fig 1.2. The numbers indicate the order in which the vertex is visited. Figure 1.1: A DFS traversal For understanding DFS better let us define the concept of colouring of vertices. If a vertex is coloured white then it means it is not visited before. If it is coloured black then it has already been discovered.
3 Lecture 1: July Following is the pseudo code for DFS: DFS (G) : for each vertex u G.V u.color = WHITE for each vertex u G.V if u.color == WHITE DFS-VISIT (G, u) DFS-VISIT (G, u) : for each vertex v G.Adj[u] if v.color == WHITE DFS-VISIT (G, v) u.color = BLACK Any implementation of the above algorithm defines a subset T of edges E. A edge (v, w) is said to be in T if while exploring this edge one of the vertices w was yet to be explored. This subset of edges constitutes a tree called the DFS-tree. The DFS-tree is rooted with its root at the source vertex of the DFS. It is proved in the following theorem that any of the non-tree edges of G connect an ancestor to a descendant in the DFS-tree. Theorem 1.1 All non-tree edges of G connect an ancestor to a descendant in the DFS-tree. Proof: Consider an edge (v, w) of the graph G. Without loss of generality, we can assume that v was visited before w during the DFS. That means when the DFS was called on v, the vertex w was still white. Also, DFS at v would not stop until all its neighbours were black. Since, w is a neighbour of v it implies that it would also be black after DFS at v is over and hence be a descendant of v in the DFS-tree. 1.4 Biconnectivity Having had an idea of depth-first search, we will now start with biconnectivity. As the name suggests, biconnectivity is like connected twice over. A more formal definition is as follows. A connected graph G is said to be biconnected if for all distinct triples of vertices v, w and a, there exists a path connecting v and w that does not go through a. In other words, the connection between v and w does not solely depend on a. There are other paths as well. Infact, every path has such another path to reach from its source to the destination. It directly follows from this that removal of any vertex (along with its incident edges) of G would split G into two connected components. This is true as we can take this vertex as our a and for any other pair of vertices there exists a path not containing a. This path would remain even after removal of a and thus the graph would remain connected. If the graph were not biconnected, so that there exist three distinct vertices v, w and a such that all paths from v to w passed through a, then the removal of a would have split the graph into atleast two connected components. The vertex a in this case would have been called an articulation vertex. We can say that a graph is biconnected if and only if it has no articulation points. Just like we defined the connected components of a graph we can similarly define the biconnected components of a graph. First, we define a relation R on the edges of a graph. Under R, edges e and f are related if
4 1-4 Lecture 1: July 24 either e = f of there exists a cycle that contains both e and f. That the relation is an equivalence relation is easy to see and prove. For each equivalence class E i of this relation, we can also prove that the subgraph induced by it is biconnected. A subgraph of a graph G is said to be induced by a set E of edges if it s vertex set contains exactly those vertices of G that are incident on atleast one edge in E, and its edge set is the set E. Theorem 1.2 Each equivalence class of R induces a biconnected subgraph of G. Proof: Consider any triple v, w and a of vertices in G. Assume for the sake of contradiction that a is an articulation vertex and that all paths from v to w pass through a. Consider any such path. It would have exactly two edges that are incident on a (one coming into and the other going out ). Since these are in the same biconnected component, there has to be a cycle containing these two edges (due to R). If we travel the other way round this cycle we can clearly bypass a and therefore create a path from v to w that does not have a. This is a contradiction as we assumed that there is no such path. Hence, there is no articulation vertex in the induced subgraph which is therefore biconnected. 1.5 Biconnectivity Algorithm Having learnt something about depth-first search and DFS-tree, we can now proceed towards the algorithm that enumerates all biconnected components. But before this, we d first define the LOW and DF SNUMBER of a vertex. The DF SNUMBER of a vertex is the height of that vertex in the DFS-tree. The root has DF SNUMBER - and so on. The LOW of a vertex is defined as: LOW (v) = min ({DF SNUMBER(v)} {DF SNUMBER(w) an edge (x, w) E such that x is a descendant of v and w is an ancestor of v}). To see how this helps, think of checking for articulation vertices in G. The only edge is G would be the tree edges T and those connecting a ancestor to a descendant in the DFS-tree. A vertex in a connected component of G won t be an articulation vertex if and only if after removing it the component is still connected. That means for all children w of v there has to be a edge from a descendant of w to a proper ancestor of v, or LOW (w) < v. The case of v being a root vertex is a special case. A root is an articulation vertex if and only if it has more than one child in the DFS-tree. Hence, using the LOW, we can get the biconnected components. The definition of LOW that we would use in our algorithm is as follows: LOW (v) = min ({DF SNUMBER(v)} {DF SNUMBER(w) an edge (v, w) E such that w is an ancestor of v} {LOW (w) w is a child of v}). That this is equivalent to the definition is easily seen. What we have done is to group all the non-tree edges into two parts, those from v and those from proper descendants of v, and thus incorporated into LOW (w) for each child w of v. Thus calculated, LOW (v) can be used to find articulation vertices of the graph G and even to enumerate its biconnected components. Whenever we find a vertex v and its child w such that LOW (w) DF SNUMBER(v), we know that we have found a subgraph containing a biconnected component. This can be done recursively to enumerate all biconnected components. The data structure we would use for this purpose is a stack. What follows is the pseudocode for the whole process: procedure SEARCHB (v):
5 Lecture 1: July begin mark v old ; DF SNUMBER[v] COUNT ; COUNT COUNT + 1; LOW [v] DF SNUMBER[v]; for each vertex w on L[v] do if w is marked new then begin add (v, w) to T ; F AT HER[w] v; SEARCHB(w) ; if LOW [w] DF SNUMBER[v] then a biconnected component has been found; LOW [v] MIN(LOW [v], LOW [w]); end else if w is not F AT HER[v] then LOW [v] MIN(LOW [v], DF SNUMBER[w]); end If the graph is not connected, this thing is repeated for all the connected components. Algorithm: Finding biconnected components Input: An undirected graph G = (V, E). Output: A list of all the vertices in each biconnected component of G. Method: Initially, set T to φ and COUNT to 1. Also, mark all vertices in V as new. Then, select an arbitrary vertex v 0 in V and call SEARCHB(v 0 ) to build a depth-first spanning tree S = (V, T ) and to compute LOW (v) for each v V. When vertex w is encountered at line 5 of SEARCHB, put edge (v, w) on STACK, a pushdown store of edges, if it is not already there. After discovering a pair (v, w) at line 10 such that w is a son of v and LOW (w) v, pop from STACK all edges upto and including (v, w). These form a biconnected component in G. 1.6 Correctness and Complexity In this section we d analyze the correctness and complexity of the two algorithm, namely the depth-first search and the biconnected component search DFS Theorem 1.3 DFS from the vertex s visits all the vertices that are reachable from s. Proof: For the sake of contradiction, consider a vertex v that is not visited by DFS but is reachable from s. Then there would be a path from s to v. Let w be the first unvisited vertex in that path and u be the vertex
6 1-6 Lecture 1: July 24 just before w. u exists because w s (the source is trivially visited). By our assumption u is visited and w is not. Thus w was not visited when DFS at u was called. But in this case before completion of DFS at u, the edge (u, w) must have been checked and therefore w must have been made visited. This contradicts our assumption. Hence, our original statement stands proved. Since each edge is checked atmost twice, from each of its incident vertices, thus the overall complexity of this algorithm would be O(m) where m is the number of edges Biconnected Components Theorem 1.4 The algorithm presented correctly computes the biconnected components of any graph G. Proof: The proof is by induction on the number of biconnected components b in the graph G. If b = 1, then the algorithm is trivial since the vertices v and w for which LOW (w) v are the root and its only child and so on completion of SEARCHB(w), all edges of G are on stack. Now assume by induction hypothesis, the theorem is true for all graphs with b biconnected components and consider a graph G with b + 1 biconnected components. Lest SEARCHB(w) be the first call of SEARCHB to end with LOW (w) v for a tree edge (v, w). There has to be such a call as there are articulation vertices in the graph. Since no edges have been removed from ST ACK, the set of edges above (v, w) on stack is the set of all edges incident on descendants of w. These edges form a biconnected component as if w was the first vertex to end with LOW (w) v, then all the descendants of w, which end before w, do not satisfy this condition. Thus, the contain no articulation vertices and form a biconnected component (no vertex before w can be in this component as LOW (w) v).on removal of these edges from the ST ACK, the algorithm behaves exactly as if it would on the graph G that is obtained from G after removal of this biconnected component. The induction now follows since G has b biconnected components. By the pseuodocode, it is obvious that the algorithm will have the same complexity as DFS. Therefore, this algorithm is also O(m) if m is number of edges in G.
Graph 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 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 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 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 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 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 informationTrees. 3. (Minimally Connected) G is connected and deleting any of its edges gives rise to a disconnected graph.
Trees 1 Introduction Trees are very special kind of (undirected) graphs. Formally speaking, a tree is a connected graph that is acyclic. 1 This definition has some drawbacks: given a graph it is not trivial
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 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 informationSearching 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 informationData Structures. Elementary Graph Algorithms BFS, DFS & Topological Sort
Data Structures Elementary Graph Algorithms BFS, DFS & Topological Sort 1 Graphs A graph, G = (V, E), consists of two sets: V is a finite non-empty set of vertices. E is a set of pairs of vertices, called
More informationScribes: Romil Verma, Juliana Cook (2015), Virginia Williams, Date: May 1, 2017 and Seth Hildick-Smith (2016), G. Valiant (2017), M.
Lecture 9 Graphs Scribes: Romil Verma, Juliana Cook (2015), Virginia Williams, Date: May 1, 2017 and Seth Hildick-Smith (2016), G. Valiant (2017), M. Wootters (2017) 1 Graphs A graph is a set of vertices
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 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 informationSection Summary. Introduction to Trees Rooted Trees Trees as Models Properties of Trees
Chapter 11 Copyright McGraw-Hill Education. All rights reserved. No reproduction or distribution without the prior written consent of McGraw-Hill Education. Chapter Summary Introduction to Trees Applications
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 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 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 informationFundamental Properties of Graphs
Chapter three In many real-life situations we need to know how robust a graph that represents a certain network is, how edges or vertices can be removed without completely destroying the overall connectivity,
More informationCOT 6405 Introduction to Theory of Algorithms
COT 6405 Introduction to Theory of Algorithms Topic 14. Graph Algorithms 11/7/2016 1 Elementary Graph Algorithms How to represent a graph? Adjacency lists Adjacency matrix How to search a graph? Breadth-first
More information2. CONNECTIVITY Connectivity
2. CONNECTIVITY 70 2. Connectivity 2.1. Connectivity. Definition 2.1.1. (1) A path in a graph G = (V, E) is a sequence of vertices v 0, v 1, v 2,..., v n such that {v i 1, v i } is an edge of G for i =
More informationst-orientations September 29, 2005
st-orientations September 29, 2005 Introduction Let G = (V, E) be an undirected biconnected graph of n nodes and m edges. The main problem this chapter deals with is different algorithms for orienting
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 information(Refer Slide Time: 02.06)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 27 Depth First Search (DFS) Today we are going to be talking
More informationMATH20902: Discrete Maths, Solutions to Problem Set 1. These solutions, as well as the corresponding problems, are available at
MATH20902: Discrete Maths, Solutions to Problem Set 1 These solutions, as well as the corresponding problems, are available at https://bit.ly/mancmathsdiscrete.. (1). The upper panel in the figure below
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 informationγ(ɛ) (a, b) (a, d) (d, a) (a, b) (c, d) (d, d) (e, e) (e, a) (e, e) (a) Draw a picture of G.
MAD 3105 Spring 2006 Solutions for Review for Test 2 1. Define a graph G with V (G) = {a, b, c, d, e}, E(G) = {r, s, t, u, v, w, x, y, z} and γ, the function defining the edges, is given by the table ɛ
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 informationCSE 331: Introduction to Algorithm Analysis and Design Graphs
CSE 331: Introduction to Algorithm Analysis and Design Graphs 1 Graph Definitions Graph: A graph consists of a set of verticies V and a set of edges E such that: G = (V, E) V = {v 0, v 1,..., v n 1 } E
More informationLecture 5: Graphs. Rajat Mittal. IIT Kanpur
Lecture : Graphs Rajat Mittal IIT Kanpur Combinatorial graphs provide a natural way to model connections between different objects. They are very useful in depicting communication networks, social networks
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 informationChapter Summary. Introduction to Trees Applications of Trees Tree Traversal Spanning Trees Minimum Spanning Trees
Trees Chapter 11 Chapter Summary Introduction to Trees Applications of Trees Tree Traversal Spanning Trees Minimum Spanning Trees Introduction to Trees Section 11.1 Section Summary Introduction to Trees
More informationTrees Rooted Trees Spanning trees and Shortest Paths. 12. Graphs and Trees 2. Aaron Tan November 2017
12. Graphs and Trees 2 Aaron Tan 6 10 November 2017 1 10.5 Trees 2 Definition Definition Definition: Tree A graph is said to be circuit-free if, and only if, it has no circuits. A graph is called a tree
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 11: Graphs and Trees. March 23, 2008
Chapter 11: Graphs and Trees March 23, 2008 Outline 1 11.1 Graphs: An Introduction 2 11.2 Paths and Circuits 3 11.3 Matrix Representations of Graphs 4 11.5 Trees Graphs: Basic Definitions Informally, a
More informationApplications of BDF and DFS
January 14, 2016 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
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 information8 Colouring Planar Graphs
8 Colouring Planar Graphs The Four Colour Theorem Lemma 8.1 If G is a simple planar graph, then (i) 12 v V (G)(6 deg(v)) with equality for triangulations. (ii) G has a vertex of degree 5. Proof: For (i),
More informationFigure 4.1: The evolution of a rooted tree.
106 CHAPTER 4. INDUCTION, RECURSION AND RECURRENCES 4.6 Rooted Trees 4.6.1 The idea of a rooted tree We talked about how a tree diagram helps us visualize merge sort or other divide and conquer algorithms.
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 informationSolutions to Midterm 2 - Monday, July 11th, 2009
Solutions to Midterm - Monday, July 11th, 009 CPSC30, Summer009. Instructor: Dr. Lior Malka. (liorma@cs.ubc.ca) 1. Dynamic programming. Let A be a set of n integers A 1,..., A n such that 1 A i n for each
More informationTopics. Trees Vojislav Kecman. Which graphs are trees? Terminology. Terminology Trees as Models Some Tree Theorems Applications of Trees CMSC 302
Topics VCU, Department of Computer Science CMSC 302 Trees Vojislav Kecman Terminology Trees as Models Some Tree Theorems Applications of Trees Binary Search Tree Decision Tree Tree Traversal Spanning Trees
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 information4 Basics of Trees. Petr Hliněný, FI MU Brno 1 FI: MA010: Trees and Forests
4 Basics of Trees Trees, actually acyclic connected simple graphs, are among the simplest graph classes. Despite their simplicity, they still have rich structure and many useful application, such as in
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 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 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 informationDiscrete mathematics II. - Graphs
Emil Vatai April 25, 2018 Basic definitions Definition of an undirected graph Definition (Undirected graph) An undirected graph or (just) a graph is a triplet G = (ϕ, E, V ), where V is the set of vertices,
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 informationUndirected Graphs. DSA - lecture 6 - T.U.Cluj-Napoca - M. Joldos 1
Undirected Graphs Terminology. Free Trees. Representations. Minimum Spanning Trees (algorithms: Prim, Kruskal). Graph Traversals (dfs, bfs). Articulation points & Biconnected Components. Graph Matching
More informationLecture Notes. char myarray [ ] = {0, 0, 0, 0, 0 } ; The memory diagram associated with the array can be drawn like this
Lecture Notes Array Review An array in C++ is a contiguous block of memory. Since a char is 1 byte, then an array of 5 chars is 5 bytes. For example, if you execute the following C++ code you will allocate
More informationDominance Constraints and Dominance Graphs
Dominance Constraints and Dominance Graphs David Steurer Saarland University Abstract. Dominance constraints logically describe trees in terms of their adjacency and dominance, i.e. reachability, relation.
More informationGraph Theory CS/Math231 Discrete Mathematics Spring2015
1 Graphs Definition 1 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 is called the vertex set of G, and its elements are called vertices
More informationAdjacent: 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.
1 Graph Basics What is a graph? Graph: a graph G consists of a set of vertices, denoted V (G), a set of edges, denoted E(G), and a relation called incidence so that each edge is incident with either one
More information(Refer Slide Time: 06:01)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 28 Applications of DFS Today we are going to be talking about
More informationPaths, Flowers and Vertex Cover
Paths, Flowers and Vertex Cover Venkatesh Raman M. S. Ramanujan Saket Saurabh Abstract It is well known that in a bipartite (and more generally in a König) graph, the size of the minimum vertex cover is
More informationIntroduction to Computers and Programming. Concept Question
Introduction to Computers and Programming Prof. I. K. Lundqvist Lecture 7 April 2 2004 Concept Question G1(V1,E1) A graph G(V, where E) is V1 a finite = {}, nonempty E1 = {} set of G2(V2,E2) vertices and
More informationGraphs and trees come up everywhere. We can view the internet as a graph (in many ways) Web search views web pages as a graph
Graphs and Trees Graphs and trees come up everywhere. We can view the internet as a graph (in many ways) who is connected to whom Web search views web pages as a graph Who points to whom Niche graphs (Ecology):
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 information22.1 Representations of graphs
22.1 Representations of graphs There are two standard ways to represent a (directed or undirected) graph G = (V,E), where V is the set of vertices (or nodes) and E is the set of edges (or links). Adjacency
More informationClustering Using Graph Connectivity
Clustering Using Graph Connectivity Patrick Williams June 3, 010 1 Introduction It is often desirable to group elements of a set into disjoint subsets, based on the similarity between the elements in 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 informationDiscrete mathematics
Discrete mathematics Petr Kovář petr.kovar@vsb.cz VŠB Technical University of Ostrava DiM 470-2301/02, Winter term 2018/2019 About this file This file is meant to be a guideline for the lecturer. Many
More informationTreewidth and graph minors
Treewidth and graph minors Lectures 9 and 10, December 29, 2011, January 5, 2012 We shall touch upon the theory of Graph Minors by Robertson and Seymour. This theory gives a very general condition under
More informationCS/COE
CS/COE 151 www.cs.pitt.edu/~lipschultz/cs151/ Graphs 5 3 2 4 1 Graphs A graph G = (V, E) Where V is a set of vertices E is a set of edges connecting vertex pairs Example: V = {, 1, 2, 3, 4, 5} E = {(,
More informationCSE 21 Mathematics for Algorithm and System Analysis
CSE 21 Mathematics for Algorithm and System Analysis Unit 4: Basic Concepts in Graph Theory Section 3: Trees 1 Review : Decision Tree (DT-Section 1) Root of the decision tree on the left: 1 Leaves of the
More informationModule 5 Graph Algorithms
Module 5 Graph lgorithms Dr. Natarajan Meghanathan Professor of Computer Science Jackson State University Jackson, MS 97 E-mail: natarajan.meghanathan@jsums.edu 5. Graph Traversal lgorithms Depth First
More informationJana Kosecka. Red-Black Trees Graph Algorithms. Many slides here are based on E. Demaine, D. Luebke slides
Jana Kosecka Red-Black Trees Graph Algorithms Many slides here are based on E. Demaine, D. Luebke slides Binary Search Trees (BSTs) are an important data structure for dynamic sets In addition to satellite
More informationDesign and Analysis of Algorithms
CSE, Winter 8 Design and Analysis of Algorithms Lecture : Graphs, DFS (Undirected, Directed), DAGs Class URL: http://vlsicad.ucsd.edu/courses/cse-w8/ Graphs Internet topology Graphs Gene-gene interactions
More informationLecture 8: PATHS, CYCLES AND CONNECTEDNESS
Discrete Mathematics August 20, 2014 Lecture 8: PATHS, CYCLES AND CONNECTEDNESS Instructor: Sushmita Ruj Scribe: Ishan Sahu & Arnab Biswas 1 Paths, Cycles and Connectedness 1.1 Paths and Cycles 1. Paths
More informationCOP 4531 Complexity & Analysis of Data Structures & Algorithms
COP Complexity & Analysis of Data Structures & Algorithms Overview of Graphs Breadth irst Search, and Depth irst Search hanks to several people who contributed to these slides including Piyush Kumar and
More informationAlgorithm Design and Analysis
Algorithm Design and Analysis LECTURE 7 Greedy Graph Algorithms Topological sort Shortest paths Adam Smith The (Algorithm) Design Process 1. Work out the answer for some examples. Look for a general principle
More information8.2 Paths and Cycles
8.2 Paths and Cycles Degree a b c d e f Definition The degree of a vertex is the number of edges incident to it. A loop contributes 2 to the degree of the vertex. (G) is the maximum degree of G. δ(g) is
More informationLecture 20 : Trees DRAFT
CS/Math 240: Introduction to Discrete Mathematics 4/12/2011 Lecture 20 : Trees Instructor: Dieter van Melkebeek Scribe: Dalibor Zelený DRAFT Last time we discussed graphs. Today we continue this discussion,
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 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 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 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 informationDesign and Analysis of Algorithms
Design and Analysis of Algorithms CS 5311 Lecture 19 Topological Sort Junzhou Huang, Ph.D. Department of Computer Science and ngineering CS5311 Design and Analysis of Algorithms 1 Topological Sort Want
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 informationv V Question: How many edges are there in a graph with 10 vertices each of degree 6?
ECS20 Handout Graphs and Trees March 4, 2015 (updated 3/9) Notion of a graph 1. A graph G = (V,E) consists of V, a nonempty set of vertices (or nodes) and E, a set of pairs of elements of V called edges.
More informationK 4 C 5. Figure 4.5: Some well known family of graphs
08 CHAPTER. TOPICS IN CLASSICAL GRAPH THEORY K, K K K, K K, K K, K C C C C 6 6 P P P P P. Graph Operations Figure.: Some well known family of graphs A graph Y = (V,E ) is said to be a subgraph of a graph
More informationMatching Theory. Figure 1: Is this graph bipartite?
Matching Theory 1 Introduction A matching M of a graph is a subset of E such that no two edges in M share a vertex; edges which have this property are called independent edges. A matching M is said to
More information1 Variations of the Traveling Salesman Problem
Stanford University CS26: Optimization Handout 3 Luca Trevisan January, 20 Lecture 3 In which we prove the equivalence of three versions of the Traveling Salesman Problem, we provide a 2-approximate algorithm,
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 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 informationTIE Graph algorithms
TIE-20106 239 11 Graph algorithms This chapter discusses the data structure that is a collection of points (called nodes or vertices) and connections between them (called edges or arcs) a graph. The common
More information1 Minimum Cut Problem
CS 6 Lecture 6 Min Cut and Karger s Algorithm Scribes: Peng Hui How, Virginia Williams (05) Date: November 7, 07 Anthony Kim (06), Mary Wootters (07) Adapted from Virginia Williams lecture notes Minimum
More informationDiscrete Mathematics and Probability Theory Fall 2013 Vazirani Note 7
CS 70 Discrete Mathematics and Probability Theory Fall 2013 Vazirani Note 7 An Introduction to Graphs A few centuries ago, residents of the city of Königsberg, Prussia were interested in a certain problem.
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 informationChapter 3 Trees. Theorem A graph T is a tree if, and only if, every two distinct vertices of T are joined by a unique path.
Chapter 3 Trees Section 3. Fundamental Properties of Trees Suppose your city is planning to construct a rapid rail system. They want to construct the most economical system possible that will meet the
More informationElements of Graph Theory
Elements of Graph Theory Quick review of Chapters 9.1 9.5, 9.7 (studied in Mt1348/2008) = all basic concepts must be known New topics we will mostly skip shortest paths (Chapter 9.6), as that was covered
More informationHomework No. 4 Answers
Homework No. 4 Answers CSCI 4470/6470 Algorithms, CS@UGA, Spring 2018 Due Thursday March 29, 2018 There are 100 points in total. 1. (20 points) Consider algorithm DFS (or algorithm To-Start-DFS in Lecture
More informationModule 11. Directed Graphs. Contents
Module 11 Directed Graphs Contents 11.1 Basic concepts......................... 256 Underlying graph of a digraph................ 257 Out-degrees and in-degrees.................. 258 Isomorphism..........................
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 informationLecture 8: The Traveling Salesman Problem
Lecture 8: The Traveling Salesman Problem Let G = (V, E) be an undirected graph. A Hamiltonian cycle of G is a cycle that visits every vertex v V exactly once. Instead of Hamiltonian cycle, we sometimes
More informationCPS 102: Discrete Mathematics. Quiz 3 Date: Wednesday November 30, Instructor: Bruce Maggs NAME: Prob # Score. Total 60
CPS 102: Discrete Mathematics Instructor: Bruce Maggs Quiz 3 Date: Wednesday November 30, 2011 NAME: Prob # Score Max Score 1 10 2 10 3 10 4 10 5 10 6 10 Total 60 1 Problem 1 [10 points] Find a minimum-cost
More informationCMSC th Lecture: Graph Theory: Trees.
CMSC 27100 26th Lecture: Graph Theory: Trees. Lecturer: Janos Simon December 2, 2018 1 Trees Definition 1. A tree is an acyclic connected graph. Trees have many nice properties. Theorem 2. The following
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 Connectivity G G G
Graph Connectivity 1 Introduction We have seen that trees are minimally connected graphs, i.e., deleting any edge of the tree gives us a disconnected graph. What makes trees so susceptible to edge deletions?
More information