1 / 42

Graphs & Graph Algorithms

B Smith: Fa05: Rate: 3. Should be more interactive! The adjacency. Time: about 60 min. B Smith: Fa07: Rate:3, time: 75 minutes. B Smith: Decide what will be consistently done with self-directed edges. Use 1’s or 0’s?. Graphs & Graph Algorithms. B Smith:

harsha
Download Presentation

Graphs & Graph Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. B Smith: Fa05: Rate: 3. Should be more interactive! The adjacency. Time: about 60 min B Smith: Fa07: Rate:3, time: 75 minutes B Smith: Decide what will be consistently done with self-directed edges. Use 1’s or 0’s? Graphs & Graph Algorithms B Smith: Sp06: 90 minutes. Rate:3. Heavy on definitins. Redo in entirety for sharing/distribution B Smith: Might be easier to simply consider undirected graphs first B Smith: See lecture23.ppt under graphs for great coverage

  2. Outline • What is a Graph? • Applications of Graphs • Categorization • Terminology • Representation • Searching • Depth First Search (DFS) • Breadth First Search (BFS)

  3. 3 1 Vertex (Node) 2 Edge 4 5 What is a Graph? A graph is a data structure which consists of a set of vertices, plus a set of edgesthat connect (some of) them. G = ( V, E ) Where, V- set of vertices E - set of edges V = {1, 2, 3, 4, 5} E = { (1,2), (1,3), (1,4), (2,3), (3,5), (4,5) }

  4. Computer Resistor/Inductor/… City Applications • Computer Networks • Electrical Circuits • Road Map

  5. Connected Components A B

  6. Connected Components Application: Minesweeper • Challenge: Implement the game of Minesweeper • Critical subroutine: • User selects a cell and program reveals how many adjacent mines • If zero, reveal all adjacent cells • If any newly revealed cells have zero adjacent mines, repeat

  7. Connected Components

  8. High School Dating http://www-personal.umich.edu/~mejn/networks/

  9. TB or SARS Contagions http://www-personal.umich.edu/~mejn/networks/

  10. HS Friendships http://www-personal.umich.edu/~mejn/networks/

  11. The internet http://www-personal.umich.edu/~mejn/networks/

  12. Graphs and Mazes

  13. Graph categorization • A Directed Graph or Digraph is a graph where each edge has a direction • The edges in a digraph are called Arcs or Directed Edges

  14. 1 6 4 2 5 3 Graph categorization • Digraph - Example G = (V, E) V = {1, 2, 3, 4, 5, 6} E = {(1,4), (2,1), (2,3), (3,2), (4,3), (4,5), (4,6), (5,3), (6,1), (6,5)} (1, 4) = 1→4 where 1 is the tail and 4 is the head

  15. Graph categorization • An Undirected Graph is a graph where the edges have no directions • The edges in an undirected graph are called Undirected Edges

  16. 3 1 2 4 5 Graph categorization • Undirected Graph - Example G = (V, E) V = {1, 2, 3, 4, 5} E = {(1,2), (1,3), (1,4), (2,3), (3,5), (4,5)}

  17. 40 3 1 20 60 10 2 70 4 50 5 Graph categorization • A Weighted Graph is a graph where all the edges are assigned weights

  18. 1 2 3 Graph categorization • If the same pair of vertices have more than one edge, that graph is called a Multigraph

  19. 3 1 2 4 5 Graph Terminology • Adjacent vertices: If (i,j) is an edge of the graph, then the nodes i and j are adjacent • An edge (i,j) is Incident tovertices i and j Vertices 2 and 5 are not adjacent

  20. 3 1 2 4 5 B Smith: are they permitted in Digraphs (only?) Graph Terminology • Loop or self edges:An edge ( i,i ) is called a self edge or a loop • In graphs, loops are not permitted ( 1,1 ) and ( 4,4 ) are self edges

  21. G A F D B E C Graph Terminology • Path: A sequence of edges in the graph • There can be more than one path between two vertices • Vertex A is reachable from B if there is a path from A to B • Paths from B to D - B, A, D • B, C, D

  22. 3 1 2 4 5 Graph Terminology • Simple Path:A path whereall the vertices are distinct 1,4,5,3 is a simple path. But 1,4,5,4 is not a simple path.

  23. 3 1 2 4 5 Graph Terminology • Length :Sum of the lengths of the edges on the path. Length of the path 1,4,5,3 is 3

  24. 3 1 2 4 5 Graph Terminology • Circuit: A path whose first and last vertices are the same The path 3,2,1,4,5,3 is a circuit.

  25. 3 1 2 4 5 GraphTerminology • Cycle: A circuit where all the vertices are distinct except for the first (and the last) vertex 1,4,5,3,1 is a cycle 1,4,5,4,1 is not a cycle

  26. 3 1 2 4 5 GraphTerminology • Hamiltonian Cycle: A Cycle that contains all the vertices of the graph 1,4,5,3,2,1 is a Hamiltonian Cycle

  27. 3 1 2 4 5 GraphTerminology • Degree of a Vertex : In an undirected graph, the no. of edges incident to the vertex • In-degree: The no. of edges entering the vertex in a digraph • Out-Degree: The no. of edges leaving the vertex in a digraph In-degree of 1 is 3 Out-degree of 1 is 1

  28. 3 1 1 2 3 4 2 5 H=(U,F) G=(V,E) Graph Terminology • A Subgraph of graph G=(V,E) is a graph H=(U,F) such that U ЄV and FЄE

  29. 3 3 1 1 2 2 4 4 5 5 Connected Unconnected Graph Terminology • A graph is said to be Connected if there is at least one path from every vertex to every other vertex in the graph

  30. 3 1 3 1 2 2 4 4 5 5 Tree Forest Graph Terminology • Tree: A connected undirected graph that contains no cycles • Forest: A graph that does not contain a cycle

  31. 3 3 1 1 2 2 4 4 5 5 Spanning Tree Graph Graph Terminology • The Spanning Tree of a Graph G is a subgraph of G that is a tree and contains all the vertices of G

  32. 1 if (i,j) Є E • 0 otherwise aij = Representation of Graphs • Adjacency Matrix (A) • The Adjacency Matrix A=(ai,j) of a graph G=(V,E) with n nodes is an nXn matrix • Each element of A is either 0 or 1, depending on the adjacency of the nodes

  33. 3 1 2 3 4 1 5 2 B Smith: Discuss the fact that what we do with the diagonal could depend on the problem, but using either 1’s or 0’s is a possibility Representation of Graphs • Eg: Find the adjacency matrices of the following graphs B Smith: Use (r,c) notation to disambiguate

  34. 9 3 1 5 4 2 Representation of Graphs • Adjacency Matrix of a Weighted Graph • The weight of the edge can be shown in the matrix when the vertices are adjacent • A nil value (0 or ∞) depending on the problem is used when they are not adjacent • Eg. To find the minimum distance between nodes...

  35. 5 5 1 3 1 1 2 1 3 1 2 3 2 4 4 5 5 Representation of Graphs • Adjacency List • An Adjacency list is an array of lists, each list showing the vertices a given vertex is adjacent to

  36. 5 5 4 3 2 2 1 2 3 9 1 9 3 1 5 4 2 Representation of Graphs • Adjacency List of a Weighted Graph • The weight is included in the list

  37. Searching Graphs • Why do we need to search graphs? • To find paths • To look for connectivity • Two strategies • Depth-First Search (DFS) • Breadth-First Search (BFS)

  38. Depth-First Search • Start from an arbitrary node • Visit (Explore) an unvisited adjacent edge • If the node visited is a dead end, go back tothe previous node (Backtrack) • Stop when no unvisited nodes are found and no backtracking can be done • Implemented using a Stack Explore if possible, Backtrack otherwise…

  39. B F H A C G D E Depth-First Search A , F , C , B , G , E

  40. Breadth-First Search • Start from an arbitrary node • Visit all the adjacent nodes (distance=1) • Visit the nodes adjacent to the visited nodes (distance=2, 3 etc.) • Stop when a dead end is met • Implemented using a Queue Explore all nodes at distance d…

  41. B F H A C G D E Breadth-First Search A , C , E , B , F , G

  42. Summary • What is a graph? • Graph terminology • Graph representation • Searching • Depth-First Search • Breadth-First Search

More Related