Presentation is loading. Please wait.

Presentation is loading. Please wait.

Graph Dr. Bernard Chen Ph.D. University of Central Arkansas.

Similar presentations


Presentation on theme: "Graph Dr. Bernard Chen Ph.D. University of Central Arkansas."— Presentation transcript:

1 Graph Dr. Bernard Chen Ph.D. University of Central Arkansas

2 Graph Algorithms Graphs and Theorems about Graphs Graph Algorithms minimum spanning tree

3 What can graphs model? Cost of wiring electronic components together. Shortest route between two cities. Finding the shortest distance between all pairs of cities in a road atlas.

4 What is a Graph? Informally a graph is a set of nodes joined by a set of lines or arrows. 1 1 2 3 4 4 5566 2 3

5 Directed Graph A directed graph is a pair ( V, E ), where the set V is a finite set and E is a binary relation on V. The set V is called the vertex set of G and the elements are called vertices. The set E is called the edge set of G and the elements are edges

6 Directed Graph 1 2 3 4 56 V = { 1, 2, 3, 4, 5, 6, 7 } | V | = 7 E = { (1,2), (2,2), (2,4), (4,5), (4,1), (5,4),(6,3) } | E | = 7 Self loop 7 Isolated node

7 Undirected Graph An undirected graph G = ( V, E ), but unlike a digraph the edge set E consist of unordered pairs. We use the notation (a, b ) to refer to a directed edge, and { a, b } for an undirected edge.

8 Undirected Graph A D E F B C V = { A, B, C, D, E, F } |V | = 6 E = { {A, B}, {A,E}, {B,E}, {C,F} } |E | = 4 Some texts use (a, b) also for undirected edges. So ( a, b ) and ( b, a ) refers to the same edge.

9 Degree Degree of a Vertex in an undirected graph is the number of edges incident on it. In a directed graph, the out degree of a vertex is the number of edges leaving it and the in degree is the number of edges entering it.

10 Degree A D E F B C The degree of B is 2.

11 Degree 1 2 4 5 The in degree of 2 is 2 and the out degree of 2 is 3.

12 Weighted Graph A weighted graph is a graph for which each edge has an associated weight, usually given by a weight function w: E  R.

13 1 2 3 4 56.5 1.2.2.5 1.5.3 Weighted Graph

14 Implementation of a Graph Adjacency-list representation of a graph G = ( V, E ) consists of an array ADJ of |V | lists, one for each vertex in V. For each u  V, ADJ [ u ] points to all its adjacent vertices.

15 Implementation of a Graph 1 5 1 2 2 5 4 4 3 3 25 1534 24 2 4 5 1 3 2

16 1 5 1 2 2 5 4 4 3 3 25 534 4 5 5

17 Adjacency lists Advantage: Saves space for sparse graphs. Most graphs are sparse. “Visit” edges that start at v Must traverse linked list of v Size of linked list of v is degree(v)  (degree(v))

18 Adjacency-matrix- representation Adjacency-matrix-representation of a graph G = ( V, E) is a |V | x |V | matrix A = ( a ij ) such that a ij = 1 (or some Object) if (i, j )  E 0 (or null) otherwise.

19 Adjacency-matrix- representation 0 4 1 3 2 0 1 2 3 4 0123401234 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0

20 Adjacency-matrix- representation 0 1 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 2 3 4 0123401234 0 4 1 3 2

21 Adjacency-matrix- representation Advantage: Saves space on pointers for dense graphs, and on small unweighted graphs using 1 bit per edge. Check for existence of an edge (v, u) (adjacency [i] [j]) == true?) So  (1)

22 Graph Algorithms Graphs and Theorems about Graphs Graph Algorithms minimum spanning tree

23 Minimum Spanning Tree

24 Example of MST

25 Problem: Laying Telephone Wire Central office

26 Wiring: Naïve Approach Central office Expensive!

27 Wiring: Better Approach Central office Minimize the total length of wire connecting the customers

28 Growing an MST: general idea GENERIC-MST(G,w) 1. A  {} 2. while A does not form a spanning tree 3. do find an edge (u,v) that is safe for A 4. A  A U {(u,v)} 5. return A

29 Tricky part How do you find a safe edge? This safe edge is part of the minimum spanning tree

30 Algorithms for MST Prim’s Grow a MST by adding a single edge at a time Kruskal’s Choose a smallest edge and add it to the forest If an edge is formed a cycle, it is rejected

31 Prim’s greedy algorithm Start from some (any) vertex. Build up spanning tree T, one vertex at a time. At each step, add to T the lowest-weight edge in G that does not create a cycle. Stop when all vertices in G are touched

32 Prim’s MST algorithm

33 Example A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

34 Min Edge Pick a root A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7 = in heap

35 Min Edge = 1 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

36 Min Edge = 2 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

37 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

38 Min Edge = 3 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

39 Min Edge = 4 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

40 Min Edge = 3 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

41 Min Edge = 4 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

42 Min Edge = 6 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

43 Example II

44 Kruskal’s Algorithm Choose the smallest edge and add it to a forest Keep connecting components until all vertices connected If an edge would form a cycle, it is rejected.

45 Example A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

46 Min Edge = 1 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

47 Min Edge = 2 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

48 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

49 Min Edge = 3 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7 Now have 2 disjoint components: ABFG and CH

50 Min Edge = 3 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

51 Min Edge = 4 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7 Two components now merged into one.

52 Min Edge = 4 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7

53 Min Edge = 5 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7 Rejected due to a cycle BFGB

54 Min Edge = 6 A B D G C F I E H 23 4 5 7 8 4 3 1 6 9 2 7


Download ppt "Graph Dr. Bernard Chen Ph.D. University of Central Arkansas."

Similar presentations


Ads by Google