Data Structures & Algorithms Graphs

Slides:



Advertisements
Similar presentations
CSE 211 Discrete Mathematics
Advertisements

NP-Hard Nattee Niparnan.
Chapter 9 Graphs.
22C:19 Discrete Math Graphs Fall 2010 Sukumar Ghosh.
22C:19 Discrete Math Graphs Fall 2014 Sukumar Ghosh.
Graph-02.
Introduction to Graphs
1 NP-completeness Lecture 2: Jan P The class of problems that can be solved in polynomial time. e.g. gcd, shortest path, prime, etc. There are many.
 Graph Graph  Types of Graphs Types of Graphs  Data Structures to Store Graphs Data Structures to Store Graphs  Graph Definitions Graph Definitions.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
Prof. Amr Goneid, AUC1 Analysis & Design of Algorithms (CSCE 321) Prof. Amr Goneid Department of Computer Science, AUC Part R5. Graphs.
Graph & BFS.
Chapter 9 Graph algorithms. Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
Chapter 9 Graph algorithms Lec 21 Dec 1, Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects two different vertices. Edges are.
Applied Discrete Mathematics Week 12: Trees
Balanced Binary Search Trees height is O(log n), where n is the number of elements in the tree AVL (Adelson-Velsky and Landis) trees red-black trees get,
Graph Operations And Representation. Sample Graph Problems Path problems. Connectedness problems. Spanning tree problems.
Discrete Mathematics Lecture 9 Alexander Bukharovich New York University.
22C:19 Discrete Math Graphs Spring 2014 Sukumar Ghosh.
Social Media Mining Graph Essentials.
ALG0183 Algorithms & Data Structures Lecture 18 The basics of graphs. 8/25/20091 ALG0183 Algorithms & Data Structures by Dr Andy Brooks.
GRAPHS Education is what remains after one has forgotten what one has learned in school. Albert Einstein Albert Einstein Smitha N Pai.
GRAPH Learning Outcomes Students should be able to:
Graph. Data Structures Linear data structures: –Array, linked list, stack, queue Non linear data structures: –Tree, binary tree, graph and digraph.
Graphs CS /02/05 Graphs Slide 2 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved Definition.
IS 2610: Data Structures Graph April 5, 2004.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
Graph Theoretic Concepts. What is a graph? A set of vertices (or nodes) linked by edges Mathematically, we often write G = (V,E)  V: set of vertices,
GRAPHS CSE, POSTECH. Chapter 16 covers the following topics Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component,
Graphs Rosen, Chapter 8. Isomorphism (Rosen 560 to 563) Are two graphs G1 and G2 of equal form? That is, could I rename the vertices of G1 such that the.
1 CS104 : Discrete Structures Chapter V Graph Theory.
Mathematics of Networks (Cont)
Week 11 - Monday.  What did we talk about last time?  Binomial theorem and Pascal's triangle  Conditional probability  Bayes’ theorem.
1/24 Introduction to Graphs. 2/24 Graph Definition Graph : consists of vertices and edges. Each edge must start and end at a vertex. Graph G = (V, E)
Graph Theory and Applications
Introduction to Graphs. This Lecture In this part we will study some basic graph theory. Graph is a useful concept to model many problems in computer.
Introduction to Graph Theory
Graphs A graphs is an abstract representation of a set of objects, called vertices or nodes, where some pairs of the objects are connected by links, called.
Graph theory and networks. Basic definitions  A graph consists of points called vertices (or nodes) and lines called edges (or arcs). Each edge joins.
Data Structures & Algorithms Graphs Richard Newman based on book by R. Sedgewick and slides by S. Sahni.
Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects two different vertices. Edges are.
Graphs 황승원 Fall 2010 CSE, POSTECH. 2 2 Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects.
GRAPHS. Graph Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component, spanning tree Types of graphs: undirected,
Graph. Graphs G = (V,E) V is the vertex set. Vertices are also called nodes and points. E is the edge set. Each edge connects two different vertices.
Chapter 6 Graphs. 2 Outline Definitions, Terminologies and Applications Graph Representation Elementary graph operations Famous Graph Problems.
Graphs Upon completion you will be able to:
Graph Theory Unit: 4.
Chapter 9: Graphs.
Introduction to Graph Theory By: Arun Kumar (Asst. Professor) (Asst. Professor)
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
Graph Theory Graph Theory - History Leonhard Euler's paper on “Seven Bridges of Königsberg”, published in 1736.
Graphs Rosen, Chapter 8. NOT ONE OF THESE! One of these!
Grade 11 AP Mathematics Graph Theory Definition: A graph, G, is a set of vertices v(G) = {v 1, v 2, v 3, …, v n } and edges e(G) = {v i v j where 1 ≤ i,
Chap 7 Graph Def 1: Simple graph G=(V,E) V : nonempty set of vertices E : set of unordered pairs of distinct elements of V called edges Def 2: Multigraph.
1 GRAPH Learning Outcomes Students should be able to: Explain basic terminology of a graph Identify Euler and Hamiltonian cycle Represent graphs using.
Lecture 20. Graphs and network models 1. Recap Binary search tree is a special binary tree which is designed to make the search of elements or keys in.
1 Data Structures and Algorithms Graphs. 2 Graphs Basic Definitions Paths and Cycles Connectivity Other Properties Representation Examples of Graph Algorithms:
CSE 373, Copyright S. Tanimoto, 2001 Graphs 1 -
Graph theory Definitions Trees, cycles, directed graphs.
Balanced Binary Search Trees
Graph Operations And Representation
Graph Algorithm.
Graph Operations And Representation
Graphs Chapter 7 Visit for more Learning Resources.
Graph Operations And Representation
Introduction to Graph Theory
Graphs G = (V,E) V is the vertex set.
Chapter 9 Graph algorithms
Presentation transcript:

Data Structures & Algorithms Graphs Richard Newman based on book by R. Sedgewick and slides by S. Sahni 1 1 1 1

Definitions G = (V,E) V is the vertex set Vertices are also called nodes E is the edge set Each edge connects two different vertices. Edges are also called arcs 2 2 2 2

Definitions Directed edge has an orientation (u,v) Undirected edge has no orientation {u,v} Undirected graph => no oriented edge Directed graph (a.k.a. digraph) => every edge has an orientation u v u v 3 3 3 3

(Undirected) Graph 2 3 8 10 1 4 5 9 11 6 7 4 4 4 4

Directed Graph 2 3 8 10 1 4 5 9 11 6 7 5 5 5 5

Application: Communication NW 2 3 8 10 1 4 5 9 11 6 7 Vertex = city, edge = communication link 6 6 6 6

Driving Distance/Time Map 2 3 8 10 1 4 5 9 11 6 7 Vertex = city edge weight = driving distance/time 7 7 7 7

Street Map 2 3 8 10 1 4 5 9 11 6 7 Some streets are one way. 8 8 8 8

Complete Undirected Graph Has all possible edges. n = 2 n = 3 n = 4 n = 1 Also known as clique 9 9 9 9

Number Of Edges—Undirected Graph Each edge is of the form (u,v), u != v Number of such pairs in an n = |V| vertex graph is n(n-1) Since edge (u,v) is the same as edge (v,u), the number of edges in a complete undirected graph is n(n-1)/2 Number of edges in an undirected graph is |E| <= n(n-1)/2 10 10 10 10

Number Of Edges—Directed Graph Each edge is of the form (u,v), u != v Number of such pairs in an n = |V| vertex graph is n(n-1) Since edge (u,v) is NOT the same as edge (v,u), the number of edges in a complete directed graph is n(n-1) Number of edges in a directed graph is |E| <= n(n-1) 11 11 11 11

Vertex Degree Number of edges incident to vertex. 2 3 8 10 1 4 5 9 11 6 7 Number of edges incident to vertex. degree(2) = 2, degree(5) = 3, degree(3) = 1 12 12 12 12

Sum Of Vertex Degrees Sum of degrees = 2e (e is number of edges) 8 10 9 11 Sum of degrees = 2e (e is number of edges) 13 13 13 13

In-Degree Of A Vertex in-degree is number of incoming edges 2 3 8 10 1 4 5 9 11 6 7 in-degree is number of incoming edges indegree(2) = 1, indegree(8) = 0 14 14 14 14

Out-Degree Of A Vertex out-degree is number of outbound edges 2 3 8 10 1 4 5 9 11 6 7 out-degree is number of outbound edges outdegree(2) = 1, outdegree(8) = 2 15 15 15 15

Sum Of In- And Out-Degrees each edge contributes 1 to the in- degree of some vertex and 1 to the out-degree of some other vertex sum of in-degrees = sum of out- degrees = e, where e = |E| is the number of edges in the digraph 16 16 16 16

Sample Graph Problems Path problems Connectedness problems Spanning tree problems Flow problems Coloring problems 17 17 17 17

Path Finding Path between 1 and 8 Path length is 20 2 3 8 1 10 4 5 9 11 6 7 Path length is 20 18 18 18 18

Path Finding Another path between 1 and 8 Path length is 28 2 3 8 1 10 4 5 9 11 6 7 Path length is 28 19 19 19 19

Path Finding No path between 1 and 10 2 3 8 1 10 4 5 9 11 6 7 20 20 20

Connected Graph Undirected graph There is a path between every pair of vertices 21 21 21 21

Example of Not Connected 2 3 8 10 1 4 5 9 11 6 7 22 22 22 22

Example of Connected 2 3 8 10 1 4 5 9 11 6 7 5 23 23 23 23

Connected Component A maximal subgraph that is connected Cannot add vertices and edges from original graph and retain connectedness A connected graph has exactly 1 component 24 24 24 24

Connected Components 2 3 8 10 1 4 5 9 11 6 7 25 25 25 25

Communication Network 2 3 8 10 1 4 5 9 11 6 7 Each edge is a link that can be constructed (i.e., a feasible link) 26 26 26 26

Communication Network Problems Is the network connected? Can we communicate between every pair of cities? Find the components Want to construct smallest number of feasible links so that resulting network is connected 27 27 27 27

Cycles And Connectedness 2 3 8 10 1 4 5 9 11 6 7 Removal of an edge that is on a cycle does not affect connectedness. 28 28 28 28

Cycles And Connectedness 2 3 8 1 10 4 5 9 11 6 7 Connected subgraph with all vertices and minimum number of edges has no cycles 29 29 29 29

Tree Connected graph that has no cycles n vertex connected graph with n-1 edges 30 30 30 30

Spanning Tree Subgraph that includes all vertices of the original graph Subgraph is a tree If original graph has n vertices, the spanning tree has n vertices and n-1 edges 31 31 31 31

Minimum Cost Spanning Tree 2 3 8 10 1 4 5 9 11 6 7 Tree cost is sum of edge weights/costs 32 32 32 32

A Spanning Tree Spanning tree cost = 51 2 4 3 8 8 1 6 10 2 4 5 4 4 3 5 9 8 11 5 6 2 7 6 7 Spanning tree cost = 51 33 33 33 33

Minimum Cost Spanning Tree 2 4 3 8 8 1 6 10 2 4 5 4 4 3 5 9 8 11 5 6 2 7 6 7 Spanning tree cost = 41. 34 34 34 34

A Wireless Broadcast Tree 2 4 3 8 8 1 6 10 2 4 5 4 4 3 5 9 8 11 5 6 2 7 6 7 Source = 1, weights = needed power. Cost = 4 + 8 + 5 + 6 + 7 + 8 + 3 = 41 35 35 35 35

Graph Representation Adjacency Matrix Adjacency Lists Linked Adjacency Lists Array Adjacency Lists 36 36 36 36

Adjacency Matrix Binary (0/1) n x n matrix, where n = # of vertices A(i,j) = 1 iff (i,j) is an edge 1 2 3 4 5 2 3 1 4 5 1 1 1 1 1 1 1 1 1 1 37 37 37 37

Adjacency Matrix Properties 2 3 1 4 5 Diagonal entries are zero Adjacency matrix of an undirected graph is symmetric A(i,j) = A(j,i) for all i and j 38 38 38 38

Adjacency Matrix (Digraph) 2 3 1 4 5 Diagonal entries are zero Adjacency matrix of a digraph need not be symmetric. 39 39 39 39

Adjacency Matrix n2 bits of space For an undirected graph, may store only lower or upper triangle (exclude diagonal). Space? (n-1)n/2 bits Time to find vertex degree and/or vertices adjacent to a given vertex? O(n) 40 40 40 40

Adjacency Lists Adjacency list for vertex i is a linear list of vertices adjacent from vertex i Graph is an array of n adjacency lists aList[1] = (2,4) aList[2] = (1,5) aList[3] = (5) aList[4] = (5,1) aList[5] = (2,4,3) 2 3 1 4 5 41 41 41 41

Linked Adjacency Lists Each adjacency list is a chain. aList[1] aList[5] [2] [3] [4] 2 4 2 3 1 4 5 1 5 5 5 1 2 4 3 Array Length = n # of chain nodes = 2e (undirected graph) # of chain nodes = e (digraph) 42 42 42 42

Array Adjacency Lists Each adjacency list is an array list 2 3 1 4 5 aList[1] aList[5] [2] [3] [4] Array Length = n # of list elements = 2e (undirected graph) # of list elements = e (digraph) 43 43 43 43

Weighted Graph Representations Cost adjacency matrix C(i,j) = cost of edge (i,j) Adjacency lists Each list element is a pair (adjacent vertex, edge weight) 44 44 44 44

Paths Simple Path List of distinct vertices v0, v1, … , vn Each pair of successive vertices is an edge in E (vi, vi+1) Hamilton Path Visit each node exactly once Euler Path Visit each edge exactly once 45 45 45 45

Bipartite Graph Vertex set V can be partitioned into two disjoint subsets, V0 and V1 No two vertices in Vi have an edge between them Complete bipartite graphs 46 46 46 46

Hamilton Path Does this graph have a Hamilton path? Yes! 2 or 7 to 10 3 8 10 1 4 5 9 11 6 7 Yes! 2 or 7 to 10 Very hard in general 47 47 47 47

Euler Path Does this graph have a Euler path? Yes! 9 to 10 2 3 8 10 1 4 5 9 11 6 7 Yes! 9 to 10 Very easy in general 48 48 48 48

Euler Path Bridges of Königsberg People wanted to walk over all bridges without crossing one twice So they asked Euler … 49 49 49 49

Euler Path Bridges of Königsberg People wanted to walk over all bridges without crossing one twice Does this graph have a Euler path? 50 50 50 50

Euler Path Easy to determine existence Graph must be connected Degree of all nodes… … must be even, except for two A little work to find the path But also efficient… Find path between odd nodes Add loops as encountered 51 51 51 51

Graph Problems These two problems Seem very similar One is easy The other is really hard! Classify graph problems Easy Tractable Intractable Unknown 52 52 52 52

Easy Graph Problems Simple, efficient algorithms exist Linear or small polynomial time Simple connectivity Strong connectivity in digraphs Transitive closure Minimum spanning tree Single-source shortest path (SSSP) 53 53 53 53

Tractable Graph Problems Polynomial time algorithm is known… but … hard to make into a practical program Planarity Can graph be drawn without any lines representing edges intersecting? Matching Largest subset of edges where no two connect to same vertex Even cycles in digraphs 54 54 54 54

Graph Planarity Kuratowski’s theorem: For a graph to be non-planar It must contain (after removal of degree-2 nodes) a subgraph isomorphic to either 6-node complete bipartite graph, or 5-clique 55 55 55 55

More Tractable Graph Problems Often tractable problems can be solved with general purpose algorithm through graph transformation Assignment (network-flow) Bipartite weighted matching – minimum weight perfect matching in bipartite graph Edge-connectivity (network-flow) What is minimum number of edges whose removal will partition graph? Node-connectivity (network-flow) 56 56 56 56

More Tractable Graph Problems Mail carrier problem Tour with minimum number of edges that uses every edge at least once Harder than Euler tour Easier than Hamilton tour 57 57 57 57

Intractable Graph Problems No known polynomial time algorithm NP-hard complexity class However, may be polynomial time to verify a solution (class NP) Longest path (version of Hamilton Path) What is the longest simple path in G? Independent Set Largest subset of vertices where no two have an edge between them 58 58 58 58

Intractable Graph Problems Colorability Assign k colors to vertices such that no edge connects two vertices of same color Easy for k=2 (bipartite graph) Only even length cycles Hard for k=3! Clique What is largest complete subgraph? (What is relationship to Independent Set?) 59 59 59 59

Graph Coloring Can this graph be 2-colored? No! Why not? Odd cycle! Can it be 3-colored? Yes! 60 60 60 60

Graph Edge Coloring Color each edge so that no two edges of same color are adjacent to same vertex Chromatic Index = min # colors needed Vizing’s Theorem: CI is either max degree D or D+1 Yes! Can it be 4-edge colored? 61 61 61 61

Graph Edge Coloring Despite the narrow range of possibilities This problem is still intractable!!!!! There are polynomial time algorithms for bipartite graphs Brings up larger issue: Can we solve exactly hard problem for special case? Can we “get close” for all cases? How close is “close”? 62 62 62 62

Unknown Graph Problems Graph Isomorphism Are two graphs identical other than the names of their vertices? Note that subgraph isomorphism is hard! How do you know this already? Clique problem! 63 63 63 63

Summary Graph definitions, properties Graph representations Graph problems and classifications Next: Graph Search, Digraphs, DAGs 64 64 64 64