Discrete Mathematics Chapter 9 Graphs By courtesy of Prof. Cheng-Chia Chen Transparency No. 9-1 Chapter 8. Graphs Discrete Mathematics Chapter 9 Graphs Old subject with many modern applications Introduced by L. Euler, who used it to solve the famous Konisberg bridge problem. Example applications: determine if a circuit can be implemented on a planer circuit board (planer graph). distinguish b/t two chemical compounds with the same molecular formula but with different structures. determine if two computers are connected in a network. schedule (with task precedence information given, find an execution plan.) .. Transparency No. 9-2 Table of contents Discrete Mathematics Chapter 9 Graphs Introduction Graph terminology Representing graph and graph isomorphism Connectivity Euler and Hamilton paths Shortest path problems Planer graphs Graph coloring Transparency No. 9-3 8.1 Introduction Discrete Mathematics Chapter 9 Graphs Graph: discrete structure consisting of vertices and edges that connects these vertices. Types of graphs: Simple graph: G = (V,E) where E is a set of unordered pairs of distinct elements of V. Multi-graph: allow multiple edges b/t two distinct vertices. Pseudo-graph: allow self-loops and multiple edges. Digraph (directed graph): edges are ordered pairs of vertices. Directed multi-graph: allow multiple edges b/t any two (possibly identical) vertices. Hybrid graph: allow both directed and undirected edges. Weighted (or labeled) graph: each edge is associated with a weight (or a label). Transparency No. 9-4 Formal definitions Discrete Mathematics Chapter 9 Graphs Def 2: (multigraph) G = (V,E,f) where f: E-> {{u,v} | u,v V and u v} with f(e) containing the two vertices the edge e is connected to. If f(e1) = f(e2) ==> e1 and e2 are parallel or multiple edges. Def 3: A pseudo graph G = (V,E,f) where f: E -> {{u,v} | u,v V}. Note: if f(e) = {u} ==> e is a self-loop on u. Note: If there is no worry of confusion, we usually use {u,v} to identify the edge e with f(e) = {u,v}. Def 4: A digraph G = (V,E) where E is a subset of V2. Def 5: A directed multigraph G = (V,E,f) where f: E -> V2. If f(e1) = f(e2) ==> e1 and e2 are parallel or multiple edges. Note: f(e1) = (u,v) /\ f(e2) = (v,u) /\ u v => e1 and e2 are not parallel edges (opposite directions). Transparency No. 9-5 Labeled (or weighted) grapghs Discrete Mathematics Chapter 9 Graphs A labeled graph G = (V,E,f,L,l) where (V,E,f) is a graph of any kind (without labeling) L is the set of labels, and l: E->L is the labeling function. if f(e) = w, we say e is an wlabeled edge or simply a w-edge. Hyper graph: edges can connect more than 2 vertices: e.g hyper k-graph G = (V,E,f) where f: E-> Vk. Summary: type directed edge? multiedge? loop? simple no no no multigraph no yes no pseudo no yes yes digraph yes no yes directedyes yes yes -multigraph Transparency No. 9-6 Graph models Discrete Mathematics Chapter 9 Graphs Ex1: Niche overlap graphs in ecology: G = (V,E) is a simple graph where V is the set of species. {u,v} E iff u and v compete for food. Ex2: V: Persons (u,v) E iff u can influence v. => Influence graph: (digraph) (u,v) E iff u, v know each other => Acquaintance graph (undirected graph) Ex3: Round-robin tournaments One where each team plays each other team exactly once. A B V: the set for all teams (u,v) in E iff team u beats team v. D Ex: 4-team round-robin tournament C Transparency No. 9-7 Graph model (cont'd) Discrete Mathematics Chapter 9 Graphs Ex 4: (precedence graph and concurrent processing) eg: 1. x := y + 1; 2. z := f(x) => (1) must be executed before (2) no matter which processors execute (1) or (2), since (2) must use the execution result of (1). The executed-before relation in a program can be represented by a digraph G = (V,E) where V = the set of statements in the program (u,v) E means u must be executed before v. Note: if (u,v) and (v,w) E, ==> (u,w) E. Hence E is transitive. Transparency No. 9-8 Discrete Mathematics Chapter 9 Graphs Precedence graph of a program Ex 4: s1: a := 0; s2: b := 1; s3: a := a+1; s4: d := b+a; s5: e := d+1; s6: e := c+d s1 s2 s3 s4 s5 s6 ==> What is the precedence graph of this program? Transparency No. 9-9 Precedence graph of a program Ex 4: s1: a := 0; s2: b := 1; s3: a := a+1; s4: d := b+a; s5: e := d+1; s6: e := c+d ==>Problems: 1. Minimum time needed to complete the program using multiple processors? (Depth) => length of longest paths + 1 2. Minimum # of processors needed to complete the program in minimum time? (Width) => p1: [s1,s3,s4,s6], p2: [s2,-,-,s5] Discrete Mathematics Chapter 9 Graphs s1 s2 s3 s4 s5 s6 Transparency No. 9-10 Graph terminology Discrete Mathematics Chapter 9 Graphs Def 1: G = (V,E): undirected graph if u --e-- v ==> u and v are adjacent (or neighbors) C B D Edge e is incident with u (& v). e connects u and v. G u and v are end points of e. E F Def 2: G = (V,E): undirected graph; v V ==> [Degree of v:] deg(v) = #edges incident with it = |{e | v is an end point of e and e is an edge}|. If deg(v) = 0 ==> v is isolated. If deg(v) = 1 ==> v is pendant (or hang). Ex: In Fig. 1, E has degree 3, D is pendant and G is isolated. Transparency No. 9-11 A Handshaking theorem Discrete Mathematics Chapter 9 Graphs Theorem 1: G = (V,E): an undirected graph ==> S v V deg(v) = 2 |E|. // 插孔數 = 插頭數 Pf: Simple induction on the number of edges |E|. (Intuition: vertex deg = socket, edge end = plug) Ex: G = (V,E) with |V| = 10 & each vertex with degree 6. ==> |E| =? Corollary: The sum of the degrees of the vertices of an undirected graph is even. Theorem 2: The number of vertices in a graph with odd degree is even. Pf: Sv in V deg(v) = Sv in V /\ deg(v) is odd deg(v) +Sv in V /\ deg(v) is even deg(v) ==> Sv in V /\ deg(v) is odd deg(v) is even ==> |{v in V | deg(v) is odd}| is even. QED Transparency No. 9-12 Terminology for digraphs Discrete Mathematics Chapter 9 Graphs Def 3: G = (V,E): a digraph if u --e--> v then u is adjacent to v v is adjacent from u u is the initial (or starting) vertex of e v is the end (or terminal) vertex of e e is an edge from u to v. Def. 4: [in-degree; out-degree] In-deg(v) = #edge coming into v = |{e E | v is the terminal vertex of e}|. out-deg(v) = #edge going out from v = |{e E | v is the starting vertex of e}|. Theorem 3: Sv in V in-deg(v) = Sv in V out-deg(v) = |E|. Transparency No. 9-13 Underlying undirected graph Discrete Mathematics Chapter 9 Graphs G = (V,E,f): a directed graph ==> Its underlying undirected graph is a pseudo graph G' = (V,E,f') where f': E -> {{u,v} | u,v V} s.t. f'(e) = {a,b} iff f(e) = (a,b). Note: 1. Both G and G' have the same number of edges (= |E|). 2. If both (u,v) and (v,u) are edges in G ==> (u,v) and (v,u) are two distinct edges in G'. Ex: G = ({1,2,3}, {(1,2),(1,2),(1,3),(2,3),(3,2)}) ==> G' =? Transparency No. 9-14 Special simple graphs Discrete Mathematics Chapter 9 Graphs Ex 4: complete graphs Kn = (V,E) where |V| = n and E = {{x,y} | x and y are distinct vertices of V}. Ex: K1,..., K5 =? Ex 5: cycles: Cn (n > 2) = (V,E) where V = {1,2,...,n} and E = {{i,i+1} | i = 1,...,n-1} U {{n,1}}. Ex: C3,C4,C5,C6 =? Ex 6: wheels: (n > 2) Wn = (V,E) where V = {0,1,...,n} and E = {{0,i} | i = 1,...,n} U {{i,i+1} | i = 1,...,n-1} U {{n,1}}. W3,W4,W5 =? Ex7: n-cubes Qn = (V,E) where V = {0,1}n is the set of all bit strings of length n and E ={{x,y} | x and y differ at exactly one position}. Ex: 11011 and 11111 is connected. Ex: Q1, Q2, Q3, Q4 =? Transparency No. 9-15 Discrete Mathematics Chapter 9 Graphs Bipartite Graphs Def 5: G = (V,E) is bipartite iff there is a binary partition {V1,V2} of V s.t. for all e E, one end point of E is in V1 and the other end point is in V2. a b Ex8: Is C6 bipartite? (yes! why?) g Ex9: Is K3 bipartite? (no! why?) f c Ex10: Which of Fig G and H is bipartite? d e G Ex11: Km,n (complete bipartite graph) Km,n = ({u1,...,um} U {v1,...,vn}, E} , where E = {{ui, vj} | i=1..m v = 1..n} eg: K2,3, K3,3 = ? a b f e H d c Problem: Km,n has ? edges Transparency No. 9-16 Ex 13: interconnection network for processors Discrete Mathematics Chapter 9 Graphs Types of connections Linear array Mesh Hyper cube (m-cube) Main measures: linear array mesh m-cube (n=2m) 1. #links n-1 2sqrt(n)(sqrt(n)-1) nm/2 = O(n lg n) 2. longest distance n-1 2(sqrt(n) -1) m = lg n Transparency No. 9-17 New graphs from old Discrete Mathematics Chapter 9 Graphs Def 6: [subgraph] G = (V,E): a graph H = (V',E') is a subgraph of G iff V‘ V and E' E and H is a graph (i.e., if e E' is an edge connecting u and v in V, then u, v must belong to V'.) Ex: G = K5; find a subgraph H of K5. Def 7: [union of simple graphs] G1 = (V1,E1); G2 = (V2,E2): two graphs ==> G1 U G2 =def (V1 U V2, E1 U E2) Note: Not only V1 and V2, but also E1 and E2 may overlap. Ex: G1 = ({a,b,c,d,e}, {ab,bc,ce,be,ad,de}) G2 = ({a,b,c,d,f}, {ab,bc,bd,bf}} ==> G1 U G2 =? Def 7': Disjoint union of graphs: (skip) Disjoin union of G1 and G2 =? Transparency No. 9-18 Graph representation and graph isomorphism Discrete Mathematics Chapter 9 Graphs Graph representation: [suitable only for finite graphs] adjacent list (for graphs w/o multiple edges): O(|E|+|V|) adjacent matrices: O(|V|2) incident matrices (or list): O(|V|x|E|). adjacent list: for each vertex v, a[v] is the list of all adjacent vertices of v. adjacent matrix: M[u,v]=1 iff {u,v} (or (u,v) if directed) is an edge. incident matrix: I[u,e] = 1 iff u in f(e), or (for directed graph) i[u,e]= 1 (or -1) iff u is the starting (or ending) vertex of e. Ex: (p558 fig2) Transparency No. 9-19 Graph isomorphism Discrete Mathematics Chapter 9 Graphs Def . 1: G1 = (V1,E1), G2 = (V1,E2): two simple or digraphs G1 and G2 are isomorphic iff $ a bijection h: V1->V2 s.t. for all u,v in V1, {u,v} (or (u,v)) E1 iff {h(u),h(v)} (or (h(u),h(v))) E2. Such h is called an isomorphism (b/t G1 and G2). Ex 8: Are G = ({1234},{12,23,34,41}) and H = ({abcd},{ad,ac,bc,bd}) isomorphic? Fact: If G1 and G2 are isomorphic ==> |V1| = |V2| & |E1| = |E2|, and G1 and G2 have the same degree type. Def: For each G = (V,E), type(G) is the multiset {deg(v) | v V}. Transparency No. 9-20 Connectivity Discrete Mathematics Chapter 9 Graphs Def 1: G = (V,E,f): an undirected [multi-]graph A path a of length n > 0 from u to v is a sequence of edges e1,e2,...,en s.t. f(e1) = {u,x1}, f(e2) = {x1,x2},…,f(en) = {xn-1,v}. e1 e2 e3 e4 e5 e6 en-1 en u=x0----x1-----x2----x3----x4----x5---- ….----xn-1----Xn=v If G is a simple graph ==> a can be identified by the sequence of vertices: x0 = u, x1,..., xn-1, xn = v. a is a circuit (or cycle) iff x0 = xn. a is simple if all edges in the path are distinct (i.e., for all 0≤ i<j≤ n, ei ej ). Transparency No. 9-21 Connectivity (cont'd) Discrete Mathematics Chapter 9 Graphs Def. 2: G = (V,E,f): a directed multigraph A path a of length n > 0 from u to v is a sequence of edges e1, e2, ...,en s.t. f(e1) = (u,x1), f(e2) = (x1,x2),...f(en) = (xn-1,v). If G is a digraph ==> a can be identified by the sequence of vertices: x0=u, x1,..., xn-1, xn = v. a is a circuit (or cycle) iff x0 = xn. a is simple if all edges in the path are distinct (i.e., for all 0<i<j<n+1, ei ej ). Def 3: An undirected graph is connected if there is a path between every pair of distinct vertices. Transparency No. 9-22 Discrete Mathematics Chapter 9 Graphs Theorem about simple paths Theorem 1: There is a simple path between every pair of distinct vertices of a connected undirected [multi-]graph. Pf: (u,v): any two distinct vertices of G. Since G is connected, there exist paths from u to v. Let a = e1,e2,...,en be any path of least length from u to v. Then a must be a simple path. If it were not, then there would be 0 i <j n s.t. ei = ej. ==> the path b = e1,..,ei-1,ej+1,..,en or e1,..,ei,ej+1,..,en is another path from u to v with length < |a|, a contradiction!. QED join xi-1 and xj if x i-1 = xj e1 u e2 x1 ei ..... x2 xi-1 ....... xi ej+1 ej xj-1 join xi and xj if xi = xj xj ...... xj+1 v Transparency No. 9-23 Discrete Mathematics Chapter 9 Graphs xj xi ei e1 e2 u x1 x2 xj+1 ej ..... xi-1 xj-1 xj-1 xi ..... x2 ...... v ei e1 e2 u x1 ej+1 xi-1 xj ej xj+1 ...... v ej+1 Note: Theorem 1 does not hold for circuit (cycle) Transparency No. 9-24 A theorem about simple circuits Discrete Mathematics Chapter 9 Graphs G = (V,E): an undirected multi-graph, u,v: two vertices in G. Theorem: if there are two distinct simple paths from u to v, then there is a simple circuit in G. (skip) Pf: Let a1: x0 --(e1)-- x1 --(e2)-- x2 --(e3)--…--(et)--xt--(et+1)--xt+1--…---xn=v, and a2: x0 --(e1)-- x1 --(e2)-- x2 --(e3)--…--(et)--xt--(e’t+1)--yt+1--…---ym=v, be two distinct simple paths fro u to v in G If either a1 or a2 contains a (simple) circuit, then we are done. Otherwise let et+1, e’t+1 the first edges with et+1 ≠ e’t+1. let J be the least number in {t+1,…,m} such that yJ = xs where s is any vertex occurring in path a1 (i.e., yJ=xs ∈ {x0,…,xn}). Note since ym = xn= v, such J must exist. Transparency No. 9-25 A theorem about simple circuits Discrete Mathematics Chapter 9 Graphs Now it is easy to see that: 1. If s ≤ t then { xs --(es+1)-- xs+1--…--(et)—xt } U { xt--(e’t+1)--yt+1--…--(e’J-1)-yJ } is a circuit. This is not possible since all edges of the circuit are part of a2. 2. If s > t then {xt--(et+1)--xt+1--…-(es-1)--xs} U { xt--(e’t+1)--yt+1--…--(e’J-1)-yJ } ---(*) is a simple circuit. Note: {xt,xt+1,…,xs} ⋂ {xt,yt+1,…,yJ } = {xt, yJ=xs} If there were ea = e’b => f(ea) = {xt, xt+1=xs} = {xt,yt+1=yJ} => a=b=t+1 => e t+1 = e’t+1 a contradiction! o/w, by def, (*) is a simple circuit. Transparency No. 9-26 Discrete Mathematics Chapter 9 Graphs Xt et+1 xs u yJ e’t+1 v es xs e’J e’J yJ yJ-1 Transparency No. 9-27 Connected components Discrete Mathematics Chapter 9 Graphs G = (V,E): an undirected graph. 1. Any maximal connected subgraph of G is called a connected component of G. (i.e., G‘ = (V',E') is a connected component of G iff 1. G' is a connected subgraph of G and 2. There is no connected subgraph of G properly covering G'.) Ex: Transparency No. 9-28 Connected components (cont'd) Discrete Mathematics Chapter 9 Graphs Note 1. Every two distinct connected components are disjoint. Pf: G1 = (V1,E1), G2 = (V2,E2): two distinct connected components. If G1 and G2 overlap (i.e., V1 V2 ). ==> $v ∈ V1V2 ==> G3 = (V1 ⋃ V2,E1 U E2) is a connected subgraph larger than G1 and G2, a contradiction! QED Note 2. Every connected subgraph G' of G must be contained in some connected component of G. (skip) Transparency No. 9-29 Connected components (cont'd) Discrete Mathematics Chapter 9 Graphs Pf: Let i = 0 and Gi = G'. If Gi is maximal then we are done. o/w, there is connected Gi+1 contains Gi. If Gi+1 is maximal, then we are done; o/t let i = i+1 and repeat the same process, we will eventually (if G is finite) get a maximal graph containing G'. Note 3. Let G1,G2,...,Gk be the set of all connected components of G. Then G = Ui = 1..k Gi Pf: 1. Ui=1,k Gi G since every Gi G. 2. G Ui=1,kGi since every edge and every vertex must belong to some connected component. Transparency No. 9-30 Connected components (cont'd) Discrete Mathematics Chapter 9 Graphs Note 4: Every undirected graph G has a unique set of connected components. (skip) Pf: Let G = (V,E). For each vertex u in V, let Gu = (Vu,Eu) where Vu = {v | there is a path from u to v} V, and Eu = {e | f(e) Vu} E. It is easy to show that Gu is a connected component of G. Moreover, we have 1. for all u, v ∈ V: Gu = Gv iff Vu=Vv /\ Eu=Ev and 2. for all e ∈ E: if f(e) = {u,v} ==> Gu=Gv and e Eu. Hence the set of connected components of G = {Gu | u V}. Note: Connected components in graphs play a role like equivalence classes in equivalence relations. Transparency No. 9-31 The connectivity relation in a graph (skip) Discrete Mathematics Chapter 9 Graphs G = (V,E): an undirected graph Let ~ be the connectivity relation induced by G, i.e., for all u,v in V, u ~ v iff either u = v or u and v are connected in G. Theorem: 1. ~ is an equivalence relation on V. (Hence V/~ is a partition of V) 2. For all u,v in V, u and v are connected iff u and v are in the same block of the partition. 3. For each u V, Gu = (Vu,Eu) = ([u]~, E|[u]) where E|S is the set of edges restricted to the vertex set S, i.e., {e E | f(e) S}. 4. The set of all connected components of G = { (S, E|S) : S V/~}. Transparency No. 9-32 Cut vertices and cut edges Discrete Mathematics Chapter 9 Graphs A vertex in a graph is called a cut vertex (or articulation point) if the removal of this vertex and all edges incident with it will result in more connected components than in the original graph. Corollary: The removal of a cut vertex (and all edges incident with it) produces a graph that is not connected. Cut edges (bridges) The removal of it will result in graph with more connected components. a d f g Ex 4: Determine all cut vertices and all bridges in the right graph. b cut vertices =? h c e bridges =? Transparency No. 9-33 Discrete Mathematics Chapter 9 Graphs Strongly connected digraphs Def 4: G = (V,E): a directed graph G is strongly connected iff there are paths from u to v and from v to u for every pair of distinct vertices u and v in G. Def 5: G is weakly connected iff there is a path between every pair of distinct vertices in the underlying graph of G. Ex 5: G H G is strongly connected. H is weakly connected. Transparency No. 9-34 Path and isomorphism Discrete Mathematics Chapter 9 Graphs P(-) : a property on graphs Ex: P(G) = "G has a simple cycle of length > 2" P(G) = " G has an even number of vertices and edges". P(G) = ... P is said to be an isomorphic invariant if P is invariant under all isomorphic graphs, i.e., for all graph G1 and G2, if G1 and G2 are isomorphic then P(G1) P(G2). Ex1: Pm,n(G) = " G has m vertices and n edges ", where m and n are some constant numbers, is an isomorphic invariant. Corollary: G1,G2: two graphs; P: an isomorphic invariant; If P(G1) and P(G2) have distinct truth value, then G1 and G2 are not isomorphic. Transparency No. 9-35 Discrete Mathematics Chapter 9 Graphs More on graph isomorphism Ex2: P2(G) = "G has a simple circuit of length k", where k is a number > 2, is an isomorphic invariant. Pf: G1 = (V1,E1), G2 = (V2,E2): two simple graphs. Let h: V1->V2 be any isomorphism from G1 to G2. Then if x0 --(e1)--> x2--(e2)--> x3--.... -->(en)-->xn is a simple path on G1, then the sequence h(x0) -->(h(e1))-->h(x2)--(h(e2))-->h(x3)--...-->((h(en))-->h(xn) is also a simple path on G2. Ex 6: G and H are not isomorphic since H has s simple cycle of length 3 (1261), whereas G has no simple cycle of length 3. 3 2 2 3 1 4 6 G 5 1 4 6 H 5 Transparency No. 9-36 Counting paths b/t vertices Discrete Mathematics Chapter 9 Graphs G = (V,E) with V = {V1,...,Vn} : a simple graph with adjacent matrix M. ==> # different paths of length k from vi to vj = (Mk)ij, where scalar multiplication are integer product (instead of boolean AND). Pf: by math ind on k. 1. basis step: k = 1: => By def. Mij is the number of edges (= path of length 1) from vi to vj. 2. Ind. step: assume (Mm)ij = #paths of length m from vi to vj for all m < k and for all ui, uj ∈ V. But #paths of length k from vi to vj = #paths of length k-1 from ui to v1 x #paths of length 1 from v1 to vj + #paths of length k-1 from ui to v2 x #paths of length 1 from v2 to vj + ... + #paths of length k-1 from ui to vn x #paths of length 1 from vn to vj = St=1..n (Mk-1)it x Mtj = (MK)ij. Transparency No. 9-37 Example Discrete Mathematics Chapter 9 Graphs Ex 8: G = ({1,2,3,4}, {12,13,24,34}) ==> M = [0110;1001;1001;0110] ==> M4 = [8008;0880;0880;8008] ==> There are 8 different paths of length 4 from a to d. Notes: 1. The length of the shortest path from vi to vj is the least k s.t. (MK)ij != 0. 2. G is connected if (Sk=1..n-1 Mk )ij != 0 for all 1≤ i<j ≤ n. Pf: G is connected => for any i ≠ j, there is a simple path (of length t < n) from vi to vj ==> (Mt)ij > 0 ==> (Sk=1..n-1 Mk )ij != 0. QED Transparency No. 9-38 Discrete Mathematics Chapter 9 Graphs Euler and Hamilton paths C The seven bridges problem: Problem: Is there a path passing through all bridges w/o crossing any bridge twice? Multigraph model: Problem: Is there a simple path of length 7? A D B The town of Konigsburg C D A B Transparency No. 9-39 Discrete Mathematics Chapter 9 Graphs Eular paths and Eular cycles Def. 1: A Eular path in a multigraph G is a simple path containing all edges. Def. 2: A Eular circuit in a multigraph G is a simple circuit containing all edges. Ex1: In G1, G2 and G3: G1 has a Eular a b a b a b circuit: a,e,c,d,e,b,a. e G3 has a Eular path: d bedbadca. e c G1 d G2 c c G3 d e Note: If there is a Eular circuit beginning from a vertex v, then there is a Eular path or circuit beginning from any other vertex. Transparency No. 9-40 Discrete Mathematics Chapter 9 Graphs Necessary and sufficient conditions for Eular paths and Eular circuits Theorem 1: A connected multigraph has a Eular circuit iff each of its vertices has even degree. Corollary: The seven-bridges problem has no Eular circuit. Pf: "=>": G = (V,E): any multigraph. Let a = x0 e1 x1 e2 x2 e2 x3 ... en xn=x0 be any Eular circuit. For each v=xi in V ≠ x0, since ei-->xi --> ei+1 we have deg(v) = 2 |{j | xj = v and 0<j<n}| and for x0 we have deg(x0) = 2x|{j | xj = x0 and 0<j<n }| + 2. Hence every vertex has even degree. (<=): by induction on |E|. If |E|=0, by definition, it has a Eular ckt. O/W Let a = x0 e1 x1 e2 x2 e3 ... en xn=x0 be any simple circuit. (its existence will be shown later.) If a is a Eular circuit, then we are done. O/W: Transparency No. 9-41 Discrete Mathematics Chapter 9 Graphs Proof of Eular condition Let G' = (V',E') be the resulting graph formed from G by removing all e1,e2,...,en from E. Let G1 = (V1,E1),...,Gk =( Vk,Ek) be all connected components of G'. Since G is connected, {x0,...,xn} Vi != {} for all 0<i<k+1. (o/w there is no path from x0 to vertices in Vi). For each i let xti be any vertex in {x0,...,xn} Vi. Since Gi = (Vi,Ei) and |Ei| < |E| and every vertex in Vi has even degree, by ind. hyp. there is a Eular circuit ai = xti ->...-> xti in Gi. Now join each ai with a at xti: a1 e1 e2 ak ei ..... x0 x1 x2 ....... xt1 xi ej+1 ej xtk xj ...... xj+1 xn=x0 we can form a Eular circuit in G. QED. Transparency No. 9-42 Discrete Mathematics Chapter 9 Graphs Example: (skip) h g a = a b c d a is a simple circuit in G. f e removing all edges in a results in a three connected components: d G1, G2 and G3 intersecting with G a at {a,d}, {b} and {c} respectively. b By ind. hyp., c $ Eular ckt :a1 = (a...a) g h =(aedfghefa) f e a2: (b) and a d G1 a3: (c i j c) ==> join a and all ai, we obtain i G3 a Eular ckt of G: b G2 j (aedfghefa)b(cijc)da. c Transparency No. 9-43 i j Eular condition for Eular paths: Discrete Mathematics Chapter 9 Graphs Theorem 2: A connected multigraph has an Eular path but not a Eular ckt iff it has exactly two vertices of odd degree. Pf: (=>): G = (V,E): any multigraph. Let a = x0 e1 x1 e2 x2 e2 x3 ... en xn != x0 be any Eular path. For each v=xi in V != x0 or xn, since ei-->xi --> ei+1 we have deg(v) = 2 |{j | xj = v and 0<j<n}| and for v = x0 or xn we have deg(v) = 2x|{j | xj = v and 0<j<n } + 1. Hence all vertices but x0 and xn have even degree. (<=): Let G' = (V, EU{e}) where e is a new edge connecting a and b, which are vertices of G with odd degree. ==> Every vertex of G has even degree. By theorem 1, $ a Eular path a = a -> .... ->b->(e)->a. ==> removing e from a we get a Eular path of G. QED Transparency No. 9-44 Existence of simple circuits Discrete Mathematics Chapter 9 Graphs Lemma: G = (V,E): a multigraph s.t. E != {} and every vertex has even degree. Then there exist a simple ckt in G from any vertex of nonzero degree. Pf: Let x0 be any vertex in G with nonzero degree. We construct a sequece of simple paths a’s which eventually become a simple circuit as follows: 0. Initially a1 = x0 --e1-- x1. G1 = (V, E \{e1}). note: x1 in G1 has degree > 0 hence there is an edge leaving x1. 1. assume ai = x0...xi has been formed and Gi = (V, Ei= E\{e1,...,ei}). If xi = xk for k<i then xk-ek- - … xi is a simple ckt and we are done. o/w by ind. hyp. xi has odd degree in Gi, hence we can find an edge e in Gi connecting xi and some other vertex u. now let ai+1= ai -- e--u; xi+1 = u ; and i = i+1 2. goto 1. Note: the procedure must terminate since every iteration of step 1 will result in one edge removed from G, but G has only a finite number of edges. So the prod. will exit from step 1 with a simple ckt returned. QED Transparency No. 9-45 Hamilton paths and circuits Discrete Mathematics Chapter 9 Graphs Def. 2: G = (V,E): a multigraph. A path x0 e1 x1 e2 x2... en xn in G is a Hamilton path if {x0,...,xn} = V and xi xj for all i j. A ckt x0 e1 x1 e2 x2... en xn=x0 (n > 1) in G is a Hamilton ckt if {x1,...,xn} = V and xi xj for all i j Ex: Problem: Is there a simple principle, like that of Eular ckt, to determine whether a multigraph has a Hamilton ckt? Ans: no ! In fact, there is no known polynominal time algorithm which can test if a given input multigraph has a Hamilton ckt! Theorem: [sufficient condition] G: a connected simple graph with n 3 vertices. => If every vertex has degree n/2, then G has Hamilton ckts. Transparency No. 9-46 Discrete Mathematics Chapter 9 Graphs Grey code (skip) Ex 8: label regions of a disc: Problem: split the disc into 2n arcs of equal length and assign a bit string of length n to each arc s.t. adjacent arcs are assigned bit strings differing from neighbors by one bit only. Problem: 111 000 How to find Gray code 100 000 001 110 of n-bit length? 001 101 010 Rule: Let Gn = (Vn,En) 101 100 011 011 111 = Qn be the n cube. 110 010 111 011 A cycle of the disc 101 (a grey code) corresponds 001 to an Hamilton ckt in Qn. 010 000 110 100 Transparency No. 9-47 Shortest path problems Discrete Mathematics Chapter 9 Graphs A weighted graph is a graph G = (V,E) together with a weighting function w:E->R+. A shortest path from a to b is a path: a e1 x1 e2 x2 ... en b s.t. Si=1,n w(ei) is minimized. Problem: Given a graph and two vertices a, z, find the length of a shortest path from a to z. Alg: [Dijkstra's algorithm] //L(v): the length of a shortest path from a to v// 1. L(a) := 0; L(v) = w(a,v) for all v ≠ a ; S := {a}; 2. While( ~S ≠ { } ){ // i.e., S ≠ V 3. u = any vertex ∉ S with minimum L(u); 4. S = S U {u}; 5. for( all v ∉ S) 6. L(v) = min(L(u) + w(u,v), L(v)) } 7. end /* L(z) = length of the shortest path from a to z}. Transparency No. 9-48 Discrete Mathematics Chapter 9 Graphs Example: Running Time: O(n2) b d 5 6 4 8 1 a z 2 3 2 10 c b,4 e d 5 6 4 1 a,0 8 z 2 3 2 c,2 10 e Transparency No. 9-49 Discrete Mathematics Chapter 9 Graphs b,3 d,10 5 6 4 8 1 a,0 z 2 3 2 c,2 b,3 10 e,12 5 d,8 6 4 1 a,0 8 z 2 3 2 c,2 10 e,12 Transparency No. 9-50 Discrete Mathematics Chapter 9 Graphs b,3 d,8 5 6 4 8 1 a,0 z,14 2 3 2 c,2 b,3 10 e,10 5 d,8 6 4 1 a,0 8 z,13 2 3 2 c,2 10 e,10 Transparency No. 9-51 Correctness (skipped!) Discrete Mathematics Chapter 9 Graphs Let Sk = the value of S after the kth iteration of the for-loop. uk = the vertex added to Sk at the kth iteration. Lk(v) = the value of L(v) after kth iteration. Notes Sk = {u0=a,u1,…,uk}. Lj(uk) = Lk-1(uk) for all j >k-1. 1. L(a) := 0; L(v) = w(a,v) for all v ≠ a ; S := {a}; 2. While( ~S != { } ){ 3. u = any vertex ∉ S with minimum L(u); 4. S = S U {u}; 5. for( all v ∉ S) 6. L(v) = min(L(u) + w(u,v), L(v)) } 7. end /* L(z) = length of the shortest path from a to z}. Transparency No. 9-52 Discrete Mathematics Chapter 9 Graphs Correctness of Dijkstra alg is a direct app. of the following lemma: (skipped) Lemma: for all iterations k and all vertices v: 1. v Sk Lk(v) is the length of the shortest of all paths from a to v. 2. v ∉ Sk Lk(v) is the length of the shortest of all paths from a to v of which all intermediate vertices must come from Sk. pf: By induction on k. k = 0: Then S={a} , Lk (a) = 0 is the shortest length from a to a. v ≠ a => Lk (v) = w(a,v) is the length of the shortest from a to v without passing through any vertex in S. k= j+1 > 0: By step 3, Lj(uk ) = min { Lj(v) | v ~Sj }, and by step 4. Lk(uk) = Lj(uk). Now we show that Lj(uk) (and hence Lk(uk) ) is the shortest length of all paths from a to uk. Assume it is not. Then there must exist a shorter path a from a to uk, but such path must pass through a vertex not in Sj, since by ind.hyp, Lj(uk) is the least length of all paths passing only through Sj. Now let a = a --- u ----uk where u is the first vertex of a that are not in S and the subpath a --- u contains only vertices from Sj. Then the length |a| = | a---u | + |u --- uk|, but |a ---u| ≥ Lj(uk) Hence it is impossible that |a| < Lj(uk). This shows (1) is true. Transparency No. 9-53 (skipped) Discrete Mathematics Chapter 9 Graphs Now consider (2). let v be any vertex ∉ Sk . The shortest path from a to v with intermediate vertices among Sk either contains uk or not. 1. If it does not, then it is also a shortest path from a to v containing vertices form Sj, and by ind.hyp, its length is Lj(v). 2. If it conatins uk, then uk must be the last vertex before reaching v, since if a---uk,t---v is a shortest path, then the path a---t---v, where a--t is a shortest path from a to t, must be not longer than it. As a result, it has distance Lj(uk) + w(uk,v), where by ind.hyp., Lj(uk) is the shortest distance of all paths from a to uk passing through Sj. Finally, Step 6 assigns the minimum of both cases to Lk(v) and hence sastisfies lemma (2). Transparency No. 9-54 Find the distances b/t all pairs of vertices Discrete Mathematics Chapter 9 Graphs Floyd(G:(V,E,w)) 1. for i = 1 to n for j = 1 to n d(i,j) = w(i,j); 2. for k = 1 to n ---- d(i,j) is the distance of minimum path from i ----- to j with interior points among {1,2,...,k}. for i = 1 to n for j = 1 to n d(i,j) = min (d(i,k) + d(k,j), d(i,j)); end /* d(i,j) is the shortest distance b/t i and j */ running time : O(n3). Note: we can also apply Dijkstra's alg to obtain a O(n3) alg for distances of all pairs of vertices. Transparency No. 9-55 Planar graphs Discrete Mathematics Chapter 9 Graphs Def 1: A graph is planar iff it can be redrawn in the plane w/o any edges crossing. Such a drawing is called a planar representation of the graph. Ex1: K4: ok Ex2: Q3: ok Ex3: K3,3: not planar. Eular's formula: A planar representation splits the plane into regions (including an unbounded one. Eular showed a relation among #regions, |E| and |V|). Theorem 1: G=(V,E): a connected planar graph with e edges and v vertices. Then r (#regions) = e - v + 2. Pf: By induction on G =(V,E). Let G0,...., Gn = G be a sequence of subgraphs of G. Transparency No. 9-56 Planar graphs (cont'd) Discrete Mathematics Chapter 9 Graphs G0 contains only one vertex. Gi+1 is formed from Gi by adding one edge incident with one vertices in Gi (and a vertex if needed) Let ri, ei, vi are #regions, #edges, #vertices in Gi respectively. Basis: e0 = 0; r0 = 1; v0 =1. Hence r0 = e0 - v0 + 2. Ind. step: assume ri = ei - vi + 2. Let (ai+1,bi+1) be the edges added to Gi to form Gi+1. case 1: {ai+1,bi+1 } ∈ Vi: ==> ai+1 and bi+1 must be on the boundary of a common region. (o/w crossing would occur!) ==> add {ai+1,bi+1} partition the region into 2 subregion ==> ri+1 = ri + 1; ei+1 = ei +1; vi+1 = vi. ==> ri+1 = ei+1-vi+1+2. case 2: a i+1 ∈ Vn but b i+1 ∉ Vi => add {ai+1,bi+1 } does not produce any region. => ri+1 = ri; ei+1=ei+1; vi+1 = vi+1 ==> ri+1 = ei+1 -vi+1+ 2. QED Transparency No. 9-57 More on planar graphs Discrete Mathematics Chapter 9 Graphs Ex4: G has 20 vertices, each of degree 3. ==> #regions = ? r = e - v + 2 = 30 - 20 + 2 = 12. Corollary: G: a connected planar simple graph with e edges and v vertices 3. ==> e 3v - 6. pf: for each region R: define deg(R) = #edges on the boundary of R. ==> 2e = S deg(R) [each edge shared by 2 regions] =S deg(v) Since deg(R) 3 (simple graph), 2e = S deg(R) 3 r. ==> 2e/3 r = e-v+2 ==> 3v- 6 e. QED Ex5: K5 is not planar. sol: K5 has C(5,2) = 10 edges and 5 vertices. ==> 3v - 6 = 15-6 = 9 < 10, violating the necessary condition ! Ex6: K3,3, though satisfying the condition: e 3v - 6, is not planar. Transparency No. 9-58 Discrete Mathematics Chapter 9 Graphs More on planar graph: G: a connected planar simple graph of e edges and v > 2 vertices and no simple ckt of length 3 => e 2v - 4. pf: no ckt of length 3 ==> every region has degree 4. ==> 2e = S deg(R) r. ==> e r = 2e-2v+4 ==> e 2v - 4. Ex 6: K 3,3 is not planar. K 3,3 has 9 edges and 6 vertices and has no cycle of length 3. ==> 2 x 6 - 4 = 8 < 9. Hence not planar. General rule about planar graphs: Def: elementary subdivision: u--------------v ==> u------w------v. Transparency No. 9-59 General rule about planar graphs Discrete Mathematics Chapter 9 Graphs Def: G1 and G2 are homeomorphic iff they can be obtained from the same graph by a sequence of elementary subdivisions. Ex12: Fact: G in not planar if some of its subgraphs is not planar. Theorem 2: [Kuratowski theorem] A graph is nonplanar iff its contains a subgraph which is homeomorphic to K5 or K3,3. Transparency No. 9-60 Discrete Mathematics Chapter 9 Graphs Graph coloring Problem: Given a map, determine at least how many colors are needed to color the map s.t. neighbor regions (with a common border) are assigned diff colors. Ex: H B C I G A D E F Transparency No. 9-61 Transform maps into graphs Discrete Mathematics Chapter 9 Graphs Ideas: regions ---> vertices R1 and R2 share a border ---> {R1,R2} is an edges Def: M: a map GM = (V,E) where V = the set of all regions E={ {r1,r2} | r1 and r2 share a common border line in M} GM is called the dual graph of the map M. Notes: 1. Every dual graph of maps are planar graphs 2. Every planar graph is the dual graph of some map. Transparency No. 9-62 Graph coloring Discrete Mathematics Chapter 9 Graphs Def 1:G=(V,E): a graph. A coloring of G is the assignment of a color to each vertex s.t. no two adjacent vertices are assigned the same color. Problem: What is the least number of colors necessary to color a graph ? Def 2: G=(V,E): a graph. The chromatic number of G is the least number of colors needed for a coloring of the graph G. Problem: What is the maximum of all chromatic numbers of all planar graphs ? ==>1. a problem studied for over 100 years ! [1850~1976, solved by Appel&Haken] 2. 2000 cases generated and verified by computer programs. 3. issue: believable ? Transparency No. 9-63 Discrete Mathematics Chapter 9 Graphs The 4-color theorem Theorem 1: The chromatic number of a planar graph is no greater than 4. Note: 1. Theorem 1 holds for planar graphs only. 2. Non-planar graphs can have any chromatic number > 4. Ex: K5 has chromatic number 5. In fact Kn has chromatic number n for any n. Exs: #(Km ,n) = 2. #(Cn) = 2 if n is even and 3 if n is odd. Transparency No. 9-64 Discrete Mathematics Chapter 9 Graphs Applications (scheduling and assignments) Ex 5: Problem: how to assign the final exams s.t. no student has two exams at the same time. Sol: G = (V,E) where V = the set of all courses {c1,c2} in E iff $ a student taking courses c1 and c2. ==> A schedule of the final examinations corresponds to a coloring of the associated graph G. IV 7 1 I 2 II 3 I 6 III 5 III Time I ==> II III IV courses 1,6 2 3,5 4,7 4 IV Transparency No. 9-65