a
Discrete Structures (CSC 102) Lecture 32 Trees Previous Lecture Matrices and Graphs Matrices and Directed Graphs Matrices and undirected Graphs Matrices and Connected Components Trees Characterizing Trees Rooted Trees Today’s Lecture Rooted Trees Binary Trees Spanning Trees and Shortest Paths Minimum Spanning Trees Kruskal’s Algorithm Prim’s Algorithm Finding Minimum Spanning Trees Rooted Trees Rooted Trees These terms are illustrated in the following Figure of Rooted Tree Rooted Trees Example Binary Trees Representation of Algebraic Expressions a/b ((a − b)·c) + (d/e) a/(c+d) Spanning Trees and Shortest Paths An East Coast airline company wants to expand service to the Midwest and has received permission from the Federal Aviation Authority to fly any of the routes shown in Figure Minimum Spanning Trees Kruskal’s Algorithm In Kruskal’s algorithm, the edges of a connected weighted graph are examined one by Courtesy of Joseph Kruskal (born 1928) one in order of increasing weight At each stage the edge being examined is added to what will become the minimum spanning tree, provided that this addition does not create a circuit After n − edges have been added (where n is the number of vertices of the graph), these edges, together with the vertices of the graph, form a minimum spanning tree for the graph Kruskal’s Algorithm Kruskal’s Algorithm Describe the action of Kruskal’s algorithm on the graph shown in Figure, where n = Kruskal’s Algorithm Kruskal’s Algorithm Prim’s Algorithm Prim’s algorithm works differently from Kruskal’s It builds a minimum spanning tree T Courtesy of AlcatelLucent Technologies Robert Prim (born 1921) by expanding outward in connected links from some vertex One edge and one vertex are added at each stage The edge added is the one of least weight that connects the vertices already in T with those not in T , and the vertex is the endpoint of this edge that is not already in T Prim’s Algorithm Prim’s Algorithm Describe the action of Prim’s algorithm for the graph in Figure using the Minneapolis vertex as a starting point Prim’s Algorithm Finding Minimum Spanning Trees Example Find all minimum spanning trees for the following graph Use Kruskal’s algorithm and Prim’s algorithm starting at vertex a Indicate the order in which edges are added to form each tree Solution When Kruskal’s algorithm is applied, edges are added in one of the following two orders: Finding Minimum Spanning Trees When Prim’s algorithm is applied starting at a, edges are added in one of the following two orders: Thus, as shown below, there are two distinct minimum spanning trees for this graph Lecture Summary Rooted Trees Binary Trees Spanning Trees and Shortest Paths Minimum Spanning Trees Kruskal’s Algorithm Prim’s Algorithm Finding Minimum Spanning Trees Syllabus (Topics to be covered in this course) • • • • • • • • • • Logic Elementary Number Theory and Methods of Proof Set Theory Relations Sequences and Summation Mathematical Induction Counting Relations and Equivalence Relations Graphs Trees Reference Books • Discrete Mathematics and its Applications (with Combinatorics and Graph Theory) 6th Edition, The McGraw-Hill Companies, 2007, Kenneth H Rosen • Discrete Mathematics with Applications 2nd Edition, Thomson Learning, 1995, Susanna S Epp • Discrete Mathematics for Computer Scientists 2nd Edition, Addison-Wesley, 1999, John Truss