BACKGROUND: A BRIEF INTRODUCTION TO GRAPH THEORY

Similar documents
Graph Algorithms Using Depth First Search

March 20/2003 Jayakanth Srinivasan,

Graph Algorithms. Definition

Graph. Vertex. edge. Directed Graph. Undirected Graph


Directed Graphs (II) Hwansoo Han

CSI 604 Elementary Graph Algorithms

Konigsberg Bridge Problem

Algorithm Design and Analysis

Graph and Digraph Glossary

Copyright 2000, Kevin Wayne 1

Chapter 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.

Lecture 5: Graphs & their Representation

Lecture 22 Tuesday, April 10

Graphs. Introduction To Graphs: Exercises. Definitions:

Foundations of Discrete Mathematics

7.1 Introduction. A (free) tree T is A simple graph such that for every pair of vertices v and w there is a unique path from v to w

CS473-Algorithms I. Lecture 13-A. Graphs. Cevdet Aykanat - Bilkent University Computer Engineering Department

UNIT III TREES. A tree is a non-linear data structure that is used to represents hierarchical relationships between individual data items.

Elements of Graph Theory

LECTURE NOTES OF ALGORITHMS: DESIGN TECHNIQUES AND ANALYSIS

CS 310 Advanced Data Structures and Algorithms

11/22/2016. Chapter 9 Graph Algorithms. Introduction. Definitions. Definitions. Definitions. Definitions

Graph Representation

Chapter 9 Graph Algorithms

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

Section Summary. Introduction to Trees Rooted Trees Trees as Models Properties of Trees

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

Friday, March 30. Last time we were talking about traversal of a rooted ordered tree, having defined preorder traversal. We will continue from there.

Lecture 3: Recap. Administrivia. Graph theory: Historical Motivation. COMP9020 Lecture 4 Session 2, 2017 Graphs and Trees

Chapter 9 Graph Algorithms

Elementary Graph Algorithms CSE 6331

4 Basics of Trees. Petr Hliněný, FI MU Brno 1 FI: MA010: Trees and Forests

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

CMSC th Lecture: Graph Theory: Trees.

Chapter Summary. Introduction to Trees Applications of Trees Tree Traversal Spanning Trees Minimum Spanning Trees

Introduction III. Graphs. Motivations I. Introduction IV

Lecture 2 - Graph Theory Fundamentals - Reachability and Exploration 1

Discrete mathematics II. - Graphs

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

Chapter 9 Graph Algorithms

MAT 7003 : Mathematical Foundations. (for Software Engineering) J Paul Gibson, A207.

Introduction to Computers and Programming. Concept Question

Introduction to Graph Theory

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

Definition of Graphs and Trees. Representation of Trees.

Graph Algorithms: Chapters Part 1: Introductory graph concepts

Lecture 9 Graph Traversal

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

Discrete Structures CISC 2315 FALL Graphs & Trees

Lecture 3: Graphs and flows

Binary Trees

Graph: representation and traversal

Algorithms. Graphs. Algorithms

Algorithm Design (8) Graph Algorithms 1/2

Introduction aux Systèmes Collaboratifs Multi-Agents

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

1 Digraphs. Definition 1

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

CSC Intro to Intelligent Robotics, Spring Graphs

ROOT: A node which doesn't have a parent. In the above tree. The Root is A.

Undirected Graphs. Hwansoo Han

Graph Theory. ICT Theory Excerpt from various sources by Robert Pergl

CS 441 Discrete Mathematics for CS Lecture 26. Graphs. CS 441 Discrete mathematics for CS. Final exam

W4231: Analysis of Algorithms

Graphs Introduction and Depth first algorithm

Graphs & Digraphs Tuesday, November 06, 2007

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

CMSC 380. Graph Terminology and Representation

Data Structure. IBPS SO (IT- Officer) Exam 2017

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

Graphs: basic concepts and algorithms

Strongly connected: A directed graph is strongly connected if every pair of vertices are reachable from each other.

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

Algorithms: Lecture 10. Chalmers University of Technology

CS 4407 Algorithms Lecture 5: Graphs an Introduction

GRAPHICAL ALGORITHMS. UNIT _II Lecture-12 Slides No. 3-7 Lecture Slides No Lecture Slides No

Outline. Introduction. Representations of Graphs Graph Traversals. Applications. Definitions and Basic Terminologies

Fundamentals of Data Structure

3.1 Basic Definitions and Applications

Trees : Part 1. Section 4.1. Theory and Terminology. A Tree? A Tree? Theory and Terminology. Theory and Terminology

Depth-first search in undirected graphs What parts of the graph are reachable from a given vertex?

Basic Graph Definitions

Advanced Data Structures and Algorithms

4. (a) Draw the Petersen graph. (b) Use Kuratowski s teorem to prove that the Petersen graph is non-planar.

Graph Theory Review. January 30, Network Science Analytics Graph Theory Review 1

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

Paths. Path is a sequence of edges that begins at a vertex of a graph and travels from vertex to vertex along edges of the graph.

Lecture 26: Graphs: Traversal (Part 1)

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

Course Introduction / Review of Fundamentals of Graph Theory

Introductory Remarks

COT 6405 Introduction to Theory of Algorithms

Characterizing Graphs (3) Characterizing Graphs (1) Characterizing Graphs (2) Characterizing Graphs (4)

Graph Theory S 1 I 2 I 1 S 2 I 1 I 2

Lecture 10. Elementary Graph Algorithm Minimum Spanning Trees

Graph definitions. There are two kinds of graphs: directed graphs (sometimes called digraphs) and undirected graphs. An undirected graph

CHAPTER 13 GRAPH ALGORITHMS

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

Graph Representations and Traversal

Transcription:

BACKGROUND: A BRIEF INTRODUCTION TO GRAPH THEORY General definitions; Representations; Graph Traversals; Topological sort;

Graphs definitions & representations Graph theory is a fundamental tool in sparse matrix techniques. DEFINITION. A graph G is defined as a pair of sets G = (V, E) with E V V. So G represents a binary relation. The graph is undirected if the binary relation is symmetric. It is directed otherwise. V is the vertex set and E is the edge set. If R is a binary relation between elements in V then, we can represent it by a graph G = (V, E) as follows: (u, v) E u R v Undirected graph symmetric relation 4-2 Graphs

2 2 4 ( R 2); (4 R ); (2 R 3); (3 R 2); (3 R 4) 3 4 ( R 2); (2 R 3); (3 R 4); (4 R ) Given the numbers 5, 3, 9, 5, 6, show the two graphs representing the relations R: Either x < y or y divides x. R2: x and y are congruent modulo 3. [ mod(x,3) = mod(y,3)] E V 2. For undirected graphs: E V ( V + )/2. A sparse graph is one for which E V 2. 4-3 Graphs 3

Graphs Examples and applications Applications of graphs are numerous.. Airport connection system: (a) R (b) if there is a non-stop flight from (a) to (b). 2. Highway system; 3. Computer Networks; 4. Electrical circuits; 5. Traffic Flow; 6. Social Networks; 7. Sparse matrices;... 4-4 Graphs

Basic Terminology & notation: If (u, v) E, then v is adjacent to u. The edge (u, v) is incident to u and v. If the graph is directed, then (u, v) is an outgoing edge from u and incoming edge to v Adj(i) = {j j adjacent to i} The degree of a vertex v is the number of edges incident to v. Can also define the indegree and outdegree. (Sometimes self-edge i i omitted) S is the cardinality of set S [so Adj(i) == deg( i) ] A subgraph G = (V, E ) of G is a graph with V V and E E. 4-5 Graphs

Representations of Graphs A graph is nothing but a collection of vertices (indices from to n), each with a set of its adjacent vertices [in effect a sparse matrix without values ] Therefore, can use any of the sparse matrix storage formats - omit the real values arrays. Adjacency matrix Assume V = {, 2,, n}. Then the adjacency matrix of G = (V, E) is the n n matrix, with entries: a i,j = { if (i, j) E 0 Otherwise 4-6 Graphs

Representations of Graphs (cont.) Example: 2 4 3 2 4 3 4-7 Graphs

Dynamic representation: Linked lists 2 3 4 5 6 Null Null Null Null Null Null An array of linked lists. A linked list associated with vertex i, contains all the vertices adjacent to vertex i. General and concise for sparse graphs (the most practical situations). Not too economical for use in sparse matrix methods 4-8 Graphs

More terminology & notation For a given Y X, the section graph of Y is the subgraph G Y = (Y, E(Y )) where E(Y ) = {(x, y) E x Y, y in Y } A section graph is a clique if all the nodes in the subgraph are pairwise adjacent ( dense block in matrix) A path is a sequence of vertices w 0, w,..., w k such that (w i, w i+ ) E for i = 0,..., k. The length of the path w 0, w,..., w k is k (# of edges in the path) A cycle is a closed path, i.e., a path with w k = w 0. A graph is acyclic if it has no cycles. 4-9 Graphs

Find cycles in this graph: 5 A path in an indirected graph 5 2 3 2 3 4 4 7 6 7 6 A path w 0,..., w k is simple if the vertices w 0,..., w k are distinct (except that we may have w 0 = w k for cycles). An undirected graph is connected if there is path from every vertex to every other vertex. A digraph with the same property is said to be strongly connected 4-0 Graphs

The undirected form of a directed graph the undirected graph obtained by removing the directions of all the edges. Another term used symmetrized form - A directed graph whose undirected form is connected is said to be weakly connected or connected. Tree = a graph whose undirected form, i.e., symmetrized form, is acyclic & connected Forest = a collection of trees In a rooted tree one specific vertex is designated as a root. Root determines orientation of the tree edges in parent-child relation 4- Graphs

Root 5 Root 5 2 2 3 4 3 4 9 8 6 9 8 6 0 7 0 7 Parent-Child relation: immediate neighbors of root are children. Root is their parent. Recursively define children-parents In example: v 3 is parent of v 6, v 8 and v 6, v 8 are chidren of v 3. Nodes that have no children are leaves. In example: v 0, v 7, v 8, v 4 Descendent, ancestors,... 4-2 Graphs

Tree traversals Tree traversal is a process of visiting all vertices in a tree. Typically traversal starts at root. Want: systematic traversals of all nodes of tree moving from a node to a child or parent Preorder traversal: Visit parent before children [recursively] In example: v, v 2, v 9, v 0, v 3, v 8, v 6, v 7, v 5, v 4 Postorder traversal: Visit children before parent [recursively] In example : v 0, v 9, v 2, v 8, v 7, v 6, v 3, v 4, v 5, v 4-3 Graphs

Graphs Traversals Depth First Search Issue: systematic way of visiting all nodes of a general graph Two basic methods: Breadth First Search (to be seen later) and Depth-First Search Idea of DFS is recursive: Algorithm DF S(G, v) (DFS from v) Visit and Mark v; for all edges (v, w) do if w is not marked then DF S(G, w) If G is undirected and connected, all nodes will be visited If G is directed and strongly connected, all nodes will be visited 4-4 Graphs

Depth First Search undirected graph example A B C D G E F Assume adjacent nodes are listed in alphabetical order. DFS traversal from A? 4-5 Graphs

Depth First Search directed graph example A B C D G E F Assume adjacent nodes are listed in alphabetical order. DFS traversal from A? 4-6 Graphs

Depth-First-Search Tree: Consider the parent-child relation: v is a parent of u if u was visited from v in the depth first search algorithm. The (directed) graph resulting from this binary relation is a tree called the Depth-First-Search Tree. To describe tree: only need the parents list. To traverse all the graph we need a DFS(v,G) from each node v that has not been visited yet so add another loop. Refer to this as DFS(G) When a new vertex is visited in DFS, some work is done. Example: we can build a stack of nodes visited to show order (reverse order: easier) in which the node is visited. 4-7 Graphs

EXAMPLE 3 5 We assume adjacency list o o is in increasing order. [e.g: Adj(4)=(,5,6,7)] 4 6 o-----o-----o / \ / / \ / / \ / / \ / / \ / 2 o 7 o DFS traversal: --> 2 --> 3 --> 4 --> 5 --> 6 --> 7 Parents list: 4 4 6 3 o o 5 4 6 o------o------o <----- Depth First / / Search Tree / / 2 o 7 o 4-8 Graphs

Back edges, forward edges, and cross edges E A 0 0 00 B 000000 0 0 0 D 0 00 0 0 00 0 0 00 0000000 0 00 F Thick red lines: DFS traversal tree from A A F is a Forward edge F B is a Back edge C B and G F are Cross-edges. 4-9 Graphs C G

Postorder traversal : label the nodes so that children in tree labeled before root. Important for some algorithms label(i) == order of completion of visit of subtree rooted at node i Notice: E 7 A 0 00 B 0 000000 4 0 0 0 0 0 D 00 00 00 0 5 00 00 00 0000000 F Tree-edges / Forward edges : labels decrease in Cross edges : labels decrease in Back-edges : labels increase in 2 C 6 3 G 4-20 Graphs

Properties of Depth First Search If G is a connected undirected (or strongly directed) graph, then each vertex will be visited once and each edge will be inspected at least once. Therefore, for a connected undirected graph, The cost of DFS is O( V + E ) If the graph is undirected, then there are no cross-edges. (all non-tree edges are called back-edges ) Theorem: A directed graph is acyclic iff a DFS search of G yields no back-edges. 4-2 Graphs

Topological Sort The Problem: Given a Directed Acyclic Graph (DAG), order the vertices from to n such that, if (u, v) is an edge, then u appears before v in the ordering. Equivalently, label vertices from to n so that in any (directed) path from a node labelled k, all vertices in the path have labels >k. Many Applications Prerequisite requirements in a program Scheduling of tasks for any project Parallel algorithms;... 4-22 Graphs

Topological Sorting: A first algorithm Property exploited: An acyclic Digraph must have at least one vertex with indegree = 0. Prove this Algorithm: First label these vertices as, 2,..., k; Remove these vertices and all edges incident from them Resulting graph is again acyclic... nodes with indegree = 0. label these nodes as k +, k + 2,..., Repeat.. Explore implementation aspects. 4-23 Graphs

Alternative methods: Topological sort from DFS Depth first search traversal of graph. Do a post-order traversal of the DFS tree. Algorithm Lst = T sort(g) (post-order DFS from v) Mark = zeros(n,); Lst = for v=:n do: if (Mark(v)== 0) [Lst, Mark] = dfs(v, G, Lst, Mark); end end dfs(v, G, Lst, Mark) is the DFS(G,v) which adds v to the top of Lst after finishing the traversal from v 4-24 Graphs

Lst = DFS(G,v) Visit and Mark v; for all edges (v, w) do if w is not marked then Lst = DF S(G, w) Lst = [v, Lst] Topological order given by the final Lst array of Tsort Explore implementation issue Implement in matlab Show correctness [i.e.: is this indeed a topol. order? hint: no back-edges in a DAG] 4-25 Graphs

GRAPH MODELS FOR SPARSE MATRICES See Chap. 3 of text Sparse matrices and graphs. Bipartite model Graph Laplaceans. Application: Graph Partitioning

Graph Representations of Sparse Matrices. Recall: Adjacency Graph G = (V, E) of an n n matrix A : V = {, 2,..., N} E = {(i, j) a ij 0} G == undirected if A has a symmetric pattern Example: 2 3 4 3 2 4 4-27 graph

Show the matrix pattern for the graph on the right and give an interpretation of the path v 4, v 2, v 3, v 5, v on the matrix 4 2 3 7 6 A separator is a set Y of vertices such that the graph G X Y is disconnected. Example: Y = {v 3, v 4, v 5 } is a separator in the above figure 5 4-28 graph

Example: Adjacency graph of: A =. Example: For any matrix A, what is the graph of A 2? [interpret in terms of paths in the graph of A] 4-29 graph

Two graphs are isomorphic is there is a mapping between the vertices of the two graphs that preserves adjacency. Are the following 3 graphs isomorphic? If yes find the mappings between them. 4 2 2 3 3 2 4 5 4 5 5 6 6 3 6 Graphs are identical labels are different 4-30 graph

Bipartite graph representation Each row is represented by a vertex Each column is represented by a vertex Relations only between rows and columns. Row i is connected to column j if a ij 0 Example: 4-3 graph

Interpretation of graphs of matrices Note: the bipartite model is used only for specific cases [e.g. rectangular matrices,...] - By default we use the standard definition of graphs. What is the graph of A + B (for two n n matrices)? What is the graph of A T? What is the graph of A.B? What is the graph of A k?

In which of the following cases is the underlying physical mesh the same as the graph of A (in the sense that edges are the same): Finite difference mesh [consider the simple case of 5-pt and 7-pt FD problems - then 9-point meshes. ] Finite element mesh with linear elements (e.g. triangles)? Finite element mesh with other types of elements? [to answer this question you would have to know more about higher order elements] 4-33 graph

Graph Laplaceans - Definition Laplace-type matrices associated with general undirected graphs useful in many applications Given a graph G = (V, E) define A matrix W of weights w ij for each edge Assume w ij 0,, w ii = 0, and w ij = w ji (i, j) The diagonal matrix D = diag(d i ) with d i = j i w ij Corresponding graph Laplacean of G is: L = D W Gershgorin s theorem L is positive semidefinite 4-34 graph

Simplest case: w ij = { if (i, j) E&i j 0 else D = diag d i = w ij j i Define the graph Laplacean for the graph associated with the simple mesh shown next. [use the simple weights of 0 or ] 9 0 2 5 6 7 8 2 3 What is the difference with the discretization of the Laplace operator in 2-D for case when mesh is the same as this graph? 4 4-35 graph

A few properties of graph Laplaceans x i x j Strong relation between x T Lx and local distances between entries of x Let L = any matrix s.t. L = D W, with D = diag(d i ) and w ij 0, d i = j i w ij Property : for any x R n : x Lx = 2 i,j w ij x i x j 2 4-36 graph

Property 2: (generalization) for any Y R d n : Tr [Y LY ] = 2 w ij y i y j 2 i,j Property 3: For the particular L = I n XLX = X X == n Covariance matrix Property 4: L is singular and admits the null vector e =ones(n,) 4-37 graph

Property 5: (Graph partitioning) Consider situation when w ij {0, }. If x is a vector of signs (±) then x Lx = 4 ( number of edge cuts ) edge-cut = pair (i, j) with x i x j Would like to minimize (Lx, x) subject to x {, } n and e T x = 0 [balanced sets] Wll solve a relaxed form of this problem 4-38 graph

Consider any symmetric (real) matrix A with eigenvalues λ λ 2 λ n and eigenvectors u,, u n Recall that: (Min reached for x = u ) (Ax, x) min x R n (x, x) = λ In addition: (Min reached for x = u 2 ) (Ax, x) min x u (x, x) = λ 2 For a graph Laplacean u = e = vector of all ones and...vector u 2 is called the Fiedler vector. It solves a relaxed form of the problem - 4-39 graph

min x {,} n ; e T x=0 (Lx, x) (x, x) min x R n ; e T x=0 (Lx, x) (x, x) Define v = u 2 then lab = sign(v med(v)) 4-40 graph