Lecture 11 Graph Algorithms

Slides:



Advertisements
Similar presentations
Cpt S 223 – Advanced Data Structures Graph Algorithms: Introduction
Advertisements

IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture10.
Tirgul 7 Review of graphs Graph algorithms: –DFS –Properties of DFS –Topological sort.
CS 312 – Graph Algorithms1 Graph Algorithms Many problems are naturally represented as graphs – Networks, Maps, Possible paths, Resource Flow, etc. Ch.
CSE 589 Applied Algorithms Spring 1999 Course Introduction Depth First Search.
Graph.
Graph & BFS.
Graph COMP171 Fall Graph / Slide 2 Graphs * Extremely useful tool in modeling problems * Consist of: n Vertices n Edges D E A C F B Vertex Edge.
Graph & BFS Lecture 22 COMP171 Fall Graph & BFS / Slide 2 Graphs * Extremely useful tool in modeling problems * Consist of: n Vertices n Edges D.
Lecture 10 Graph Algorithms. Definitions Graph is a set of vertices V, with edges connecting some of the vertices (edge set E). An edge can connect two.
Review of Graphs A graph is composed of edges E and vertices V that link the nodes together. A graph G is often denoted G=(V,E) where V is the set of vertices.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Spring 2015 Lecture 10: Elementary Graph Algorithms
CSC 331: Algorithm Analysis Decompositions of Graphs.
Graph Dr. Bernard Chen Ph.D. University of Central Arkansas.
Nattee Niparnan. Graph  A pair G = (V,E)  V = set of vertices (node)  E = set of edges (pairs of vertices)  V = (1,2,3,4,5,6,7)  E = ((1,2),(2,3),(3,5),(1,4),(4,
Graphs. Definitions A graph is two sets. A graph is two sets. –A set of nodes or vertices V –A set of edges E Edges connect nodes. Edges connect nodes.
Graphs Slide credits:  K. Wayne, Princeton U.  C. E. Leiserson and E. Demaine, MIT  K. Birman, Cornell U.
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.
CSC 213 – Large Scale Programming Lecture 31: Graph Traversals.
Graphs David Kauchak cs302 Spring Admin HW 12 and 13 (and likely 14) You can submit revised solutions to any problem you missed Also submit your.
CS138A Elementary Graph Algorithms Peter Schröder.
CSC 172 DATA STRUCTURES.
Breadth-First Search (BFS)
Graphs Chapter 20.
Graphs Lecture 19 CS2110 – Spring 2013.
Graphs Representation, BFS, DFS
CSE 373 Topological Sort Graph Traversals
Chapter 3. Decompositions of Graphs
School of Computing Clemson University Fall, 2012
CSC317 Graph algorithms Why bother?
CSE 2331/5331 Topic 9: Basic Graph Alg.
C.Eng 213 Data Structures Graphs Fall Section 3.
Lecture 12 Graph Algorithms
Unit 3 Graphs.
Depth-First Search.
I206: Lecture 15: Graphs Marti Hearst Spring 2012.
CS120 Graphs.
Graph Algorithms Using Depth First Search
Graph.
Graph Algorithm.
Lecture 15 CSE 331 Sep 29, 2014.
CS 3343: Analysis of Algorithms
Graphs A graph G = (V, E) V = set of vertices, E = set of edges
Graph & BFS.
Graphs Representation, BFS, DFS
Modeling and Simulation NETW 707
Graphs Chapter 15 explain graph-based algorithms Graph definitions
Search Related Algorithms
Chapter 22: Elementary Graph Algorithms I
Graph Representation (23.1/22.1)
Lectures on Graph Algorithms: searching, testing and sorting
Chapter 11 Graphs.
Yan Shi CS/SE 2630 Lecture Notes
CSE 373 Data Structures Lecture 16
Depth-First Search D B A C E Depth-First Search Depth-First Search
Chapter 15 Graphs © 2006 Pearson Education Inc., Upper Saddle River, NJ. All rights reserved.
Richard Anderson Winter 2009 Lecture 6
Depth-First Search CSE 2011 Winter April 2019.
Lecture 6 Graph Traversal
Depth-First Search CSE 2011 Winter April 2019.
GRAPHS G=<V,E> Adjacent vertices Undirected graph
Chapter 16 1 – Graphs Graph Categories Strong Components
CSE 417: Algorithms and Computational Complexity
GRAPHS Lecture 17 CS2110 Spring 2018.
Chapter 14 Graphs © 2011 Pearson Addison-Wesley. All rights reserved.
CSC 325: Algorithms Graph Algorithms David Luebke /24/2019.
Analysis and design of algorithm
Lecture 10 Graph Algorithms
Lecture 11 Graph Algorithms
Presentation transcript:

Lecture 11 Graph Algorithms

Graphs Vertices connected by edges. Powerful abstraction for relations between pairs of objects. Representation: Vertices: {1, 2, …, n} Edges: {(1, 2), (2, 3), …} Directed vs. Undirected graphs. We will always assume n is the number of vertex, and m is the number of edges.

Graphs in real life and their problems Traffic Networks Vertices = ? Edges = ? Directed? Typical Problems: shortest path Transportation (flows)

Graphs in real life and their problems Electricity Networks Vertices = ? Edges = ? Directed? Typical Problems: Minimum spanning tree Robustness

Graphs in real life and their problems Social Networks Vertices = ? Edges = ? Directed? Typical Problems: Detecting communities Opinion dynamics

Graphs in real life and their problems The Internet Graph Vertices = ? Edges = ? Directed? Typical Problems: Page Rank Routing

Focus Understand the classical graph algorithms Design idea Correctness Data structure and run time. Know how to apply these algorithms Identify the graph in the problem Abstract the problem and relate to the classical ones Tweak the algorithms Apply the algorithms on a different/augmented graph.

Representing Graphs – Adjacency Matrix 𝐴 𝑖,𝑗 ={ 1, 𝑖𝑓 𝑡ℎ𝑒𝑟𝑒 𝑖𝑠 𝑎𝑛 𝑒𝑑𝑔𝑒(𝑖,𝑗) 0,𝑖𝑓 𝑡ℎ𝑒𝑟𝑒 𝑖𝑠 𝑛𝑜 𝑒𝑑𝑔𝑒 (𝑖,𝑗) 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 Space: O(n2) Time: Check if (i,j) is an edge O(1) Enumerate all edges of a vertex O(n) Better for dense graphs. 1 2 3 4

Representing Graphs – Adjacency List Use a linked list for each vertex Linked List store its neighbors 1: [2, 3, 4] 2: [1, 4] 3: [1, 4] 4: [1, 2, 3] Space: O(m) Time: Check if (i,j) is an edge O(n) Enumerate all edges of a vertex O(degree) (degree of a vertex = # edges connected to the vertex) Better for sparse graphs. 1 2 3 4

Representing Graphs Getting faster query time? If you don’t care about space, can store both an adjacency array and an adjacency list. Saving space? Can use a hash table to store the edges (for adjacency array).

Basic Graph Algorithm: Graph Traversal Problem: Given a graph, we want to use its edges to visit all of its vertices. Motivation: Check if the graph is connected. (connected = can go between every pair of vertices) Find a path between two vertices Check other properties (see examples)

Depth First Search Visit neighbor’s neighbor first. DFS_visit(u) Mark u as visited FOR each edge (u, v) IF v is not visited DFS_visit(v) DFS FOR u = 1 to n

Depth First Search Tree IF DFS_visit(u) calls DFS_visit(v), add (u,v) to the tree. “Only preserve an edge if it is used to discover a new vertex” 1 1 2 3 2 3 4 4 5 5

DFS and Stack Recursions are implemented using stacks 1 DFS(5) DFS(4) 2 3 4 5

Pre-Order and Post-Order Pre-Order: The order in which the vertices are visited (entered the stack) Post-Order: The order in which the vertices are last touched (leaving the stack) Pre-Order: (1, 2, 5, 4, 3) Post-Order: (5, 4, 2, 3, 1) 1 DFS(5) DFS(4) DFS(2) DFS(3) DFS(1) 2 3 4 5

Type of Edges Tree/Forward: pre(u) < pre(v) < post(v) < post(u) Back: pre(v) < pre(u) < post(u) < post(v) Cross: pre(v) < post(v) < pre(u) < post(u)

Application 1 – Cycle Finding Given a directed graph G, find if there is a cycle in the graph. What edge type causes a cycle?

Algorithm DFS_cycle(u) Mark u as visited Mark u as in stack FOR each edge (u, v) IF v is in stack (u,v) is a back edge, found a cycle IF v is not visited DFS_visit(v) Mark u as not in stack. DFS FOR u = 1 to n DFS_visit(u)

Application 2 – Topological Sort Given a directed acyclic graph, want to output an ordering of vertices such that all edges are from an earlier vertex to a later vertex. Idea: In a DFS, all the vertices that can be reached from u will be reached. Examine pre-order and post-order Pre: a c e h d b f g Post: h e d c a b g f Output the inverse of post-order!