72
10/28/22 (c)2001-2003, Michael P. Frank 1 odule #22 - Graphs University of Florida Dept. of Computer & Information Science & Engineering COT 3100 Applications of Discrete Structures Dr. Michael P. Frank Slides for a Course Based on Slides for a Course Based on the Text the Text Discrete Mathematics & Its Applications Discrete Mathematics & Its Applications (5 (5 th th Edition) Edition) by Kenneth H. Rosen by Kenneth H. Rosen

Module 22-graphs

Embed Size (px)

DESCRIPTION

Discrete Structure Topic

Citation preview

  • 1.Module #22 - Graphs University of Florida Dept. of Computer & Information Science & EngineeringCOT 3100 Applications of Discrete Structures Dr. Michael P. FrankSlides for a Course Based on the Text Discrete Mathematics & Its Applications(5th Edition)by Kenneth H. Rosen11/06/12(c)2001-2003, Michael P. Frank 1

2. Module #22 - GraphsModule #22: Graph TheoryRosen 5th ed., chs. 8-9 ~44 slides11/06/12(c)2001-2003, Michael P. Frank 2 3. Module #22 - GraphsWhat are Graphs? Not General meaning in everyday math: A plot or chart of numerical data using a coordinate system. Technical meaning in discrete mathematics: A particular class of discrete structures (to be defined) that is useful for representing relations and has a convenient webby- looking graphical representation.11/06/12(c)2001-2003, Michael P. Frank 3 4. Module #22 - Graphs Applications of Graphs Potentially anything (graphs can represent relations, relations can describe the extension of any predicate). Apps in networking, scheduling, flow optimization, circuit design, path planning. More apps: Geneology analysis, computer game-playing, program compilation, object- oriented design, 11/06/12(c)2001-2003, Michael P. Frank 4 5. Module #22 - GraphsSimple Graphs Correspond to symmetric, irreflexive binary relations R. A simple graph G=(V,E)Visual Representation consists of: of a Simple Graph a set V of vertices or nodes (V corresponds to the universe of the relation R), a set E of edges / arcs / links: unordered pairs of [distinct] elements u,v V, such that uRv.11/06/12 (c)2001-2003, Michael P. Frank 5 6. Module #22 - Graphs Example of a Simple Graph Let V be the set of states in the far- southeastern U.S.: I.e., V={FL, GA, AL, MS, LA, SC, TN, NC} Let E={{u,v}|u adjoins v} TN NC ={{FL,GA},{FL,AL},{FL,MS}, {FL,LA},{GA,AL},{AL,MS}, MSALSC {MS,LA},{GA,SC},{GA,TN}, GA {SC,NC},{NC,TN},{MS,TN}, LA FL {MS,AL}}11/06/12(c)2001-2003, Michael P. Frank 6 7. Module #22 - GraphsMultigraphs Like simple graphs, but there may be more than one edge connecting two given nodes. A multigraph G=(V, E, f ) consists of a set V of vertices, a set E of edges (as primitive objects), and a functionParallel f:E{{u,v}|u,vV uv}. edges E.g., nodes are cities, edges are segments of major highways.11/06/12(c)2001-2003, Michael P. Frank 7 8. Module #22 - GraphsPseudographs Like a multigraph, but edges connecting a node to itself are allowed. (R may be reflexive.) A pseudograph G=(V, E, f ) where f:E{{u,v}|u,vV}. Edge eE is a loop if f(e)={u,u}={u}. E.g., nodes are campsites in a state park, edges are hiking trails through the woods.11/06/12(c)2001-2003, Michael P. Frank 8 9. Module #22 - GraphsDirected Graphs Correspond to arbitrary binary relations R, which need not be symmetric. A directed graph (V,E) consists of a set of vertices V and a binary relation E on V. E.g.: V = set of People, E={(x,y) | x loves y}11/06/12 (c)2001-2003, Michael P. Frank 9 10. Module #22 - Graphs Directed Multigraphs Like directed graphs, but there may be more than one arc from a node to another. A directed multigraph G=(V, E, f ) consists of a set V of vertices, a set E of edges, and a function f:EVV. E.g., V=web pages, E=hyperlinks. The WWW is a directed multigraph...11/06/12(c)2001-2003, Michael P. Frank 10 11. Module #22 - Graphs Types of Graphs: Summary Summary of the books definitions. Keep in mind this terminology is not fully standardized across different authors... Edge MultipleSelf-Termtype edges ok? loops ok?Simple graph Undir. No NoMultigraph Undir. YesNoPseudographUndir. Yes YesDirected graphDirectedNoYesDirected multigraph DirectedYes Yes11/06/12(c)2001-2003, Michael P. Frank 11 12. Module #22 - Graphs 8.2: Graph Terminology You need to learn the following terms: Adjacent, connects, endpoints, degree, initial, terminal, in-degree, out-degree, complete, cycles, wheels, n-cubes, bipartite, subgraph, union.11/06/12(c)2001-2003, Michael P. Frank 12 13. Module #22 - Graphs Adjacency Let G be an undirected graph with edge set E. Let eE be (or map to) the pair {u,v}. Then we say: u, v are adjacent / neighbors / connected. Edge e is incident with vertices u and v. Edge e connects u and v. Vertices u and v are endpoints of edge e.11/06/12(c)2001-2003, Michael P. Frank 13 14. Module #22 - GraphsDegree of a Vertex Let G be an undirected graph, vV a vertex. The degree of v, deg(v), is its number of incident edges. (Except that any self-loops are counted twice.) A vertex with degree 0 is called isolated. A vertex of degree 1 is called pendant.11/06/12 (c)2001-2003, Michael P. Frank 14 15. Module #22 - GraphsHandshaking Theorem Let G be an undirected (simple, multi-, or pseudo-) graph with vertex set V and edge set E. Then deg(v) = 2 EvV Corollary: Any undirected graph has an even number of vertices of odd degree.11/06/12 (c)2001-2003, Michael P. Frank 15 16. Module #22 - Graphs Directed Adjacency Let G be a directed (possibly multi-) graph, and let e be an edge of G that is (or maps to) (u,v). Then we say: u is adjacent to v, v is adjacent from u e comes from u, e goes to v. e connects u to v, e goes from u to v the initial vertex of e is u the terminal vertex of e is v11/06/12 (c)2001-2003, Michael P. Frank 16 17. Module #22 - GraphsDirected Degree Let G be a directed graph, v a vertex of G. The in-degree of v, deg(v), is the number of edges going to v. The out-degree of v, deg+(v), is the number of edges coming from v. The degree of v, deg(v):deg(v)+deg+(v), is the sum of vs in-degree and out-degree.11/06/12 (c)2001-2003, Michael P. Frank 17 18. Module #22 - Graphs Directed Handshaking Theorem Let G be a directed (possibly multi-) graph with vertex set V and edge set E. Then:1 (v) = (v) = 2 ( v) = EvVvV+vV Note that the degree of a node is unchanged by whether we consider its edges to be directed or undirected.11/06/12(c)2001-2003, Michael P. Frank 18 19. Module #22 - GraphsSpecial Graph Structures Special cases of undirected graph structures: Complete graphs Kn Cycles Cn Wheels Wn n-Cubes Qn Bipartite graphs Complete bipartite graphs Km,n11/06/12(c)2001-2003, Michael P. Frank 19 20. Module #22 - GraphsComplete Graphs For any nN, a complete graph on n vertices, Kn, is a simple graph with n nodes in which every node is adjacent to every other node: u,vV: uv{u,v}E. K1 K2 K3 K4K5K6 ( 1) 1 Note that Kn has = 2 edges.=111/06/12(c)2001-2003, Michael P. Frank 20 21. Module #22 - Graphs Cycles For any n3, a cycle on n vertices, Cn, is a simple graph where V={v1,v2, ,vn} and E={{v1,v2},{v2,v3},,{vn1,vn},{vn,v1}}. C3 C4C5C6C8C7 How many edges are there in Cn?11/06/12 (c)2001-2003, Michael P. Frank 21 22. Module #22 - GraphsWheels For any n3, a wheel Wn, is a simple graph obtained by taking the cycle Cn and adding one extra vertex vhub and n extra edges {{vhub,v1}, {vhub,v2},,{vhub,vn}}. W3 W4W5W6W8W7How many edges are there in Wn?11/06/12 (c)2001-2003, Michael P. Frank 22 23. Module #22 - Graphs n-cubes (hypercubes) For any nN, the hypercube Qn is a simple graph consisting of two copies of Qn-1 connected together at corresponding nodes. Q0 has 1 node. Q0Q1Q2Q4 Q3Number of vertices: 2n. Number of edges:Exercise to try!11/06/12 (c)2001-2003, Michael P. Frank 23 24. Module #22 - Graphs n-cubes (hypercubes) For any nN, the hypercube Qn can be defined recursively as follows: Q0={{v0},} (one node and no edges) For any nN, if Qn=(V,E), where V={v1,,va} and E={e1,,eb}, then Qn+1=(V{v1,,va}, E{e1,,eb}{{v1,v1},{v2,v2},, {va,va}}) where v1,,va are new vertices, and where if ei={vj,vk} then ei={vj,vk}.11/06/12 (c)2001-2003, Michael P. Frank 24 25. Module #22 - Graphs Bipartite Graphs Defn.: A graph G=(V,E) is bipartite (two- part) iff V = V1V2 where V1V2= and eE: v1V1,v2V2: e={v1,v2}. In English: The graph can be divided into two parts in such a way that all edges go between the two parts. V1V2This definition can easily be adapted for thecase of multigraphs and directed graphs as well. Can represent with zero-one matrices.11/06/12(c)2001-2003, Michael P. Frank 25 26. Module #22 - GraphsComplete Bipartite Graphs For m,nN, the complete bipartite graph Km,n is a bipartite graph where |V1| = m, |V2| = n, and E = {{v1,v2}|v1V1 v2V2}. That is, there are m nodes K4,3 in the left part, n nodes in the right part, and every node in the left part is connected to every nodeKm,n has _____ nodes in the right part. and _____ edges.11/06/12(c)2001-2003, Michael P. Frank 26 27. Module #22 - Graphs Subgraphs A subgraph of a graph G=(V,E) is a graph H=(W,F) where WV and FE.G H11/06/12(c)2001-2003, Michael P. Frank 27 28. Module #22 - GraphsGraph Unions The union G1G2 of two simple graphs G1=(V1, E1) and G2=(V2,E2) is the simple graph (V1V2, E1E2). ab c a b c de d f11/06/12(c)2001-2003, Michael P. Frank 28 29. Module #22 - Graphs 8.3: Graph Representations &Isomorphism Graph representations: Adjacency lists. Adjacency matrices. Incidence matrices. Graph isomorphism: Two graphs are isomorphic iff they are identical except for their node names.11/06/12(c)2001-2003, Michael P. Frank 29 30. Module #22 - GraphsAdjacency Lists A table with 1 row per vertex, listing its adjacent vertices. Adjacent a b Vertex Vertices ab, ccd ba, c, e, fefca, b, f d eb fc, b11/06/12(c)2001-2003, Michael P. Frank 30 31. Module #22 - Graphs Directed Adjacency Lists 1 row per node, listing the terminal nodes of each edge incident from that node.11/06/12(c)2001-2003, Michael P. Frank 31 32. Module #22 - GraphsAdjacency Matrices A way to represent simple graphs possibly with self-loops. Matrix A=[aij], where aij is 1 if {vi, vj} is an edge of G, and is 0 otherwise. Can extend to pseudographs by letting each matrix elements be the number of links (possibly >1) between the nodes.11/06/12 (c)2001-2003, Michael P. Frank 32 33. Module #22 - GraphsGraph Isomorphism Formal definition: Simple graphs G1=(V1, E1) and G2=(V2, E2) are isomorphic iff a bijection f:V1V2 such that a,bV1, a and b are adjacent in G1 iff f(a) and f(b) are adjacent in G2. f is the renaming function between the two node sets that makes the two graphs identical. This definition can easily be extended to other types of graphs.11/06/12 (c)2001-2003, Michael P. Frank 33 34. Module #22 - Graphs Graph Invariants under Isomorphism Necessary but not sufficient conditions for G1=(V1, E1) to be isomorphic to G2=(V2, E2): We must have that |V1|=|V2|, and |E1|=|E2|. The number of vertices with degree n is the same in both graphs. For every proper subgraph g of one graph, there is a proper subgraph of the other graph that is isomorphic to g.11/06/12(c)2001-2003, Michael P. Frank 34 35. Module #22 - Graphs Isomorphism Example If isomorphic, label the 2nd graph to show the isomorphism, else identify difference.bd a b adc e e c ff11/06/12(c)2001-2003, Michael P. Frank 35 36. Module #22 - GraphsAre These Isomorphic? If isomorphic, label the 2nd graph to show the isomorphism, else identify difference. Same # ofa verticesb Same # ofedges Different # ofd verts of ce degree 2!(1 vs 3)11/06/12(c)2001-2003, Michael P. Frank 36 37. Module #22 - Graphs8.4: Connectivity In an undirected graph, a path of length n from u to v is a sequence of adjacent edges going from vertex u to vertex v. A path is a circuit if u=v. A path traverses the vertices along it. A path is simple if it contains no edge more than once.11/06/12 (c)2001-2003, Michael P. Frank 37 38. Module #22 - Graphs Paths in Directed Graphs Same as in undirected graphs, but the path must go in the direction of the arrows.11/06/12(c)2001-2003, Michael P. Frank 38 39. Module #22 - GraphsConnectedness An undirected graph is connected iff there is a path between every pair of distinct vertices in the graph. Theorem: There is a simple path between any pair of vertices in a connected undirected graph. Connected component: connected subgraph A cut vertex or cut edge separates 1 connected component into 2 if P. Frank 3911/06/12 (c)2001-2003, Michael removed. 40. Module #22 - GraphsDirected Connectedness A directed graph is strongly connected iff there is a directed path from a to b for any two verts a and b. It is weakly connected iff the underlying undirected graph (i.e., with edge directions removed) is connected. Note strongly implies weakly but not vice- versa.11/06/12(c)2001-2003, Michael P. Frank 40 41. Module #22 - Graphs Paths & Isomorphism Note that connectedness, and the existence of a circuit or simple circuit of length k are graph invariants with respect to isomorphism.11/06/12(c)2001-2003, Michael P. Frank 41 42. Module #22 - Graphs Counting Paths w Adjacency Matrices Let A be the adjacency matrix of graph G. The number of paths of length k from vi to vj is equal to (Ak)i,j. The notation (M)i,j denotes mi,j where [mi,j] = M.11/06/12 (c)2001-2003, Michael P. Frank 42 43. Module #22 - Graphs 8.5: Euler & Hamilton Paths An Euler circuit in a graph G is a circuit containing every edge of G. An Euler path in G is a path containing every edge of G. A Hamilton circuit is a circuit that traverses each vertex in G exactly once. A Hamilton path is a path that traverses each vertex in G exactly once.11/06/12(c)2001-2003, Michael P. Frank 43 44. Module #22 - Graphs Bridges of Knigsberg Problem Can we walk through town, crossing each bridge exactly once, and return to start?ABDCEquivalent multigraph The original problem11/06/12(c)2001-2003, Michael P. Frank 44 45. Module #22 - Graphs Euler Path Theorems Theorem: A connected multigraph has an Euler circuit iff each vertex has even degree. Proof: () The circuit contributes 2 to degree of each node. () By construction using algorithm on p. 580-581 Theorem: A connected multigraph has an Euler path (but not an Euler circuit) iff it has exactly 2 vertices of odd degree. One is the start, the other is the end.11/06/12 (c)2001-2003, Michael P. Frank 45 46. Module #22 - GraphsEuler Circuit Algorithm Begin with any arbitrary node. Construct a simple path from it till you get back to start. Repeat for each remaining subgraph, splicing results back into original cycle.11/06/12(c)2001-2003, Michael P. Frank 46 47. Module #22 - Graphs Round-the-World Puzzle Can we traverse all the vertices of a dodecahedron, visiting each once?`EquivalentDodecahedron puzzle Pegboard versiongraph11/06/12(c)2001-2003, Michael P. Frank 47 48. Module #22 - Graphs Hamiltonian Path Theorems Diracs theorem: If (but not only if) G is connected, simple, has n3 vertices, and v deg(v)n/2, then G has a Hamilton circuit. Ores corollary: If G is connected, simple, has n3 nodes, and deg(u)+deg(v)n for every pair u,v of non-adjacent nodes, then G has a Hamilton circuit.11/06/12(c)2001-2003, Michael P. Frank 48 49. Module #22 - GraphsHAM-CIRCUIT is NP-complete Let HAM-CIRCUIT be the problem: Given a simple graph G, does G contain a Hamiltonian circuit? This problem has been proven to be NP-complete! This means, if an algorithm for solving it in polynomial time were found, it could be used to solve all NP problems in polynomial time.11/06/12(c)2001-2003, Michael P. Frank 49 50. Module #22 - Graphs9.1: Introduction to Trees A tree is a connected undirected graph that contains no circuits. Theorem: There is a unique simple path between any two of its nodes. A (not-necessarily-connected) undirected graph without simple circuits is called a forest. You can think of it as a set of trees having disjoint sets of nodes. A leaf node in a tree or forest is any pendant or isolated vertex. An internal node is any non-leaf vertex (thus it has degree ___ ).11/06/12(c)2001-2003, Michael P. Frank 50 51. Module #22 - GraphsTree and Forest ExamplesLeaves in green, internal nodes in brown. A Tree: A Forest:11/06/12 (c)2001-2003, Michael P. Frank 51 52. Module #22 - GraphsRooted Trees A rooted tree is a tree in which one node has been designated the root. Every edge is (implicitly or explicitly) directed away from the root. You should know the following terms about rooted trees: Parent, child, siblings, ancestors, descendents, leaf, internal node, subtree.11/06/12 (c)2001-2003, Michael P. Frank 52 53. Module #22 - GraphsRooted Tree Examples Note that a given unrooted tree with n nodes yields n different rooted trees. Same tree exceptroot for choice of root root11/06/12 (c)2001-2003, Michael P. Frank 53 54. Module #22 - GraphsRooted-Tree Terminology Exercise Find the parent,o hn r children, siblings, ancestors, &dm b descendants root of node f.ac g e i qf pjkl11/06/12(c)2001-2003, Michael P. Frank 54 55. Module #22 - Graphs n-ary trees A rooted tree is called n-ary if every vertex has no more than n children. It is called full if every internal (non-leaf) vertex has exactly n children. A 2-ary tree is called a binary tree. These are handy for describing sequences of yes-no decisions. Example: Comparisons in binary search algorithm.11/06/12(c)2001-2003, Michael P. Frank 55 56. Module #22 - GraphsWhich Tree is Binary? Theorem: A given rooted tree is a binary tree iff every node other than the root has degree ___, and the root has degree ___.11/06/12(c)2001-2003, Michael P. Frank 56 57. Module #22 - Graphs Ordered Rooted Tree This is just a rooted tree in which the children of each internal node are ordered. In ordered binary trees, we can define: left child, right child left subtree, right subtree For n-ary trees with n>2, can use terms like leftmost, rightmost, etc.11/06/12 (c)2001-2003, Michael P. Frank 57 58. Module #22 - GraphsTrees as Models Can use trees to model the following: Saturated hydrocarbons Organizational structures Computer file systems In each case, would you use a rooted or a non-rooted tree?11/06/12 (c)2001-2003, Michael P. Frank 58 59. Module #22 - Graphs Some Tree Theorems Any tree with n nodes has e = n1 edges. Proof: Consider removing leaves. A full m-ary tree with i internal nodes has n=mi+1 nodes, and =(m1)i+1 leaves. Proof: There are mi children of internal nodes, plus the root. And, = ni = (m1)i+1. Thus, when m is known and the tree is full, we can compute all four of the values e, i, n, and , given any one of them.11/06/12 (c)2001-2003, Michael P. Frank 59 60. Module #22 - Graphs Some More Tree Theorems Definition: The level of a node is the length of the simple path from the root to the node. The height of a tree is maximum node level. A rooted m-ary tree with height h is called balanced if all leaves are at levels h or h1. Theorem: There are at most mh leaves in an m-ary tree of height h. Corollary: An m-ary tree with leaves has height hlogm . If m is full and balanced then h=logm.11/06/12 (c)2001-2003, Michael P. Frank 60 61. Module #22 - Graphs 9.2: Applications of Trees Binary search trees A simple data structure for sorted lists Decision trees Minimum comparisons in sorting algorithms Prefix codes Huffman coding Game trees11/06/12 (c)2001-2003, Michael P. Frank 61 62. Module #22 - GraphsBinary Search Trees A representation for sorted sets of items. Supports the following operations in (log n) average-case time: Searching for an existing item. Inserting a new item, if not already present. Supports printing out all items in (n) time. Note that inserting into a plain sequence ai would instead take (n) worst-case time.11/06/12 (c)2001-2003, Michael P. Frank 62 63. Module #22 - Graphs Binary Search Tree Format Items are stored atExample: individual tree nodes. 7 We arrange for the tree to always obey3 12 this invariant: For every item x, Every node in xs left1 5 915 subtree is less than x. Every node in xs right subtree is greater than x. 0 2 8 1111/06/12(c)2001-2003, Michael P. Frank 63 64. Module #22 - Graphs Recursive Binary Tree Insert procedure insert(T: binary tree, x: item) v := root[T] if v = null then begin root[T] := x; return Done end else if v = x return Already present else if x < v then return insert(leftSubtree[T], x) else {must be x > v} return insert(rightSubtree[T], x)11/06/12(c)2001-2003, Michael P. Frank 64 65. Module #22 - Graphs Decision Trees (pp. 646-649) A decision tree represents a decision-making process. Each possible decision point or situation is represented by a node. Each possible choice that could be made at that decision point is represented by an edge to a child node. In the extended decision trees used in decision analysis, we also include nodes that represent random events and their outcomes.11/06/12 (c)2001-2003, Michael P. Frank 65 66. Module #22 - GraphsCoin-Weighing Problem Imagine you have 8 coins, oneof which is a lighter counterfeit,and a free-beam balance. No scale of weight markingsis required for this problem! How many weighings are?needed to guarantee that thecounterfeit coin will be found?11/06/12(c)2001-2003, Michael P. Frank 66 67. Module #22 - Graphs As a Decision-Tree Problem In each situation, we pick two disjoint and equal-size subsets of coins to put on the scale.The balance thenA given sequence ofdecides whether weighings thus yieldsto tip left, tip right, a decision tree withor stay balanced. branching factor 3.11/06/12(c)2001-2003, Michael P. Frank 67 68. Module #22 - Graphs Applying the Tree Height Theorem The decision tree must have at least 8 leaf nodes, since there are 8 possible outcomes. In terms of which coin is the counterfeit one. Recall the tree-height theorem, hlogm. Thus the decision tree must have height h log38 = 1.893 = 2. Lets see if we solve the problem with only 2 weighings11/06/12 (c)2001-2003, Michael P. Frank 68 69. Module #22 - GraphsGeneral Solution Strategy The problem is an example of searching for 1 unique particular item, from among a list of n otherwise identical items. Somewhat analogous to the adage of searching for a needle in haystack. Armed with our balance, we can attack the problem using a divide- and-conquer strategy, like whats done in binary search. We want to narrow down the set of possible locations where the desired item (coin) could be found down from n to just 1, in a logarithmic fashion. Each weighing has 3 possible outcomes. Thus, we should use it to partition the search space into 3 pieces that are as close to equal-sized as possible. This strategy will lead to the minimum possible worst-case number of weighings required.11/06/12 (c)2001-2003, Michael P. Frank 69 70. Module #22 - Graphs General Balance Strategy On each step, put n/3 of the n coins to be searched on each side of the scale. If the scale tips to the left, then: The lightweight fake is in the right set of n/3 n/3 coins. If the scale tips to the right, then: The lightweight fake is in the left set of n/3 n/3 coins. If the scale stays balanced, then: The fake is in the remaining set of n 2n/3 n/3 coins that were not weighed! Except if n mod 3 = 1 then we can do a little better by weighing n/3 of the coins on each side. You can prove that this strategy always leads to a balanced 3-ary tree.11/06/12(c)2001-2003, Michael P. Frank 70 71. Module #22 - GraphsCoin Balancing Decision Tree Heres what the tree looks like in our case: left: 123 vs 456 123balanced: right:784561 vs. 24 vs. 5 7 vs. 8L:1R:2 B:3 L:4 R:5 B:6 L:7R:811/06/12(c)2001-2003, Michael P. Frank 71 72. Module #22 - Graphs9.3: Tree Traversal Universal address systems Traversal algorithms Depth-first traversal: Preorder traversal Inorder traversal Postorder traversal Breadth-first traversal Infix/prefix/postfix notation11/06/12 (c)2001-2003, Michael P. Frank 72