Presentation is loading. Please wait.

Presentation is loading. Please wait.

Data Structures & Algorithms Graphs

Similar presentations


Presentation on theme: "Data Structures & Algorithms Graphs"— Presentation transcript:

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

2 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

3 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

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

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

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

7 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

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

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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

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

18 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

19 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

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

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

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

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

24 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

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

26 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

27 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

28 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

29 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

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

31 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

32 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

33 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

34 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

35 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 = = 41 35 35 35 35

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

37 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

38 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

39 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

40 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

41 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

42 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

43 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

44 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

45 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

46 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

47 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

48 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

49 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

50 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

51 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

52 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

53 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

54 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

55 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

56 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

57 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

58 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

59 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

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

61 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

62 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

63 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

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


Download ppt "Data Structures & Algorithms Graphs"

Similar presentations


Ads by Google