Chapter 2 Trees and Distance 2.1 Basic properties

Slides:



Advertisements
Similar presentations
Chapter 11 Trees Graphs III (Trees, MSTs) Reading: Epp Chp 11.5, 11.6.
Advertisements

Chapter 5: Tree Constructions
CS 336 March 19, 2012 Tandy Warnow.
Trees Chapter 11.
Lecture 5 Graph Theory. Graphs Graphs are the most useful model with computer science such as logical design, formal languages, communication network,
Greedy Algorithms Greed is good. (Some of the time)
Graphs III (Trees, MSTs) (Chp 11.5, 11.6)
CMPS 2433 Discrete Structures Chapter 5 - Trees R. HALVERSON – MIDWESTERN STATE UNIVERSITY.
Combinatorial Algorithms
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 21: Graphs.
1 Discrete Structures & Algorithms Graphs and Trees: II EECE 320.
Chapter 23 Minimum Spanning Trees
Graph. Undirected Graph Directed Graph Simple Graph.
3 -1 Chapter 3 The Greedy Method 3 -2 The greedy method Suppose that a problem can be solved by a sequence of decisions. The greedy method has that each.
Definition Hamiltonian graph: A graph with a spanning cycle (also called a Hamiltonian cycle). Hamiltonian graph Hamiltonian cycle.
Definition Dual Graph G* of a Plane Graph:
Theorem Every planar graph is 5-colorable.
1 Separator Theorems for Planar Graphs Presented by Shira Zucker.
Graph Theory Ch. 2. Trees and Distance 1 Chapter 2 Trees and Distance 2.1 Basic properties 2.2 Spanning tree and enumeration 2.3 Optimization and trees.
Curve Curve: The image of a continous map from [0,1] to R 2. Polygonal curve: A curve composed of finitely many line segments. Polygonal u,v-curve: A polygonal.
Data Structures Using C++ 2E
Graph Theory Chapter 6 Planar Graphs Ch. 6. Planar Graphs.
Subdivision of Edge In a graph G, subdivision of an edge uv is the operation of replacing uv with a path u,w,v through a new vertex w.
Copyright © Cengage Learning. All rights reserved.
© The McGraw-Hill Companies, Inc., Chapter 3 The Greedy Method.
5.4 Shortest-path problem  Let G=(V,E,w) be a weighted connected simple graph, w is a function from edges set E to position real numbers set. We denoted.
Chapter 9 – Graphs A graph G=(V,E) – vertices and edges
Algorithms: Design and Analysis Summer School 2013 at VIASM: Random Structures and Algorithms Lecture 3: Greedy algorithms Phan Th ị Hà D ươ ng 1.
Chapter 2 Graph Algorithms.
Graph Theory Topics to be covered:
COSC 2007 Data Structures II Chapter 14 Graphs III.
Approximating the Minimum Degree Spanning Tree to within One from the Optimal Degree R 陳建霖 R 宋彥朋 B 楊鈞羽 R 郭慶徵 R
UNC Chapel Hill Lin/Foskey/Manocha Minimum Spanning Trees Problem: Connect a set of nodes by a network of minimal total length Some applications: –Communication.
Foundations of Discrete Mathematics
CSE, IIT KGP Euler Graphs and Digraphs. CSE, IIT KGP Euler Circuit We use the term circuit as another name for closed trail.We use the term circuit as.
Trees and Distance. 2.1 Basic properties Acyclic : a graph with no cycle Forest : acyclic graph Tree : connected acyclic graph Leaf : a vertex of degree.
Tree A connected graph that contains no simple circuits is called a tree. Because a tree cannot have a simple circuit, a tree cannot contain multiple.
CSCI 115 Chapter 7 Trees. CSCI 115 §7.1 Trees §7.1 – Trees TREE –Let T be a relation on a set A. T is a tree if there exists a vertex v 0 in A s.t. there.
Discrete Structures Lecture 12: Trees Ji Yanyan United International College Thanks to Professor Michael Hvidsten.
 Rooted tree and binary tree  Theorem 5.19: A full binary tree with t leaves contains i=t-1 internal vertices.
5.5.2 M inimum spanning trees  Definition 24: A minimum spanning tree in a connected weighted graph is a spanning tree that has the smallest possible.
5.5.3 Rooted tree and binary tree  Definition 25: A directed graph is a directed tree if the graph is a tree in the underlying undirected graph.  Definition.
Introduction to Graph Theory
Chapter 1 Fundamental Concepts Introduction to Graph Theory Douglas B. West July 11, 2002.
Agenda Review: –Planar Graphs Lecture Content:  Concepts of Trees  Spanning Trees  Binary Trees Exercise.
Chapter 10 Graph Theory Eulerian Cycle and the property of graph theory 10.3 The important property of graph theory and its representation 10.4.
Chapter 7. Trees Weiqi Luo ( 骆伟祺 ) School of Software Sun Yat-Sen University : Office : A309
5.5.2 M inimum spanning trees  Definition 24: A minimum spanning tree in a connected weighted graph is a spanning tree that has the smallest possible.
Graph Theory and Applications
Introduction to Graphs. This Lecture In this part we will study some basic graph theory. Graph is a useful concept to model many problems in computer.
Trees Dr. Yasir Ali. A graph is called a tree if, and only if, it is circuit-free and connected. A graph is called a forest if, and only if, it is circuit-free.
Spanning tree Lecture 4.
Trees Thm 2.1. (Cayley 1889) There are nn-2 different labeled trees
Great Theoretical Ideas in Computer Science for Some.
Chapter 20: Graphs. Objectives In this chapter, you will: – Learn about graphs – Become familiar with the basic terminology of graph theory – Discover.
Indian Institute of Technology Kharagpur PALLAB DASGUPTA Graph Theory: Trees Pallab Dasgupta, Professor, Dept. of Computer Sc. and Engineering, IIT
COMPSCI 102 Introduction to Discrete Mathematics.
Data Structures and Algorithm Analysis Graph Algorithms Lecturer: Jing Liu Homepage:
Chapter 11. Chapter Summary  Introduction to trees (11.1)  Application of trees (11.2)  Tree traversal (11.3)  Spanning trees (11.4)
5.6 Prefix codes and optimal tree Definition 31: Codes with this property which the bit string for a letter never occurs as the first part of the bit string.
Trees.
Chapter 5 : Trees.
12. Graphs and Trees 2 Summary
COMP 6/4030 ALGORITHMS Prim’s Theorem 10/26/2000.
Advanced Algorithms Analysis and Design
Trees.
Chapter 2 Trees and Distance 2.1 Basic properties
Discrete Mathematics for Computer Science
Graph Theory: Euler Graphs and Digraphs
Presentation transcript:

Chapter 2 Trees and Distance 2.1 Basic properties Graph Theory Chapter 2 Trees and Distance 2.1 Basic properties 2.2 Spanning tree and enumeration 2.3 Optimization and trees Ch. 2. Trees and Distance

Acyclic, tree2.1.1 A graph with no cycle is acyclic Graph Theory Acyclic, tree2.1.1 A graph with no cycle is acyclic A forest is an acyclic graph A tree is a connected acyclic graph A leaf (or pendant vertex) is a vertex of degree 1 leaf tree tree forest Ch. 2. Trees and Distance

Graph Theory Spanning Subgraph 2.1.1 A spanning subgraph of G is a subgraph with vertex set V(G) A spanning tree is a spanning subgraph that is a tree Spanning subgraph Spanning tree Ch. 2. Trees and Distance

Graph Theory Lemma. Every tree with at least two vertices has at least two leaves. Deleting a leave from a n-vertex tree produces a tree with n-1 vertices. 2.1.3 Proof: (1/2) A connected graph with at least two vertices has an edge. In an acyclic graph, an endpoint of a maximal nontrivial path has no neighbor other than its neighbor on the path. Hence the endpoints of such a path are leaves. Impossible! Cycle occurs Maximal path Impossible! It is Maximal. Ch. 2. Trees and Distance

Graph Theory Lemma. Every tree with at least two vertices has at least two leaves. Deleting a leave from a n-vertex tree produces a tree with n-1 vertices. 2.1.3 Proof: (2/2) Let v be a leave of a tree G, and that G’=G-v. A vertex of degree 1 belongs to no path connecting two other vertices. Therefore, for u, w  V(G’), every u, w-path in G is also in G’. Hence G’ is connected. Since deleting a vertex cannot create a cycle, G’ also is acyclic. Thus G’ is a tree with n-1 vertices. Ch. 2. Trees and Distance

For u, w  V(G’), every u, w-path in G is also in G’. Graph Theory G G’ v w u For u, w  V(G’), every u, w-path in G is also in G’. Ch. 2. Trees and Distance

Graph Theory Theorem 2.1.4. For an n-vertex graph G (with n1), the following are equivalent (and characterize the trees with n vertices) A) G is connected and has no cycles B) G is connected and has n-1 edges C) G has n-1 edges and no cycles D) For, u, vV(G), G has exactly one u, v-path 2.1.4 Proof: We first demonstrate the equivalence of A, B, and C by proving that any two of {connected, acyclic, n-1 edges} together imply the third Ch. 2. Trees and Distance

Theorem 2.1.4 Continue A{B,C}. connected, acyclic  n-1 edges Graph Theory Theorem 2.1.4 Continue A{B,C}. connected, acyclic  n-1 edges We use induction on n. For n=1, an acyclic 1-vertex graph has no edge. For n>1, we suppose that implication holds for graphs with fewer than n vertices. Given an acyclic connected graph G, Lemma 2.1.3 provides a leaf v and states that G’=G-v also is acyclic and connected (see figure in previous proof). Applying the induction hypothesis to G’ yields e(G’)=n-2. Since only one edge is incident to v, we have e(G)=n-1. Ch. 2. Trees and Distance

Theorem 2.1.4 continue B{A, C}. connected and n-1 edges  acyclic Graph Theory Theorem 2.1.4 continue B{A, C}. connected and n-1 edges  acyclic If G is not acyclic, delete edges from cycles of G one by one until the resulting graph G’ is acyclic. Since no edge of a cycle is a cut-edge(Theorem 1.2.14), G’ is connected. Now the preceding paragraph implies that e(G’)=n-1. Since we are given e(G)=n-1, no edges were deleted. Thus G’=G, and G is acyclic. Ch. 2. Trees and Distance

Theorem 2.1.4 continue C{A, B}. n-1 edges and no cycles  connected Graph Theory Theorem 2.1.4 continue C{A, B}. n-1 edges and no cycles  connected Let G1,…,Gk be the components of G. Since every vertex appears in one component, in(Gi)=n. Since G has no cycles, each component satisfies property A. Thus e(Gi)=n(Gi)-1. Summing over i yields e(G)=I[n(Gi)-1]=n-k. We are given e(G)=n-1,so k=1, and G is connected. Ch. 2. Trees and Distance

Graph Theory Theorem 2.1.4 AD. Connected and no cycles  For u, vV(G), one and only one u, v-path exists. Since G is connected, each pair of vertices is connected by a path. If some pair is connected by more than one , we choose a shortest (total length) pair P, Q of distinct paths with the same endpoints. By this extremal choice, no internal vertex of P or Q can belong to the other path. This implies that PQ is a cycle, which contradicts the hypothesis A. p v u q Ch. 2. Trees and Distance

Graph Theory Theorem 2.1.4 DA. For u, vV(G), one and only one u, v-path exists  connected and no cycles. If there is a u,v-path for every u,vV(G), then G is connected. If G has a cycle C, then G has two u,v-paths for u,v V(G); which contradicts the hypothesis D Hence G is acyclic (this also forbids loops). Ch. 2. Trees and Distance

Graph Theory Corollary: a) Every edge of a tree is a cut-edge b) Adding one edge to a tree forms exactly one cycle c) Every connected graph contains a spanning tree 2.1.5 Proof: A tree has no cycles, so Theorem 1.2.14 implies that every edge is a cut-edge. A tree has a unique path linking each pair of vertices (Theorem2.1.4D), so joining two vertices by an edge creates exactly one cycle. As in the proof of BA, C in Theorem 2.1.4, iteratively deleting edges from cycles in a connected graph yields a connected acyclic subgraph. Ch. 2. Trees and Distance

Graph Theory Proposition: If T, T’ are spanning trees of a connected graph G and eE(T)-E(T’), then there is an edge e’E(T’)- E(T) such that T-e+e’ is a spanning tree of G. 2.1.6 Proof: By Corollary 2.1.5a, every edge of T is a cut-edge of T. Let U and U’ be the two components of T-e. Since T’ is connected, T’ has an edge e’ with endpoints in U and U’. Now T-e+e’ is connected, has n(G)-1 edges, and is a spanning tree of G. e’ e G T T’ T-e+e’ Ch. 2. Trees and Distance

Distance in trees and Graphs Graph Theory Distance in trees and Graphs If G has a u, v-path, then the distance from u to v, written dG(u,v) or simply d(u,v), is the least length of a u,v-path. If G has no such path, then d(u,v)=  The diameter (diam G) is maxu,vV(G) d(u,v). Upper bound of distance between every pair. The eccentricity of a vertex u, written (u), is maxvV(G) d(u,v). Upper bound of the distance from u to the others. The radius of a graph G, written rad G, is minuV(G) (u). Lower bound of the eccentricity. Ch. 2. Trees and Distance

Distance, Diameter, Eccentricity, and Radius Graph Theory Distance, Diameter, Eccentricity, and Radius a b f e c g d Distance(f,c) : 2 Distance(g,c): 2 Distance(a,c): 3 diameter: 3 eccentricity(f):2 eccentricity(a): 3 radius: 2 Ch. 2. Trees and Distance

If G is a simple graph, then diam G3  diam 3 2.1.11 Graph Theory If G is a simple graph, then diam G3  diam 3 2.1.11 Proof: 1/2 Since diam G>2, there exist nonadjacent vertices u, vV(G) with no common neighbor If any pair of nonadjacent vertices has a common neighbor, the distance of every pair is less than or equal to 2 and diam G=2 Ch. 2. Trees and Distance

If G is a simple graph, then diam G3  diam 3 2.1.11 Graph Theory If G is a simple graph, then diam G3  diam 3 2.1.11 Proof: 2/2 Hence every xV(G)-{u,v} has at least one of {u,v} as a nonneighbor Either u or v is not connected to x Equivalently, this makes x adjacent to at least one of {u,v} in Since also uvE( ), for every pair x, y there is an x, y-path of length at most 3 in through {u,v}. Hence diam 3 u v Ch. 2. Trees and Distance

Graph Theory Center 2.1.12 Definition: The center of a graph G is the subgraph induced by the vertices of minimum eccentricity. The center of a graph is the full graph if and only if the radius and diameter are equal. Center Ch. 2. Trees and Distance

Theorem: The center of a tree is a vertex or an edge 2.1.13 Graph Theory Theorem: The center of a tree is a vertex or an edge 2.1.13 Proof: We use induction on the number of vertices in a tree T. Basis step: n(T)2. With at most two vertices, the center is the entire tree. Ch. 2. Trees and Distance

Theorem. 2.1.13 Continue Induction step: n(T)>2. Graph Theory Theorem. 2.1.13 Continue Induction step: n(T)>2. Let T’ = T- {leaves}. By Lemma 2.1.3, T’ is a tree. Since the internal vertices on the paths between leaves of T remain, T’ has at least one vertex. Every vertex at maximum distance in T from a vertex uV(T) is a leaf (otherwise, the path reaching it from u can be extended farther). Since all the leaves have been removed and no path between two other vertices uses a leave, T’(u)= T(u)-1 for every uV(T’). Also, the eccentricity of a leaf in T is greater than the eccentricity of its neighbor in T. Hence the vertices minimizing T(u) are the same as the vertices minimizing T’(u). It is shown T and T’ have the same center. By the induction hypothesis, the center of T’ is a vertex or an edge. Ch. 2. Trees and Distance

Spanning Trees and Enumeration 2.2 Graph Theory Spanning Trees and Enumeration 2.2 There are 2c(n,2) simple graphs with vertex set [n]={1,…,n}. since each pair may or may not form an edge. How many of these are trees? Ch. 2. Trees and Distance

Graph Theory Enumeration of Trees 2.2 One or two vertices, then there is only one tree. Three vertices, three trees. Four vertices, then four stars and 12 paths, total 16. Five vertices, then there are 125 trees. Ch. 2. Trees and Distance

Algorithm for tree generation by using Prűfer code 2.2.1 Graph Theory Algorithm for tree generation by using Prűfer code 2.2.1 Algorithm. (Prűfer code) Production of f(T)=(a1,…,an-2) Input: A tree T with vertex set SN Iteration: At the ith step, delete the least remaining leaf, and say that ai is the neighbor of the deleted leaf 1. Delete 2 a1= 7 2. Delete 3 a2= 4 3. Delete 5 a3= 4 4. Delete 4 a4= 1 5. Delete 6 a5= 7 6. Delete 7 a6= 1 2 7 1 4 3 6 8 5 Ch. 2. Trees and Distance

Graph Theory Theorem: For a set SN of size n, there are nn-2 trees with vertex set S 2.2.3 Proof: (sketch) Trees with vertex set S Sn-2 of lists of length n-2 One prufer code  one tree. There are nn-2 codes. Proved by induction Ch. 2. Trees and Distance

Spanning Trees in Graphs 2.2.6 Graph Theory Spanning Trees in Graphs 2.2.6 Example. A kite. To count the spanning trees: Four are path around the outside cycle in the drawing The remaining spanning trees use the diagonal edge Since we must include an edge to each vertex of degree 2, we obtain four more spanning trees. The total is eight. Ch. 2. Trees and Distance

Graph Theory Contraction 2.2.7 In a graph G, contraction of edge e with endpoints u, v is the replacement of u and v with a single vertex whose incident edges are the edges other than e that were incident to u or v. The resulting graph G·e has one less edge than G. u G·e e G v Ch. 2. Trees and Distance

Graph Theory Proposition. Let (G) denote the number of spanning trees of a graph G. If eE(G) is not a loop, then (G)= (G-e)+ (G·e) 2.2.8 Proof: 1/2 The spanning trees of G that omit e are precisely the spanning trees of G-e. We need show that G has (G·e) spanning trees containing e It must be shown that contraction of e defines a bijection from the set of spanning trees of G containing e to the set of spanning trees of G·e. Ch. 2. Trees and Distance

Graph Theory Proposition. Let (G) denote the number of spanning trees of a graph G. If eE(G) is not a loop, then (G)= (G-e)+ (G·e) 2.2.8 Proof:2/2 When we contract e in a spanning tree that contains e, we obtain a spanning tree of G·e because the resulting subgraph of G·e is spanning and connected and It has the right number of edges. The other edges maintain their identity under contraction, So no two trees are mapped to the same spanning tree of G·e by this operation. Ch. 2. Trees and Distance

Graph Theory Proposition. Let (G) denote the number of spanning trees of a graph G. If eE(G) is not a loop, then (G)= (G-e)+ (G·e) 2.2.8 (G-e): The number of trees without e (G·e): The number of trees with e A spanning tree in G.e  A spanning tree having e in G G G-e u e v G·e = Ch. 2. Trees and Distance

A Matrix Tree computation. 2.2.12 Graph Theory A Matrix Tree computation. 2.2.12 Given a loopless graph G with vertex set v1, …., vn, let aij be the number of edges with endpoints vi and vj. Let Q be the matrix in which entry (i, j) is –ai,j when i j and is d(vi) when i=j. If Q* is a matrix obtained by deleting row s and column t of Q, then (G) = (-1)s+t detQ* Ch. 2. Trees and Distance

A Matrix Tree computation. 2.2.11 Graph Theory A Matrix Tree computation. 2.2.11 Theorem 2.2.12 instructs us to form a matrix by putting the vertex degrees on the diagonal and subtracting the adjacency matrix. We then delete a row and a column and take the determinant. When G is the kite of Example 2.2.9, the vertex degrees are 3,3,2,2. We form the matrix on the left below and take the determinant of the matrix in the middle. The result is the number of spanning trees. Ch. 2. Trees and Distance

Example 2.2.11 v3 v1 v4 v2 v1 v2 v3 v4 v1 v2 v3 v4 8 Graph Theory Ch. 2. Trees and Distance

Graph Theory Minimum Spanning Tree 2.3 In a connected weighted graph of possible communication links, all spanning trees have n-1 edges; we seek one that minimizes or maximizes the sum of the edge weights. Kruskal’s Algorithm Prim’s Algorithm Ch. 2. Trees and Distance

Kruskal’s Algorithm for Minimum Spanning Tree 2.3.1 Graph Theory Kruskal’s Algorithm for Minimum Spanning Tree 2.3.1 Input: A weighted connected graph Idea: Maintain an acyclic spanning subgraph H. Enlarging it by edges with low weight to form a spanning tree. Consider edges in nondecreasing order of weight. Ch. 2. Trees and Distance

Kruskal’s Algorithm for Minimum Spanning Tree 2.3.1 Graph Theory Kruskal’s Algorithm for Minimum Spanning Tree 2.3.1 Initialization: Set E(H)=. Iteration: If the next cheapest edge joins two components of H, then include it; otherwise, discard it. Terminate when H is connected. H Join Two vertices in one component. Cycle occurs. Not Allowed! Join two components. It works Ch. 2. Trees and Distance

Example of using Kruskal’s Algorithm Graph Theory Example of using Kruskal’s Algorithm 9 9 9 8 2 2 2 4 1 8 4 1 8 4 1 7 6 7 6 7 6 5 5 5 10 11 10 3 11 10 11 3 3 12 12 12 9 9 9 8 2 1 4 2 1 8 2 4 1 8 4 7 7 6 7 6 6 5 10 10 5 5 11 3 11 3 11 3 10 12 12 12 Ch. 2. Trees and Distance

Graph Theory Theorem: In a connected weighted graph G, Kruskal’s Algorithm constructs a minimum-weight spanning tree. 2.3.3 Proof: 1/3 We show first that the algorithm produces a tree. It never chooses an edge that completes a cycle. If the final graph has more than one component, then there is no edge joining two of them and G is not connected, because such an edge would be accepted. Since G is connected, some such edge exists and we considered it. Thus the final graph is connected and acyclic, which makes it a tree. Ch. 2. Trees and Distance

Theorem 2.3.3 Continue Proof: continue Graph Theory Theorem 2.3.3 Continue Proof: continue Let T be the resulting tree, and let T* be a spannig tree of minimum weight. If T=T*, we are done. If TT*, let e be the first edge chosen for T that is not in T*. Adding e to T* creates one cycle C. Since T has no cycle, C has an edge e’E(T). Consider the spanning tree T*+e-e’. Since T* contains e’ and all the edges of T chosen before e, both e’ and e are available when the algorithm chooses e, and hence w(e)w(e’). Thus T*+e-e’ is a spanning tree with weight at most T* that agrees with T for a longer initial list of edges than T* does. Repeating this argument eventually yields a minimum-weight spanning tree that agrees completely with T. Phrased extremely, we have prove that the minimum spanning tree agreeing with T the longest is T itself. Ch. 2. Trees and Distance

Graph Theory Shortest Paths How can we find the shortest route from one location to another? Ch. 2. Trees and Distance

Graph Theory Dijkstra’s Algorithm2.3.5 Input: A graph (or digraph) with nonnegtive edge weights and a starting vertex u. The weight of edge xy is w(xy); let w(xy)= if xy is not an edge. Idea: Maintain the set S of vertices to which a shortest path from u is known, enlarging S to include all vertices. To do this, maintain a tentative distance t(z) from u to each zS, being the length of the shortest u, v-path yet found. Initialization: Set S={u}; t(u)=0; t(z)=w(uz) for zu Ch. 2. Trees and Distance

Dijkstra’s Algorithm2.3.5 Iteration: Graph Theory Dijkstra’s Algorithm2.3.5 Iteration: Select a vertex v outside S such that t(v)=minzS t(z). Add v to S. Explore edges from v to update tentative distance: for each edge vz with zS, update t(z) to min{t(z), t(v)+w(vz)} The iteration continues until S=V(G) or until t(z)= for every zS. At the end, set d(u, v)=t(v) for all v. Ch. 2. Trees and Distance

Example: Find Shortest paths by using Dijkstra’s Algorithm 2.3.6 Graph Theory Example: Find Shortest paths by using Dijkstra’s Algorithm 2.3.6 t=1 a d a d 5 5 1 1 2 2 4 4 u u e 4 e d=0 4 3 6 c 3 6 b 5 c b 5 t=3 Ch. 2. Trees and Distance

Graph Theory Example: Find Shortest paths by using Dijkstra’s Algorithm continue 2.3.6 u a d e c b 1 5 2 6 4 3 d=0 d=1 t=3 t=6 t=5 d=1 a 4 t=5 c 1 5 2 u e d=0 5 3 6 4 d t=6 d=3 b Ch. 2. Trees and Distance

Graph Theory Example: Find Shortest paths by using Dijkstra’s Algorithm continue 2.3.6 d=5 d=5 c c d=1 d=1 4 6 4 a t=11 a 6 5 e 5 e 1 1 5 d=0 u d=0 u t=8 5 2 2 3 3 4 4 d d t=6 d=3 b d=3 b d=6 Ch. 2. Trees and Distance

Graph Theory Theorem: Given a (di)graph G and a vertex uV(G), Dijkstra’s algorithm compute d(u,z) for every z V(G) 2.3.7 Proof: We prove the stronger statement that at each iteration, For zS, t(z)=d(u, z), and For zS, t(z) is the least length of a u, z-path reaching z directly from S. We use induction on k=|S|. Basis step: k=1. From the initialization, S={u}, d(u, u)=t(u)=0, and the least length of a u, z-path reaching z directly from S is t(z)=w(u,z), which is infinite when uz is not an edge. Ch. 2. Trees and Distance

Theorem 2.3.7 Continue Induction step: Graph Theory Theorem 2.3.7 Continue Induction step: Suppose that when |S|=k, (1) and (2) are true. Let v be a vertex among zS such that t(z) is smallest. The algorithm now choose v; let S’=S{v}. We first argue that d(u, v)=t(v). A shortest u, v-path must exit S before reaching v. The induction hypothesis states that the length of the shortest path going directly to v from S is t(v). The induction hypothesis and choice of v also guarantee that a path visiting any vertex outside S and later reaching v has length at least t(v). Hence d(u, v)=t(v), and (1) holds for S’. Ch. 2. Trees and Distance

Graph Theory Theorem 2.3.7 Continue To prove (2) for S’, let z be a vertex outside S other than v. By the hypothesis, the shortest u, v-path reaching z directly from S has length t(z) ( if there is no such path). When we add v to S, we must also consider paths reaching z from v. Since we have now computed d(u, v)=t(v), the shortest such path has length t(v)+w(vz), and we compare this with the previous value of t(z) to find the shortest path reaching z directly from S’. We have verified that (1) and (2) hold for the new set S’ of size k+1; this completes the induction step. Ch. 2. Trees and Distance

Graph Theory Prim’s Algorithm Input: A graph (or digraph) with nonnegtive edge weights and a starting vertex u. The weight of edge xy is w(xy); let w(xy)= if xy is not an edge. Idea: Maintain a tree T including u at the beginning, enlarging T to include all vertices. To do this, select the cheapest edge from the edges E={(x,v) |x T, vT }. Initialization: Set T={u}. Ch. 2. Trees and Distance

Graph Theory Prim’s Algorithm Iteration: Select a vertex v outside T such that w(x,v)=minx T, vT w(x,v) . Add v to T. The iteration continues until V(T)=V(G). Ch. 2. Trees and Distance

Dijkstra’s Algorithm v.s. Prim’s Algorithm Graph Theory Dijkstra’s Algorithm v.s. Prim’s Algorithm d t=6 d=1 6 a t=5 e c 3 u d=0 b 8 t=3 The end vertex of the cheapest edge The vertex which is the nearest to u Ch. 2. Trees and Distance

Algorithm - Breadth First Search 2.3.8 Graph Theory Algorithm - Breadth First Search 2.3.8 Input: An unweighted graph (or digraph) and a start vertex u. Idea: Maintain a set R of vertices that have been reached but not searched and a set S of vertices that have been searched. The set R is maintained as a First-In First-Out list (queue), so the first vertices found are the first vertices explored. Initialization: R={u}, S=, d(u, u)=0 Iteration: As long as R, we search from the first vertex v of R. The neighbors of v not in SR are added to the back of R and assigned distance d(u, v)+1, and then v is removed from the front of Rand assigned distance d(u, v)+1, and then v is removed from the front of R and placed in S Ch. 2. Trees and Distance

Example of BFS a b d c e f g h i j Graph Theory Example of BFS a b d c e f g h i j Order of BFS: a, b, c, d, e, f, g, h, i, j, … a, c, b, d, f, h, e, g, i, j, … b, a, g, f, e, c, d, … h, i, j, … Ch. 2. Trees and Distance

Breadth-F-S vs. Depth-F-S Graph Theory Breadth-F-S vs. Depth-F-S a a b b d d c c e e f g h i j f g h i j a,b,c,d,e,f,g,h,i,j, … a,b,e,f, …c, h,… Ch. 2. Trees and Distance

Application: Chinese Postman Problem 2.3.9 Graph Theory Application: Chinese Postman Problem 2.3.9 A mail carrier must traverse all edges in a road network, starting and ending at the Post Office. The edges has nonnegative weights representing distance or time. We seek a closed walk of minimum total length that uses all the edges. This is the Chinese Postman Problem, named in honor of the Chinese mathematician Guan Meigu [1962], who proposed it. Ch. 2. Trees and Distance

Application: Chinese Postman Problem continue 2.3.9 Graph Theory Application: Chinese Postman Problem continue 2.3.9 If every vertex is even, then the graph is Eulerian and the answer is the sum of the edge weights. Otherwise, we must repeat edges. Every traversal is an Eulerian circuit of a graph obtained by duplicating edges. Finding the shortest traversal is equivalent to finding the minimum total weight of edges whose duplication will make all vertex degrees even . Ch. 2. Trees and Distance

Application: Chinese Postman Problem continue 2.3.9 Graph Theory Application: Chinese Postman Problem continue 2.3.9 We say “duplication” because we need not use an edge more than twice. If we use an edge three or more times in making all vertices even, then deleting two of those copies will leave all vertices even. There may be many ways to choose the duplicated edges. Ch. 2. Trees and Distance

Application: Chinese Postman Problem continue 2.3.9 Graph Theory Application: Chinese Postman Problem continue 2.3.9 If there are only two odd vertices, then We can use Dijkstra’s Algorithm to find the shortest path between them and solve the problem If there are 2k odd vertices, then Use Dijkstra’s algorithm to find the shortest paths connecting each pair of odd vertices Use these lengths as weights on the edges of K2k Find the minimum total weight of k edges that pair up these 2k vertices. This is a maximum matching problem. Ch. 2. Trees and Distance

Application: Chinese Postman Problem continue 2.3.9 Graph Theory Application: Chinese Postman Problem continue 2.3.9 A vertex: An odd vertex An edge between u and v: The shortest path between u and v in the given graph 20 A matching in a general graph with minimum total weight 10 40 16 15 20 Ch. 2. Trees and Distance

Graph Theory Rooted Tree 2.3.11 A rooted tree is a tree with one vertex r chosen as root. For each vertex v, let P(v) be the unique v, r-path. The parent of v is its neighbor on P(v); Its children are its other neighbors. Its ancestors are the vertices of P(v)-v. Its descendants are the vertices u such that P(u) contains v. The leaves are the vertices with no children. A rooted plane tree or planted tree is a rooted tree with a left-to–right ordering specified for the children of each vertex. Ch. 2. Trees and Distance

Rooted Tree 2.3.11 root v Parent of v, Ancester of v A leaf, Graph Theory Rooted Tree 2.3.11 root Parent of v, Ancester of v v A leaf, A child of v Ch. 2. Trees and Distance

Graph Theory Binary Tree 2.3.12 A binary tree is a rooted plane tree where each vertex has at most two children, and each child of a vertex is designated as its left child or right child. The subtrees rooted at the children of the root are the left subtree and the right subtree of the tree. A k-ary tree allows each vertex up to k children. Ch. 2. Trees and Distance

Graph Theory Huffman’s Algorithm 2.3.13 Input: Weights (frequencies or probabilities) p1,…,pn Output: Prefix-free code (equivalently, a binary tree) Idea: Infrequent items should have longer codes; put infrequent items deeper by combining them into parent nodes. Initial case: When n=2, the optimal length is one, with 0 and 1 being the codes assigned to the two items (the tree has a root and two leaves; n=1 can also be used as the initial case) Ch. 2. Trees and Distance

Huffman’s Algorithm 2.3.13 Recursion: Graph Theory Huffman’s Algorithm 2.3.13 Recursion: Replace the two least likely items p, p’ with a single item q of weight p+p’ when n>2 Treat the smaller set as a problem with n-1 items. After solving it, give children with weights p, p’ to the resulting leaf with weight q. Equivalently, replace the code computed for the combined item with its extensions by 1 and 0, assigned to the items that were replaced. Ch. 2. Trees and Distance

Example of Huffman coding 2.3.14 Graph Theory Example of Huffman coding 2.3.14 Consider eight items with frequencies 5, 1, 1, 7, 8, 2, 3, 6. Algorithm 2.3.13 combines items according to the tree on the left below, working from the bottom up. First the two items of weight 1 combine to from one of weight 2. 2 5 1 7 8 3 6 Ch. 2. Trees and Distance

Graph Theory Huffman coding 2.3.14 Now this and the original item of weight 2 are the least likely and combine to form an item of weight 4. 4 2 5 1 7 8 3 6 Ch. 2. Trees and Distance

Graph Theory Huffman coding 2.3.14 4 2 5 1 7 8 3 6 2 5 1 7 8 3 6 7 7 11 4 4 2 2 5 1 1 7 8 2 3 6 5 1 1 7 8 2 3 6 Ch. 2. Trees and Distance

Graph Theory Huffman coding 2.3.14 33 19 14 7 11 4 2 5 1 8 3 6 6:101 8:11 5:100 7:01 3:001 2:0001 1:00001 1:00000 Ch. 2. Trees and Distance

Graph Theory Theorem 2.3.15 Given a probability distribution {pi} on n items, Huffman’s Algorithm produces the prefix-free code with minimum excepted length Ch. 2. Trees and Distance