UNIT Name the different ways of representing a graph? a.adjacencymatrix b. Adjacency list
|
|
- Olivia Merritt
- 5 years ago
- Views:
Transcription
1 UNIT-4 Graph: Terminology, Representation, Traversals Applications - spanning trees, shortest path and Transitive closure, Topological sort. Sets: Representation - Operations on sets Applications. 1. Name the different ways of representing a graph? a.adjacencymatrix b. Adjacency list 2. What is an undirected acyclic graph? When every edge in an acyclic graph is undirected, it is called an undirected acyclic graph. It is also called as undirected forest. 3. What are the two traversal strategies used in traversing a graph? a.breadthfirstsearch b. Depth first search 4. What is a minimum spanning tree? A minimum spanning tree of an undirected graph G is a tree formed from graph edges that connects all the vertices of G at the lowest total cost. 5. Name two algorithms two find minimum spanning tree Kruskal salgorithm Prim s algorithm 6. Define graph traversals. Traversing a graph is an efficient way to visit each vertex and edge exactly once. 7. List the two important key points of depth first search. i) If path exists from one node to another node, walk across the edge exploring the edge. ii) If path does not exist from one specific node to any other node, return to the previous node where we have been before backtracking. 8. What do you mean by breadth first search (BFS)?
2 BFS performs simultaneous explorations starting from a common point and spreading out independently. 9.Differentiate BFS and DFS. No. DFS BFS 1. Backtracking is possible from a 2. dead Vertices end from which exploration is incomplete are processed in a 3. Search is done in one particular direction Backtracking is not possible The vertices to be explored are organized as a The vertices in the same level are maintained 10. What is meant by topological sort? Topological Sort. A cycle in a diagraph or directed graph G is a set of edges, (v1, v2), (v2, v3),..., (vr 1, vr) where v1 = vr. A diagraph is acyclic if it has no cycles. Such a graph is often referred to as a directed acyclic graph, or DAG, for short. 11 Marks GRAPH INTRODUCTION Graph is a non-linear data structure. Graphs can be used anywhere in the real world. Eg. Airlines : Cities are connected through airlines. This can be represented through graph structure which includes cities as nodes and airlines by edges. GRAPH TERMINOLOGIES UNDIRECTED GRAPH: An undirected graph is that in which, the pair of vertices representing the edges is unordered. DIRECTED GRAPH: An directed graph is that in which, each edge is an ordered pair of vertices, (i.e.) each edge is represented by a directed pair. It is also referred to as digraph.
3 COMPLETE GRAPH: An n vertex undirected graph with exactly n(n-1)/2 edges is said to be complete graph. The graph G is said to be complete graph. SUBGRAPH: A sub-graph of G is a graph G such that V(G ) V(G ) and E(G ) E(G). some of the subgraphs are as follow, (a) (b) FIG: Graph G (d) FIG: Subgraphs of G ADJACENT VERTICES: `A vertex v1 is said to be a adjacent vertex if there exist an edge (v1,v2) or (v2,v1). PATH: A path from vertex V to the vertex W is a sequence of vertices, each adjacent to the next. The length of the graph is the number of edges in it. CONNECTED GRAPH: A graph is said to be connected if there exist a path from any vertex to another vertex. UNCONNECTED GRAPH: A graph is said as unconnected graph if there exist any 2 unconnected components.
4 FIG: Unconnected Graph STRONGLY CONNECTED GRAPH: A digraph is said to be strongly connected if there is a directed path from any vertex to any other vertex WEAKLY CONNECTED GRAPH: If there dos not exist a directed path from one vertex to another vertex then it is said to be a weakly connected graph
5 CYCLE A cycle is a path in which the first and the last vertices are the same. Eg. 1,3,4,7,2,1 DEGREE: The number of edges incident on a vertex determines its degree. There are two types of degrees In-degree and out-degree. IN-DEGREE of the vertex V is the number of edges for which vertex V is a head and OUT- DEGREE is the number of edges for which vertex is a tail. WEIGHTED GRAPH: weights. Eg: A graph (or digraph) is termed as weighted graph if all edges in it are labeled with some SELF LOOP : If there is an edge whose starting and end vertices are same, that is, (vi, vj) is an edge, then it is called a self loop.
6 ACYCLIC GRAPH : If there is a path containing one or more edges which starts from a vertex vi and terminates into the same vertex then the path is known as a cycle. If a graph(digraph) does not have any cycle then it is called acyclic graph. GRAPH REPRESENTATION How to represent a graph? (3 Marks April 2015) The graphs can be represented by the follow three methods: 1. Adjacency matrix. 2. Adjacency list. ADJACENCY MATRIX: The adjacency matrix A for a graph G = (V,E) with n vertices, is an n* n matrix of bits,such that A Ij = 1, if there is an edge from vi to vj and Aij = 0, if there is no such edge. The adjacency matrix for the graph G is,
7 The space required to represent a graph using its adjacency matrix is n* n bits. About half this space can be saved in the case of an undirected graphs by storing only the upper or lower triangle of the matrix. From the adjacency matrix, one may readily determine if there an edge connecting any two vertices I and j. for an undirected graph the degree of any vertices I is its row n (j=1) A(I, j). For a directed graph the row is the out-degree and column sum is the indegree. The adjacency matrix is a simple way to represent a graph, but it has 2 disadvantages, 1. it takes O(n*n) space to represent a graph with n vertices ; even for sparse graphs and 2. it takes (n*n) times to solve most of the graph problems. ADJACENCY LIST: In the representation of the n rows of the adjacency matrix are represented as n linked lists. There is one list for each vertex in G. the nodes in list I represent the vertices that are adjacent from vertex i. Each nodes has at least 2 fields: VERTEX and LINK. The VERTEX fields contain the indices of the vertices adjacent to vertex i. In the case of an undirected graph with n vertices and e edges,this representation requires n head nodes and 2e list nodes. Vertex 1 Vertex 2 Vertex 3 Vertex The degree of the vertex in an undirected graph may be determined by just counting the number of nodes in its adjacency list. The total number of edges in G may, therefore be determined in time O(n+e).in the case of digraph the number of list nodes is only e. the out-degree of any vertex can be determined by counting the number of nodes in an adjacency list. The total number of edges in G can, therefore be determined in O(n+e). GRAPH TRAVERSALS Discuss about Graph Traversals. (6 Marks April 2013) There are two graph traversal methods.
8 Depth First search Breadth First Search DEPTH-FIRST SEARCH (DFS) 1. Starting at some vertex, v, we process v and then recursively traverse all vertices adjacent to v. To do this, when a vertex v is visited, we mark it visited, since now we have been there, and recursively call depth-first search on all adjacent vertices that are not already marked. 2. We implicitly assume that for undirected graphs every edge (v, w) appears twice in the adjacency lists: once as (v, w) and once as (w, v). 3. The (global) boolean array visited[ ] is initialized to FALSE. 4. By recursively calling the procedures only on nodes that have not been visited, we guarantee that we do not loop indefinitely. 5. If the graph is undirected and not connected, or directed and not strongly connected, this strategy might fail to visit some nodes. 6. We then search for an unmarked node, apply a depth-first traversal there, and continue this process until there are no unmarked nodes. 7. Because this strategy guarantees that each edge is encountered only once, the total time to perform the traversal is O( E + V ), as long as adjacency lists are used. void dfs( vertex v ) visited[v] = TRUE; for each w adjacent to v if(!visited[w] ) dfs( w );
9
10 Undirected Graphs 1. An undirected graph is connected if and only if a depth-first search starting from any node visits every node. 2.Because this test is so easy to apply, assume that the graphs we deal with are connected. If they are not, then find all the connected components and apply our algorithm on each of these in turn. Complexity analysis Assume that graph is connected. Depth-first search visits every vertex in the graph and checks every edge its edge. Therefore, DFS complexity is O(V + E). As it was mentioned before, if an adjacency matrix is used for a graph representation, then all edges, adjacent to a vertex can't be found efficiently, that results in O(V 2 ) complexity. BREADTH FIRST SEARCH (BFS) 1. Assume a particular node has been designated as starting point
11 2. Let A be the last node Visitor and A has A neighbor N1, N2 until Nk. 3. A Breadth First Search will Visit N1 then N2 and so forth through Nk. Proceed to traverse all the unvisited neighbours of N1 then Traverse the immediate neighbor of N2 Nk in a similar fashion. Breadth First Search algorithm used in Prim's MST algorithm. Dijkstra's single source shortest path algorithm. Like depth first search, BFS traverse a connected component of a given graph and defines a spanning tree. Algorithm Breadth First Search 1. BFS starts at a given vertex, which is at level 0. In the first stage, we visit all vertices at level In the second stage, we visit all vertices at second level. These new vertices, which are adjacent to level 1 vertices, and so on. 3. The BFS traversal terminates when every vertex has been visited. Algorithm visited [s]=1 queue [++ rear]=s display(s); while (front<=rear) breadthfirst (queue [front]); front++; breathfirst(queue(vertex)
12 for(i=1;i<=n;i++) if(graph[vertex][i]==1) if(visited[i]==0) visited [i]=1; display( i); queue [++rear]=i; BFS labels each vertex by the length of a shortest path (in terms of number of edges) from the start vertex.
13 Example As with the depth first search (DFS), the discovery edges form a spanning tree, which in this case we call the BSF-tree. BSF used to solve following problem Testing whether graph is connected. Computing a spanning forest of graph.
14 Computing, for every vertex in graph, a path with the minimum number of edges between start vertex and current vertex or reporting that no such path exists. Computing a cycle in graph or reporting that no such cycle exists. Analysis Total running time of BFS is O(V + E). APPLICATIONS OF GRAPHS The applications of a Graph include the following Finding Minimum Spanning Trees (MST) Prim s and Kruskal s Algorithm Finding shortest path - Dijkstra s Algorithm Transitive closure Warshall s Algorithm Topological sort. Minimum Spanning Tree (MST) Write short notes on Minimal cost Algorithm. (6 Marks April 2012) What is spanning tree? Explain. (4 Marks April 2015) Spanning tree 1. It is a subset of a tree in which all vertices of tree are present, but it may not contain all edges. A graph can have mo re than one spanning tree. 2. Suppose we have a connected undirected graph, then a spanning tree of the graph is a connected sub graph in which there are no cycles. 3. MST of a weighted connected graph G is its spanning tree with smallest weight, where the weight of a tree is defined as the sum of the weights on all its edges. 4. The total no. of edges the MST is V -1, where v is the no. of vertices. 5. A MST exists iff G is connected. 6. For any spanning tree T, if an edge e (that is ) not in T is added, a cycle is created. 7. The removal of any edge on the cycle reinstates the spanning tree property.
15 Methods to compute MST 1. Prim s algorithm 2. Kruskal s algorithm Prim s algorithm 1. It is one of the ways to compute MST. It uses a greedy technique. This algorithm begins with a set U initialized to It then grows a spanning tree, cons idering one edge at a time. 3. At each step, it finds the shortest edges (u, v) such that the cost of (u, v) is the smallest among all edges, where u is in MST and V is not in MST. Steps Create a queue of size equal to the number of vertices in the graph given. Empty the queue created using makeempty(). Insert the source vertex into the queue. The queue is not empty. Dequeue the vertex at the front of the queue and store it in v. For each w adjacent to v, check whether the cost is. If the cost is calculate the cost, cost(w)=cost(v,w).include v in the path of w. If the cost is already present, calculate the new cost. If the new cost is less than the old one, update. Update the path also. Else ignore. Enqueue w(the adjacent vertex of v)with the smallest cost. Calculate the total cost of the minimum spanning tee by adding the cost on the edges of the tree. For n vertices, there will be n-1 edges. Total Running Time=( E + V 2 ) = O( V 2 ). Procedure for prim`s algorithm void prims (graph G) Queue Q; vertex v, w; Q=create Queue (numvertex); make empty (Q); enqueue (S, Q);
16 while (! is empty (Q)) v=dequeue (Q); for each unvisited w adjacent to v if (cost (w) = = ) cost (w) =cost (v, w); path (w) =v; else cost1 (w) =cost (v, w); if (cost1 (w) <cost (w) ; cost (w) =cost1 (w); path (w) =v; enqueue (w with the minimum cost); Example
17 a (-,-) d (a,1) b (a,2) c (d,2) g (d,4) f (g,1) e (g,6) b (a,2) c(a,4) d(a,1) e(-, ) f (-, ) g(-, ) b (a,2) c(d,2) e(d,7) f(d,8) g(d,4) c (d,2) e(d,7) f(d,8) g(d,4) e (d,7) f(c,5) g(d,4) e (g,6) f(g,1) e (g,6) Empty Total cost of the minimum spanning tree = 16.
18 KRUSKAL S ALGORITHM It also finds the minimum spanning tree like the Prim s algorithm. 1. Pair of vertices with minimum weight is to be chosen. 2. Each time the edge with minimum weight has to be selected. 3. It is not necessary that edges with minimum weight should be adjacent. 4. Cycle should not be formed. Algorithm T= empty spanning tree E= set of edges N= no. of nodes in graph while T has fewer than N 1 edges remove an edge (V, W) of lowest cost from E if adding (V, W) to T would create a cycle
19 then discard (V, W) else add (V, W) Steps List the edges in order of increasing edge costs. Choose an edge with the lowest cost. Add it to the tree. Keep adding the edges, making sure that a cycle is not formed at any instant. On adding an edge if a cycle is formed, then the edge has to be rejected. Choose the next edge from the list. Once all the vertices are connected, then the process can be stopped. Calculate the total cost of the minimum spanning tee by adding the cost on the edges of the tree. For n vertices, there will be n-1 edges. Example Total cost of the minimum spanning tree= 16. Edges Cost / Weight Action
20 Edges Cost/ Weight (a,d) 1 (f,g) 1 (a,b) 2 (c,d) 2 (b,d) 3 (a,c) 4 (d,g) 4 (c,f) 5 (e,g) 6 (d,e) 7 (a,d) 1 Accepted (f,g) 1 Accepted (a,b) 2 Accepted (c,d) 2 Accepted (b,d) 3 Rejected (a,c) 4 Rejected (d,g) 4 Accepted (c,f) 5 Rejected (e,g) 6 Accepted (d,e) 7 Rejected
21 SHORTEST PATH ALGORITHMS 1. The shortest path algorithm determines the minimum cost of the path from source to every other vertex. N-1 2. The cost of the path v1, v2, vn is C i,i+1. This is referred to as weighted path length. i=1 3. The unweighted path length is merely the no. of edges on the path namely, N There are 2 algorithms that determine the shortest paths. SHORTEST PATH Dijkstra s algorithm Determines the Single Source Shortest Path Floyd s algorithm Determines the All Pairs Shortest Path Discuss about the shortest path algorithms. Illustrate it with example. (11 Marks April 2013) Dijkstra`s algorithm (single source shortest path algorithm) Explain the Dijikstra s algorithm to find the shortest path for the following graph. Also develop an algorithm for the same. (11 Marks Nov 2010),(11 Marks April 2015) Write and explain Dijikstra s algorithm to finding the shortest path. (11 Marks April 2012) Explain the Dijistra shortest path Algorithm with example.(11 Marks Nov 2013) 1. Dijkstra s algorithm is the general method to solve the single source shortest path problem. 2. This is applied to the weighted graph G. 3. Dijkstra`s algoritm is the prime example of greedy technique which generally solves a problem in stages by doing what appears to be the best thing at each stage. 4. This algorithm proceeds in stages just like the weighted shortest path algorithm. 5. For a given source vertex in the graph the algorithm finds the shortest path from the source vertex to every other vertex.
22 6. It can also be used for finding costs of shortest path from a single vertex to a single destination vertex by stopping the algorithm once the shortest route to the destination vertex has been determined. Steps Create a queue of size equal to the number of vertices in the graph given. Empty the queue created using makeempty(). Insert the source vertex into the queue. The queue is not empty. Dequeue the vertex at the front of the queue and store it in V. For each w adjacent to v, check whether the distance is. If the distance is calculate the distance, dist(w)=dist(v)+dist(v,w). Include v in the path of w. If the distance is already present, calculate the new distance. If the new distance is less than the old one, update. Update the path also. Else ignore. Enqueue w(the adjacent vertex of v)with the shortest distance. Total Running Time=( E + V 2 ) = O( V 2 ). PROCEDURE FOR DIJKSTRA S ALGORITHM void dijkstra (graph G) Queue Q; vertex v, w; Q=create Queue (numvertex); make empty (Q); enqueue (S, Q); while (!isempty (Q)) v=dequeue (Q); for each unvisited w adjacent to v if (dist (w) = = )
23 dist (w) =dist (v) +dist (v, w); path (w) =v; else dist1 (w) =dist (v) +dist (v, w); if (dist1 (w) <dist (w); dist (w) =dist1 (w); path (w) =v; enqueue (w with the shortest distance); Example COST PATH POOL OF UNVISITED VERTICES AND THEIR COSTS FROM THE SOURCE a=0 a (-,0) b (a,2) c(-, ) d(a,1) e(-, ) f(-, ) g(-, 0 d=1 d(a,1) b (a,2) c(d,3) e(d,3) f(d,9) g(d,5)
24 b=2 b(a,2) c (d,3) e (d,3) f (d,9) g(d,5) c=3 c(d,3) e (d,3) f(c,8) g(d,5) e=3 e(d,3) f (c,8) g(d,5) g=5 g(d,5) f (g,6) SOURCE AND DESTINATION COST a to a 0 a to b 2 a to c 3 a to d 1 a to e 3 a to f 6 a to g 5 f=6 f(g,6) Empty.
25 TOPOLOGICAL SORTING Explain the topological with an example. (11 Marks April 2014) Toplological sorting is an ordering of vertices of a graph, such that if there is a path u to v in the graph then u appears before v in the ordering. Topological ordering is not possible if the graph has a cycle, since for two vertices u and v on the cycle, u precedes v and v precedes u. For a directed acyclic graph, there exists a topological ordering of vertices. A simple algorithm to find a topological ordering is to find out any vertex with indegree zero, i.e, a vertex without any predecessor. We can add this vertex in an ordering set (initially which is empty) and remove it along with its edge(s) from the graph. Thus, we can repeat the same stratergy on the remaining graph until it is empty. Example:
26
27
28 TOPOLOGICAL SORT ALGORITHM:
UNIT 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 informationCS6301 Programming and Data Structures II Unit -5 REPRESENTATION OF GRAPHS Graph and its representations Graph is a data structure that consists of following two components: 1. A finite set of vertices
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 informationChapter 14. Graphs Pearson Addison-Wesley. All rights reserved 14 A-1
Chapter 14 Graphs 2011 Pearson Addison-Wesley. All rights reserved 14 A-1 Terminology G = {V, E} A graph G consists of two sets A set V of vertices, or nodes A set E of edges A subgraph Consists of a subset
More informationOutline. Introduction. Representations of Graphs Graph Traversals. Applications. Definitions and Basic Terminologies
Graph Chapter 9 Outline Introduction Definitions and Basic Terminologies Representations of Graphs Graph Traversals Breadth first traversal Depth first traversal Applications Single source shortest path
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 informationChapter 9 Graph Algorithms
Chapter 9 Graph Algorithms 2 Introduction graph theory useful in practice represent many real-life problems can be slow if not careful with data structures 3 Definitions an undirected graph G = (V, E)
More information11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions
Introduction Chapter 9 Graph Algorithms graph theory useful in practice represent many real-life problems can be slow if not careful with data structures 2 Definitions an undirected graph G = (V, E) is
More 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 informationDHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI. Department of Computer Science and Engineering CS6301 PROGRAMMING DATA STRUCTURES II
DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering CS6301 PROGRAMMING DATA STRUCTURES II Anna University 2 & 16 Mark Questions & Answers Year / Semester: II / III
More informationCS 206 Introduction to Computer Science II
CS 206 Introduction to Computer Science II 04 / 06 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? Graphs Definition Terminology two ways to represent edges in implementation traversals
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 informationCSE 100: GRAPH ALGORITHMS
CSE 100: GRAPH ALGORITHMS 2 Graphs: Example A directed graph V5 V = { V = E = { E Path: 3 Graphs: Definitions A directed graph V5 V6 A graph G = (V,E) consists of a set of vertices V and a set of edges
More informationGRAPHS Lecture 19 CS2110 Spring 2013
GRAPHS Lecture 19 CS2110 Spring 2013 Announcements 2 Prelim 2: Two and a half weeks from now Tuesday, April16, 7:30-9pm, Statler Exam conflicts? We need to hear about them and can arrange a makeup It would
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 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 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 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 informationChapter 9 Graph Algorithms
Chapter 9 Graph Algorithms 2 Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures 3 Definitions an undirected graph G = (V, E) is a
More informationChapter 9 Graph Algorithms
Introduction graph theory useful in practice represent many real-life problems can be if not careful with data structures Chapter 9 Graph s 2 Definitions Definitions an undirected graph is a finite set
More informationOutline. Graphs. Divide and Conquer.
GRAPHS COMP 321 McGill University These slides are mainly compiled from the following resources. - Professor Jaehyun Park slides CS 97SI - Top-coder tutorials. - Programming Challenges books. Outline Graphs.
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 informationPractical Session No. 12 Graphs, BFS, DFS, Topological sort
Practical Session No. 12 Graphs, BFS, DFS, Topological sort Graphs and BFS Graph G = (V, E) Graph Representations (V G ) v1 v n V(G) = V - Set of all vertices in G E(G) = E - Set of all edges (u,v) in
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 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 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 informationGraph Algorithms: Chapters Part 1: Introductory graph concepts
UMass Lowell Computer Science 91.503 Algorithms Dr. Haim Levkowitz Fall, 2007 Graph Algorithms: Chapters 22-25 Part 1: Introductory graph concepts 1 91.404 Graph Review Elementary Graph Algorithms Minimum
More informationMST & Shortest Path -Prim s -Djikstra s
MST & Shortest Path -Prim s -Djikstra s PRIM s - Minimum Spanning Tree - A spanning tree of a graph is a tree that has all the vertices of the graph connected by some edges. - A graph can have one or more
More informationIntroduction to Graphs. common/notes/ppt/
Introduction to Graphs http://people.cs.clemson.edu/~pargas/courses/cs212/ common/notes/ppt/ Introduction Graphs are a generalization of trees Nodes or verticies Edges or arcs Two kinds of graphs irected
More informationCSE 100 Minimum Spanning Trees Prim s and Kruskal
CSE 100 Minimum Spanning Trees Prim s and Kruskal Your Turn The array of vertices, which include dist, prev, and done fields (initialize dist to INFINITY and done to false ): V0: dist= prev= done= adj:
More informationDS UNIT 4. Matoshri College of Engineering and Research Center Nasik Department of Computer Engineering Discrete Structutre UNIT - IV
Sr.No. Question Option A Option B Option C Option D 1 2 3 4 5 6 Class : S.E.Comp Which one of the following is the example of non linear data structure Let A be an adjacency matrix of a graph G. The ij
More informationROOT A node which doesn t have a parent. In the above tree. The Root is A. LEAF A node which doesn t have children is called leaf or Terminal node.
UNIT III : DYNAMIC STORAGE MANAGEMENT Trees: Binary tree, Terminology, Representation, Traversals, Applications. Graph: Terminology, Representation, Traversals Applications - spanning trees, shortest path.
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 informationLecture 9 Graph Traversal
Lecture 9 Graph Traversal Euiseong Seo (euiseong@skku.edu) SWE00: Principles in Programming Spring 0 Euiseong Seo (euiseong@skku.edu) Need for Graphs One of unifying themes of computer science Closely
More information2. True or false: even though BFS and DFS have the same space complexity, they do not always have the same worst case asymptotic time complexity.
1. T F: Consider a directed graph G = (V, E) and a vertex s V. Suppose that for all v V, there exists a directed path in G from s to v. Suppose that a DFS is run on G, starting from s. Then, true or false:
More informationGraphs. Graph G = (V, E) Types of graphs E = O( V 2 ) V = set of vertices E = set of edges (V V)
Graph Algorithms Graphs Graph G = (V, E) V = set of vertices E = set of edges (V V) Types of graphs Undirected: edge (u, v) = (v, u); for all v, (v, v) E (No self loops.) Directed: (u, v) is edge from
More informationCS302 - Data Structures using C++
CS302 - Data Structures using C++ Topic: Graphs - Introduction Kostas Alexis Terminology In the context of our course, graphs represent relations among data items G = {V,E} A graph is a set of vertices
More informationHomework 5: Graphs, Minimum Spanning Trees, and Dijkstra Shortest-Path
Homework 5: Graphs, Minimum Spanning Trees, and Dijkstra Shortest-Path 1. (4 points) A graph is Hamiltonian if there is a cycle in the graph visiting each vertex exactly once. Give an example of an Eulerian
More informationGraphs. There is no restriction on the relation E. Directed graphs also known as digraphs
3: Graphs Graphs A directed graph is a pair (N,E) consisting of a set of nodes (or vertices) N, together with a relation E on N. Each element (n 1,n 2 ) of E is called an edge There is no restriction on
More informationThe Shortest Path Problem
The Shortest Path Problem 1 Shortest-Path Algorithms Find the shortest path from point A to point B Shortest in time, distance, cost, Numerous applications Map navigation Flight itineraries Circuit wiring
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 informationGraph Representation DFS BFS Dijkstra A* Search Bellman-Ford Floyd-Warshall Iterative? Non-iterative? MST Flow Edmond-Karp
Charles Lin Graph Representation DFS BFS Dijkstra A* Search Bellman-Ford Floyd-Warshall Iterative? Non-iterative? MST Flow Edmond-Karp Adjacency Matrix bool way[100][100]; cin >> i >> j; way[i][j] = true;
More informationR13. II B. Tech I Semester Supplementary Examinations, May/June DATA STRUCTURES (Com. to ECE, CSE, EIE, IT, ECC)
SET - 1 II B. Tech I Semester Supplementary Examinations, May/June - 2016 PART A 1. a) Write a procedure for the Tower of Hanoi problem? b) What you mean by enqueue and dequeue operations in a queue? c)
More informationAlgorithms Sequential and Parallel: A Unified Approach; R. Miller and L. Boxer 3rd Graph Algorithms
Algorithms Sequential and Parallel: A Unified Approach; R. Miller and L. Boxer rd Edition @ 0 www.thestudycampus.com Graph Algorithms Terminology Representations Fundamental Algorithms Computing the Transitive
More informationPart VI Graph algorithms. Chapter 22 Elementary Graph Algorithms Chapter 23 Minimum Spanning Trees Chapter 24 Single-source Shortest Paths
Part VI Graph algorithms Chapter 22 Elementary Graph Algorithms Chapter 23 Minimum Spanning Trees Chapter 24 Single-source Shortest Paths 1 Chapter 22 Elementary Graph Algorithms Representations of graphs
More informationCSE373: Data Structures & Algorithms Lecture 17: Minimum Spanning Trees. Dan Grossman Fall 2013
CSE373: Data Structures & Algorithms Lecture 7: Minimum Spanning Trees Dan Grossman Fall 03 Spanning Trees A simple problem: Given a connected undirected graph G=(V,E), find a minimal subset of edges such
More informationGraphs & Digraphs Tuesday, November 06, 2007
Graphs & Digraphs Tuesday, November 06, 2007 10:34 PM 16.1 Directed Graphs (digraphs) like a tree but w/ no root node & no guarantee of paths between nodes consists of: nodes/vertices - a set of elements
More informationCIS 121 Data Structures and Algorithms Midterm 3 Review Solution Sketches Fall 2018
CIS 121 Data Structures and Algorithms Midterm 3 Review Solution Sketches Fall 2018 Q1: Prove or disprove: You are given a connected undirected graph G = (V, E) with a weight function w defined over its
More information國立清華大學電機工程學系. Outline
國立清華大學電機工程學系 EE Data Structure Chapter Graph (Part I) Outline The Graph Abstract Data Type Introduction Definitions Graph Representations Elementary Graph Operations Minimum Cost Spanning Trees ch.- River
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 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 informationAlgorithm Design (8) Graph Algorithms 1/2
Graph Algorithm Design (8) Graph Algorithms / Graph:, : A finite set of vertices (or nodes) : A finite set of edges (or arcs or branches) each of which connect two vertices Takashi Chikayama School of
More informationReference Sheet for CO142.2 Discrete Mathematics II
Reference Sheet for CO14. Discrete Mathematics II Spring 017 1 Graphs Defintions 1. Graph: set of N nodes and A arcs such that each a A is associated with an unordered pair of nodes.. Simple graph: no
More informationDirected Graphs. DSA - lecture 5 - T.U.Cluj-Napoca - M. Joldos 1
Directed Graphs Definitions. Representations. ADT s. Single Source Shortest Path Problem (Dijkstra, Bellman-Ford, Floyd-Warshall). Traversals for DGs. Parenthesis Lemma. DAGs. Strong Components. Topological
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 informationGraphs. Terminology. Graphs & Breadth First Search (BFS) Extremely useful tool in modeling problems. Consist of: Vertices Edges
COMP Spring Graphs & BS / Slide Graphs Graphs & Breadth irst Search (BS) Extremely useful tool in modeling problems. Consist of: Vertices Edges Vertex A B D C E Edge Vertices can be considered sites or
More informationGraphs. The ultimate data structure. graphs 1
Graphs The ultimate data structure graphs 1 Definition of graph Non-linear data structure consisting of nodes & links between them (like trees in this sense) Unlike trees, graph nodes may be completely
More informationGraph Traversals. CS200 - Graphs 1
Graph Traversals CS200 - Graphs 1 Tree traversal reminder A Pre order A B D G H C E F I B C In order G D H B A E C F I D E F Post order G H D B E I F C A G H I Level order A B C D E F G H I Connected Components
More informationThe ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value
The ADT priority queue Orders its items by a priority value The first item removed is the one having the highest priority value 1 Possible implementations Sorted linear implementations o Appropriate if
More informationUnit 2: Algorithmic Graph Theory
Unit 2: Algorithmic Graph Theory Course contents: Introduction to graph theory Basic graph algorithms Reading Chapter 3 Reference: Cormen, Leiserson, and Rivest, Introduction to Algorithms, 2 nd Ed., McGraw
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 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 informationRepresentations of Graphs
ELEMENTARY GRAPH ALGORITHMS -- CS-5321 Presentation -- I am Nishit Kapadia Representations of Graphs There are two standard ways: A collection of adjacency lists - they provide a compact way to represent
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 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 informationProblem 1. Which of the following is true of functions =100 +log and = + log? Problem 2. Which of the following is true of functions = 2 and =3?
Multiple-choice Problems: Problem 1. Which of the following is true of functions =100+log and =+log? a) = b) =Ω c) =Θ d) All of the above e) None of the above Problem 2. Which of the following is true
More informationGraphs. Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale Room - Faner 3131
Graphs Tessema M. Mengistu Department of Computer Science Southern Illinois University Carbondale tessema.mengistu@siu.edu Room - Faner 3131 1 Outline Introduction to Graphs Graph Traversals Finding a
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 informationPred 8 1. Dist. Pred
CS Graph Algorithms, Page Shortest Path Problem Task: given a graph G, find the shortest path from a vertex u to a vertex v. ffl If all edges are of the same length, then BFS will do. ffl But some times
More information22 Elementary Graph Algorithms. There are two standard ways to represent a
VI Graph Algorithms Elementary Graph Algorithms Minimum Spanning Trees Single-Source Shortest Paths All-Pairs Shortest Paths 22 Elementary Graph Algorithms There are two standard ways to represent a graph
More informationGraph Theory. Many problems are mapped to graphs. Problems. traffic VLSI circuits social network communication networks web pages relationship
Graph Graph Usage I want to visit all the known famous places starting from Seoul ending in Seoul Knowledge: distances, costs Find the optimal(distance or cost) path Graph Theory Many problems are mapped
More informationAlgorithm Analysis Graph algorithm. Chung-Ang University, Jaesung Lee
Algorithm Analysis Graph algorithm Chung-Ang University, Jaesung Lee Basic definitions Graph = (, ) where is a set of vertices and is a set of edges Directed graph = where consists of ordered pairs
More informationGraph Applications. Topological Sort Shortest Path Problems Spanning Trees. Data Structures 1 Graph Applications
Graph Applications Topological Sort Shortest Path Problems Spanning Trees Data Structures 1 Graph Applications Application: Topological Sort Given a set of jobs, courses, etc. with prerequisite constraints,
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 informationGraphs. Data Structures 1 Graphs
Graphs Graph Applications Definitions Graph Representations(adjacency matrix/list) Graph ADT Graph Traversals: BFS, DFS Shortest Path Algorithms Minimum Spanning Tree Algorithms Data Structures Graphs
More informationChapter 9. Greedy Technique. Copyright 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 9 Greedy Technique Copyright 2007 Pearson Addison-Wesley. All rights reserved. Greedy Technique Constructs a solution to an optimization problem piece by piece through a sequence of choices that
More informationDynamic-Programming algorithms for shortest path problems: Bellman-Ford (for singlesource) and Floyd-Warshall (for all-pairs).
Lecture 13 Graph Algorithms I 13.1 Overview This is the first of several lectures on graph algorithms. We will see how simple algorithms like depth-first-search can be used in clever ways (for a problem
More informationLecture 25 Spanning Trees
Lecture 25 Spanning Trees 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning, Iliano Cervesato The following is a simple example of a connected, undirected graph with 5 vertices (A,
More information1. Graph and Representation
Chapter Graphs Tree Root Direction: parent-child relationships No cycles Graph Vertices + Edges No tree restrictions Examples World Wide Web Maps. Graph and Representation A graph G: a pair (V, E) vertices
More informationGraphs. The ultimate data structure. graphs 1
Graphs The ultimate data structure graphs 1 Definition of graph Non-linear data structure consisting of nodes & links between them (like trees in this sense) Unlike trees, graph nodes may be completely
More informationIntroductory Remarks
Chapter 8: Graphs Introductory Remarks Although trees are quite flexible, they have an inherent limitation in that they can only express hierarchical structures Fortunately, we can generalize a tree to
More informationShortest path problems
Next... Shortest path problems Single-source shortest paths in weighted graphs Shortest-Path Problems Properties of Shortest Paths, Relaxation Dijkstra s Algorithm Bellman-Ford Algorithm Shortest-Paths
More informationCSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT
CSE 373 NOVEMBER 20 TH TOPOLOGICAL SORT PROJECT 3 500 Internal Error problems Hopefully all resolved (or close to) P3P1 grades are up (but muted) Leave canvas comment Emails tomorrow End of quarter GRAPHS
More informationGraph Algorithms. 1 Preliminary Denitions. CSci 335 Software Design and Analysis III Chapter 9 Graph Algorithms. Prof.
Preliminary Denitions Graph Algorithms There is a lot of terminology associated with graphs and graph algorithms, and so we start by dening the terms we will use for the remainder of this chapter. Denition.
More informationUNIT 3. Greedy Method. Design and Analysis of Algorithms GENERAL METHOD
UNIT 3 Greedy Method GENERAL METHOD Greedy is the most straight forward design technique. Most of the problems have n inputs and require us to obtain a subset that satisfies some constraints. Any subset
More informationL22-23: Graph Algorithms
Indian Institute of Science Bangalore, India भ रत य व ज ञ न स स थ न ब गल र, भ रत Department of Computational and Data Sciences DS 0--0,0 L-: Graph Algorithms Yogesh Simmhan simmhan@cds.iisc.ac.in Slides
More information1 Digraphs. Definition 1
1 Digraphs Definition 1 Adigraphordirected graphgisatriplecomprisedofavertex set V(G), edge set E(G), and a function assigning each edge an ordered pair of vertices (tail, head); these vertices together
More informationElementary Graph Algorithms: Summary. Algorithms. CmSc250 Intro to Algorithms
Elementary Graph Algorithms: Summary CmSc250 Intro to Algorithms Definition: A graph is a collection (nonempty set) of vertices and edges A path from vertex x to vertex y : a list of vertices in which
More informationChapter 5. Decrease-and-Conquer. Copyright 2007 Pearson Addison-Wesley. All rights reserved.
Chapter 5 Decrease-and-Conquer Copyright 2007 Pearson Addison-Wesley. All rights reserved. Decrease-and-Conquer 1. Reduce problem instance to smaller instance of the same problem 2. Solve smaller instance
More informationUnit #9: Graphs. CPSC 221: Algorithms and Data Structures. Will Evans 2012W1
Unit #9: Graphs CPSC 1: Algorithms and Data Structures Will Evans 01W1 Unit Outline Topological Sort: Getting to Know Graphs with a Sort Graph ADT and Graph Representations Graph Terminology More Graph
More informationDecreasing a key FIB-HEAP-DECREASE-KEY(,, ) 3.. NIL. 2. error new key is greater than current key 6. CASCADING-CUT(, )
Decreasing a key FIB-HEAP-DECREASE-KEY(,, ) 1. if >. 2. error new key is greater than current key 3.. 4.. 5. if NIL and.
More informationCS 270 Algorithms. Oliver Kullmann. Breadth-first search. Analysing BFS. Depth-first. search. Analysing DFS. Dags and topological sorting.
Week 5 General remarks and 2 We consider the simplest graph- algorithm, breadth-first (). We apply to compute shortest paths. Then we consider the second main graph- algorithm, depth-first (). And we consider
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 informationGraphs and Network Flows ISE 411. Lecture 7. Dr. Ted Ralphs
Graphs and Network Flows ISE 411 Lecture 7 Dr. Ted Ralphs ISE 411 Lecture 7 1 References for Today s Lecture Required reading Chapter 20 References AMO Chapter 13 CLRS Chapter 23 ISE 411 Lecture 7 2 Minimum
More informationAnnouncements. HW4 due Friday. Summer 2016 CSE373: Data Structures & Algorithms 1
Announcements HW4 due Friday Summer 0 Minimum Spanning Trees Hunter Zahn Summer 0 Summer 0 Spanning Trees A simple problem: Given a connected undirected graph G=(V,E), find a minimal subset of edges such
More information( ) ( ) C. " 1 n. ( ) $ f n. ( ) B. " log( n! ) ( ) and that you already know ( ) ( ) " % g( n) ( ) " #&
CSE 0 Name Test Summer 008 Last 4 Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time for the following code is in which set? for (i=0; i
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 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 informationMultidimensional Arrays & Graphs. CMSC 420: Lecture 3
Multidimensional Arrays & Graphs CMSC 420: Lecture 3 Mini-Review Abstract Data Types: List Stack Queue Deque Dictionary Set Implementations: Linked Lists Circularly linked lists Doubly linked lists XOR
More information