Graphs III (Trees, MSTs) (Chp 11.5, 11.6)

Slides:



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

Chapter 5: Tree Constructions
Trees Chapter 11.
Greedy Algorithms Greed is good. (Some of the time)
10.4 Spanning Trees. Def Def: Let G be a simple graph. A spanning tree of G is a subgraph of G that is a tree containing every vertex of G See handout.
22C:19 Discrete Structures Trees Spring 2014 Sukumar Ghosh.
1 Lecture 5 (part 2) Graphs II Euler and Hamiltonian Path / Circuit Reading: Epp Chp 11.2, 11.3.
Minimum Spanning Tree CSE 331 Section 2 James Daly.
3.3 Spanning Trees Tucker, Applied Combinatorics, Section 3.3, by Patti Bodkin and Tamsen Hunter.
Minimum Spanning Trees
CMPS 2433 Discrete Structures Chapter 5 - Trees R. HALVERSON – MIDWESTERN STATE UNIVERSITY.
Discrete Mathematics Transparency No. 8-1 Chapter 8 Trees.
1 Discrete Structures & Algorithms Graphs and Trees: II EECE 320.
Chapter 23 Minimum Spanning Trees
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 13 Minumum spanning trees Motivation Properties of minimum spanning trees Kruskal’s.
Graph Algorithms: Minimum Spanning Tree We are given a weighted, undirected graph G = (V, E), with weight function w:
1 Minimum Spanning Trees Gallagher-Humblet-Spira (GHS) Algorithm.
Graphs and Trees This handout: Trees Minimum Spanning Tree Problem.
Greedy Algorithms Reading Material: Chapter 8 (Except Section 8.5)
Rooted Trees. More definitions parent of d child of c sibling of d ancestor of d descendants of g leaf internal vertex subtree root.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 10 Instructor: Paul Beame.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
Design and Analysis of Algorithms Minimum Spanning trees
Module #1 - Logic 1 Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank and Modified By Mingwu Chen Trees.
Discrete Mathematics Lecture 9 Alexander Bukharovich New York University.
Minimum Spanning Trees. Subgraph A graph G is a subgraph of graph H if –The vertices of G are a subset of the vertices of H, and –The edges of G are a.
May 5, 2015Applied Discrete Mathematics Week 13: Boolean Algebra 1 Dijkstra’s Algorithm procedure Dijkstra(G: weighted connected simple graph with vertices.
Minimal Spanning Trees What is a minimal spanning tree (MST) and how to find one.
Theory of Computing Lecture 10 MAS 714 Hartmut Klauck.
MST Many of the slides are from Prof. Plaisted’s resources at University of North Carolina at Chapel Hill.
BCT 2083 DISCRETE STRUCTURE AND APPLICATIONS
May 1, 2002Applied Discrete Mathematics Week 13: Graphs and Trees 1News CSEMS Scholarships for CS and Math students (US citizens only) $3,125 per year.
Foundations of Discrete Mathematics
7.1 and 7.2: Spanning Trees. A network is a graph that is connected –The network must be a sub-graph of the original graph (its edges must come from the.
Module 5 – Networks and Decision Mathematics Chapter 23 – Undirected Graphs.
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.
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.
Fundamental Data Structures and Algorithms (Spring ’05) Recitation Notes: Graphs Slides prepared by Uri Dekel, Based on recitation.
Introduction to Graph Theory
Chap 8 Trees Def 1: A tree is a connected,undirected, graph with no simple circuits. Ex1. Theorem1: An undirected graph is a tree if and only if there.
Agenda Review: –Planar Graphs Lecture Content:  Concepts of Trees  Spanning Trees  Binary Trees Exercise.
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.
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.
CHAPTER 11 TREES INTRODUCTION TO TREES ► A tree is a connected undirected graph with no simple circuit. ► An undirected graph is a tree if and only.
Discrete Mathematics Chapter 10 Trees.
Chapter 11. Chapter Summary  Introduction to trees (11.1)  Application of trees (11.2)  Tree traversal (11.3)  Spanning trees (11.4)
1 Lecture 5 (part 2) Graphs II (a) Circuits; (b) Representation Reading: Epp Chp 11.2, 11.3
Chapter 11. Chapter Summary Introduction to Trees Applications of Trees (not currently included in overheads) Tree Traversal Spanning Trees Minimum Spanning.
Discrete Structures Li Tak Sing( 李德成 ) Lectures
Trees.
Applied Discrete Mathematics Week 15: Trees
Chapter 5 : Trees.
Discrete Mathematicsq
12. Graphs and Trees 2 Summary
Introduction to Trees Section 11.1.
COMP 6/4030 ALGORITHMS Prim’s Theorem 10/26/2000.
Advanced Algorithms Analysis and Design
Minimal Spanning Trees
Taibah University College of Computer Science & Engineering Course Title: Discrete Mathematics Code: CS 103 Chapter 10 Trees Slides are adopted from “Discrete.
CSE 373 Data Structures and Algorithms
Data Structures – LECTURE 13 Minumum spanning trees
CS 583 Analysis of Algorithms
Minimum Spanning Tree Algorithms
COMPS263F Unit 2 Discrete Structures Li Tak Sing( 李德成 ) Room A
Trees 11.1 Introduction to Trees Dr. Halimah Alshehri.
And the Final Subject is…
Presentation transcript:

Graphs III (Trees, MSTs) (Chp 11.5, 11.6) Lecture 12 Graphs III (Trees, MSTs) (Chp 11.5, 11.6)

Outline Trees 2. Rooted Trees 3. Spanning Trees 1.1 Definition of a tree. 1.2 Examples of trees. 1.3 Theorem #1: Tree Characterization 2. Rooted Trees 2.1 Definitions 2.2 Definition: n-ary trees and binary trees. 2.3 Definition: Full n-ary trees 2.4 Theorem #2: Full Tree 2.5 Theorem #3: Leaves-Height 2.6 Examples 3. Spanning Trees 3.1 Motivation 3.2 Definition 3.3 Theorem #4: Spanning Tree 3.4 Minimum Spanning Tree (MST) 3.5 Kruskal’s Algorithm 3.6 Prim’s Algorithm

1. Trees 1.1 Definition: Let G=(V,E). G is a tree IFF (a) G is connected; and (b) G does not have any circuits (acyclic). Comment: The textbook distinguishes between trivial and non-trivial circuits. They define a trivial circuit as a circuit of length 0. As far as we are concerned, unless otherwise stated, when we say ‘circuit’ we mean ‘NON-TRIVIAL circuit’. i.e. the default meaning of ‘circuit’ is a non-trivial circuit.

1. Trees 1.1 Definition: Let G=(V,E). G is a tree IFF (a) G is connected; and (b) G does not have any circuits (acyclic). 1.2.1 Example of a tree

1. Trees 1.2.2 Examples of trees in real life usage Family Tree Tournaments Directory Tree Syntax Tree Execution Tree Decision Tree Search Tree B-Tree (Databases)

1. Trees 1.3 Theorem (Tree Characterization Theorem): Let G=(V,E). G is a tree IFF G is connected and |E|=|V|-1 Proof Strategy: (®) Assume G is a tree Prove that G is connected (Trivial) Prove that |E| = |V| - 1 (Prove by induction on |V|) Lemma 1: A tree with more than 1 vertex has at least 1 vertex of degree 1 (¬) Assume G is connected and |E| = |V| -1 (Prove that G is a tree. How? Show that G fits the definition of a tree.) Prove that G has no circuits (Prove by contradiction) Lemma 2: Deletion of edge from a circuit of a connected graph does not violate connectedness.

1.3 Tree Characterization Theorem (Proof: ®) Assume G is a tree Prove that G is connected Prove that |E| = |V| - 1 Proof of (a): Trivial Since G is a tree, and by definition, a tree is connected.

1.3 Tree Characterization Theorem (Proof: ®) Assume G is a tree Prove that G is connected Prove that |E| = |V| - 1 Before we prove (b), we need to prove a lemma. Lemma 1: A tree with more than one vertex has at least one vertex of degree 1.

1.3 Tree Characterization Theorem Lemma 1: A tree with more than one vertex has at least one ($) vertex of degree 1. Proof: Let T = (V,E) be a tree, such that |V| > 1. Prove $vÎV, deg(v)=1 . ($) Constructive Proof: Find that vertex! We will give an algorithm to find the vertex: 1. Pick any uÎV. Let e be some edge incident on u, say e={u,v}. 2. while (deg(u) > 1) do { 2.1 Choose another edge e’ ¹ e; say e’={u,v’} and v ¹ v’. 2.2 Let e := e’, u := v’. /* Move to another new vertex*/ } 3. Output u.

1.3 Tree Characterization Theorem Lemma 1: A tree with more than one vertex has at least one ($) vertex of degree 1. 1. Pick any uÎV. Let e be some edge incident on u, say e={u,v}. 2. while (deg(u) > 1) do { 2.1 Choose another edge e’ ¹ e; say e’={u,v’} and v ¹ v’. 2.2 Let e := e’, u := v’. /* Move to another new vertex*/ } 3. Output u. e e’ v u v’

1.3 Tree Characterization Theorem Lemma 1: A tree with more than one vertex has at least one ($) vertex of degree 1. 1. Pick any uÎV. Let e be some edge incident on u, say e={u,v}. 2. while (deg(u) > 1) do { 2.1 Choose another edge e’ ¹ e; say e’={u,v’} and v ¹ v’. 2.2 Let e := e’, u := v’. /* Move to another new vertex*/ } 3. Output u. e e’ v u v’

1.3 Tree Characterization Theorem Lemma 1: A tree with more than one vertex has at least one ($) vertex of degree 1. 1. Pick any uÎV. Let e be some edge incident on u, say e={u,v}. 2. while (deg(u) > 1) do { 2.1 Choose another edge e’ ¹ e; say e’={u,v’} and v ¹ v’. 2.2 Let e := e’, u := v’. /* Move to another new vertex*/ } 3. Output u. e v u

1.3 Tree Characterization Theorem Lemma 1: A tree with more than one vertex has at least one ($) vertex of degree 1. 1. Pick any uÎV. Let e be some edge incident on u, say e={u,v}. 2. while (deg(u) > 1) do { 2.1 Choose another edge e’ ¹ e; say e’={u,v’} and v ¹ v’. 2.2 Let e := e’, u := v’. /* Move to another new vertex*/ } 3. Output u. Claim I: Algorithm will always terminate. The loop will not carry on infinitely because (1) the tree does not contain any cycles; (2) The algorithm always chooses a new edge; (3) the set of vertices in the tree is finite.

1.3 Tree Characterization Theorem Lemma 1: A tree with more than one vertex has at least one ($) vertex of degree 1. 1. Pick any uÎV. Let e be some edge incident on u, say e={u,v}. 2. while (deg(u) > 1) do { 2.1 Choose another edge e’ ¹ e; say e’={u,v’} and v ¹ v’. 2.2 Let e := e’, u := v’. /* Move to another new vertex*/ } 3. Output u. Claim II: If the algo terminates, then it will find a degree 1 vertex. Why? The exit condition of the loop is when deg(u) £ 1. Since T is connected, deg(u) ³ 1. Therefore deg(u) = 1. Lemma Proven: Since we can always find that vertex of degree 1.

1.3 Tree Characterization Theorem (Proof: ®) Assume G is a tree Prove that G is connected Prove that |E| = |V| - 1 Proof of (b): by induction on |V|. Base Case: |V| = 1 Inductive Case: |V| = k ® |V| = k+1

1.3 Tree Characterization Theorem (Proof: ®) Assume G is a tree Prove that G is connected Prove that |E| = |V| - 1 Base Case: |V| = 1 G is a tree of 1 vertex. G has no edges. Therefore |E| = 0 = |V| - 1 Base case is true.

1.3 Tree Characterization Theorem (Proof: ®) Assume G is a tree Prove that G is connected Prove that |E| = |V| - 1 Inductive Case: |V| = k ® |V| = k+1 G G’ = (V’,E’) Assume true for all graphs with k vertices. Let G = (V,E) be a tree with |V| = k+1 vertices. Then (by lemma 1) there is a vertex v of degree 1. Remove v with its edge from G to form a new graph G’ = (V’,E’). where V’ = V – {v}, E’ = { {x,y}ÎE | x¹v and y¹v } v G’ is connected since all walks involving v must end with v. And all walks NOT involving v will not use the edge connected to v.

1.3 Tree Characterization Theorem (Proof: ®) Assume G is a tree Prove that G is connected Prove that |E| = |V| - 1 Inductive Case: |V| = k ® |V| = k+1 Assume true for all graphs with k vertices. Let G = (V,E) be a tree with |V| = k+1 vertices. Then (by lemma 1) there is a vertex v of degree 1. Remove v with its edge from G to form a new graph G’ = (V’,E’). where V’ = V – {v}, E’ = { {x,y}ÎE | x¹v and y¹v } G’ = (V’,E’) v G G’ is circuit free. Why? Because G is circuit free and removing an edge cannot create a circuit.

1.3 Tree Characterization Theorem (Proof: ®) Assume G is a tree Prove that G is connected Prove that |E| = |V| - 1 Inductive Case: |V| = k ® |V| = k+1 Assume true for all graphs with k vertices. Let G = (V,E) be a tree with |V| = k+1 vertices. Then (by lemma 1) there is a vertex v of degree 1. Remove v with its edge from G to form a new graph G’ = (V’,E’). where V’ = V – {v}, E’ = { {x,y}ÎE | x¹v and y¹v } G’ = (V’,E’) v G G’ is a tree. |V’| = k. Inductive Hypothesis: |E’| = |V’| - 1 Now add back v with its edge to form back G=(V,E). Now… |E| = |E’| + 1 = |V’| - 1 + 1 = |V’| = |V| - 1 (Proven)

1.3 Tree Characterization Theorem 1.3 Theorem (Tree Characterization Theorem): Let G=(V,E). G is a tree IFF G is connected and |E|=|V|-1 Proof Strategy: (®) Assume G is a tree Prove that G is connected (Trivial) Prove that |E| = |V| - 1 (Prove by induction on |V|) Lemma 1: A tree with more than 1 vertex has at least 1 vertex of degree 1 (¬) Assume G is connected and |E| = |V| -1 (Prove that G is a tree. How? Show that G fits the definition of a tree.) Prove that G has no circuits (Prove by contradiction) Lemma 2: Deletion of edge from a circuit of a connected graph does not violate connectedness.

1.3 Tree Characterization Theorem (Proof: ¬) Assume G is connected and |E| = |V| - 1 Prove that G is a tree… (by definition of a tree) G is connected (trivial) G does not have any circuits. Proof of (a): Trivial, since it’s in the assumption. Before we prove (b), we need to prove another lemma. Lemma 2: Let G=(V,E) be a connected graph. Let C be a circuit in G. If an edge in C is removed from G to form G’, then G’ is still connected.

1.3 Tree Characterization Theorem Lemma 2: Let G=(V,E) be a connected graph. Let C be a circuit in G. If an edge in C is removed from G to form G’, then G’ is still connected. Proof: Let C = v0 e1 v1 e2 v2 e3 … ei-1 vi-1 ei vi ei+1 … en v0 be the circuit in G. v0 v1 v2 vi-1 vi ei G v0 v1 v2 vi-1 vi G’ Walk b/w any 2 vertices? Let ei be the edge that is deleted from the circuit creating the new graph G’=(V,E’). Need to show that G’ is connected. (Definition of connected: "x,y Î V, there is a walk from x to y in G’.)

1.3 Tree Characterization Theorem Lemma 2: Let G=(V,E) be a connected graph. Let C be a circuit in G. If an edge in C is removed from G to form G’, then G’ is still connected. Proof: Let C = v0 e1 v1 e2 v2 e3 … ei-1 vi-1 ei vi ei+1 … en v0 be the circuit in G. v0 v1 v2 vi-1 vi ei G v0 v1 v2 vi-1 vi G’ Walk b/w any 2 vertices? Pick any 2 vertices x Î V and y Î V. Since G is connected, then there is a walk W from x to y in G. Either (1) ei is in the walk W in G or (2) ei is NOT in the walk W in G.

1.3 Tree Characterization Theorem Lemma 2: Let G=(V,E) be a connected graph. Let C be a circuit in G. If an edge in C is removed from G to form G’, then G’ is still connected. Proof: Let C = v0 e1 v1 e2 v2 … ei-1 vi-1 ei vi ei+1 … en v0 be the circuit in G. Case (1): ei is in the walk W from x to y in G. Let W be… W = x … vi-1 ei vi … y We construct another walk W’ = x … vi-1 ei-1 … v2 e2 v1 e1 v0 en … ei+1 vi … y W’ is a walk from x to y without going through ei. W’ is a walk from x to y in G’ (Since G and G’ differ only on the edge ei). So there is a walk from x to y in G’. Case (1) Proven.

1.3 Tree Characterization Theorem Lemma 2: Let G=(V,E) be a connected graph. Let C be a circuit in G. If an edge in C is removed from G to form G’, then G’ is still connected. Proof: Let C = v0 e1 v1 e2 v2 … ei-1 vi-1 ei vi ei+1 … en v0 be the circuit in G. Case (2): ei is NOT in the walk W from x to y in G. Since W does not involve ei, then W is also a walk from x to y in G’ (G and G’ differ only on the edge ei). So there is a walk from x to y in G’. Case (2) Proven

1.3 Tree Characterization Theorem Lemma 2: Let G=(V,E) be a connected graph. Let C be a circuit in G. If an edge in C is removed from G to form G’, then G’ is still connected. Proof: Let C = v0 e1 v1 e2 v2 … vi-1 ei vi … en v0 be the circuit in G. Let ei be the edge that is deleted from the circuit creating the new graph G’=(V,E’). Need to show that G’ is connected. (Definition of connected: "x,y Î V, there is a walk from x to y in G’.) Pick any 2 vertices x Î V and y Î V. Since G is connected, then there is a walk W from x to y in G. Either (1) ei is in the walk W in G or (2) ei is not in the walk W in G. From previous 2 slides (considering each case), there is a walk from x to y in G’. Therefore G’ is connected.

1.3 Tree Characterization Theorem (Proof: ¬) Assume G is connected and |E| = |V| - 1 Prove that G is a tree… (by definition of a tree) (b) …G does not have any circuits. Proof of (b): (by contradiction) Assume G has circuits. Let v0 e0 v1 e1 … vn en v0 be a circuit. Delete any edge from the circuit to form G’ = (V,E’), |E’| = |E| - 1. By lemma 2, G’ is still connected. If G’ still has another circuit, then delete an edge from that circuit to form G’’ = (V,E’’), |E’’| = |E’| - 1. Again G’’ is still connected. Keep repeating this process until we have a graph G* without any circuits, where G* = (V,E*), E* = |E| - n (n ³ 1). G* is still connected. G* is a tree. Therefore |E*| = |V| - 1 (Just proven the ® direction). |E| - n = |V| - 1 (n ³ 1) |E| = |V| - 1 + n (n ³ 1) (Contradiction)

1.3 Tree Characterization Theorem Theorem (Tree Characterization Theorem): Let G=(V,E). G is a tree IFF G is connected and |E| = |V| - 1 Proof Strategy: (®) Assume G is a tree Prove that G is connected (Trivial) Prove that |E| = |V| - 1 (Prove by induction on |V|) Lemma 1: A tree with more than 1 vertex has at least 1 vertex of degree 1 (¬) Assume G is connected and |E| = |V| -1 (Prove that G is a tree. How? Show that G fits the definition of a tree. G is connected (Trivial) G has no circuits (Prove by contradiction) Lemma 2: Deletion of edge from a circuit of a connected graph does not violate connectedness.

Outline Trees 2. Rooted Trees 3. Spanning Trees 1.1 Definition of a tree. 1.2 Examples of trees. 1.3 Theorem #1: Tree Characterization 2. Rooted Trees 2.1 Definitions 2.2 Definition: n-ary trees and binary trees. 2.3 Definition: Full n-ary trees 2.4 Theorem #2: Full Tree 2.5 Theorem #3: Leaves-Height 2.6 Examples 3. Spanning Trees 3.1 Motivation 3.2 Definition 3.3 Theorem #4: Spanning Tree 3.4 Minimum Spanning Tree (MST) 3.5 Kruskal’s Algorithm 3.6 Prim’s Algorithm

2.1 Rooted Trees (Definition) A rooted tree is a tree in which one vertex is distinguished from the others and is called the root. The level of a vertex v is the path length from the root to v. The height of the tree is the maximum level to any vertex of the tree. Level 0 root Level 1 Level 2 Level 3 Note: Definition of ‘Level’ and ‘Height’ different from cs1102 Level 4

2.1 Rooted Trees (Definition) Given any vertex v in a rooted tree: The children of v are the vertices adjacent to v, 1 level further away from the root. The parent of v is the vertex adjacent to v, 1 level nearer to the root. The siblings of v are the vertices which have the same parent as v. Parent of v v Siblings of v Children of v

2.1 Rooted Trees (Definition) Given any vertex v in a rooted tree: The ancestor of v are the vertices which lie in the path from v to the root. If u is the ancestor of v, then v is the descendant of u. Ancestors of v v Descendants of v

2.1 Rooted Trees (Definition) Given any rooted tree: The internal vertices of the tree are the vertices which have at least 1 child. The external vertices of the tree are the vertices which have no children. External vertices are also known as the leaves of the tree, or terminal vertices. The rest are Internal Vertices External Vertices (Leaves)

2.2 m-ary trees and binary trees (Defn) A m-ary tree is a rooted tree in which every vertex has at most m children. Example of a 3-ary Tree Example of a 4-ary Tree

2.2 m-ary trees and binary trees (Defn) A m-ary tree is a rooted tree in which every vertex has at most m children. A binary tree is a m-ary tree with n=2. Each child of the binary tree is designated either the left child or the right child. Given a vertex v of a binary tree, the left subtree of v (right subtree of v) is the binary tree whose root is the left child of v (right child of v). v Example of a Binary Tree Left child of v Left subtree of v Right child of v Right subtree of v

2.3 Full m-ary Trees (Definition) A m-ary tree is FULL iff every vertex has either 0 or m children. (OR every internal vertex has m children). Examples of full binary trees. Note: Definition of ‘Full’ different from cs1102 Full Tree? Yes No Yes No No Yes Yes

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + Q: How many vertices HAVE a parent? Observe for a 2-ary tree with 7 internal vertices 2. Each internal vertex has 2 children

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + Q: How many vertices HAVE a parent? Observe for a 2-ary tree with 7 internal vertices 2. Each internal vertex has 2 children Another way of looking at it is that for each internal vertex, there are 2 vertices which have a parent.

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + Q: How many vertices HAVE a parent? Observe for a 2-ary tree with 7 internal vertices 2. Each internal vertex has 2 children Another way of looking at it is that for each internal vertex, there are 2 vertices which have a parent.

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + Q: How many vertices HAVE a parent? Observe for a 2-ary tree with 7 internal vertices 2. Each internal vertex has 2 children Another way of looking at it is that for each internal vertex, there are 2 vertices which have a parent.

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + Q: How many vertices HAVE a parent? Observe for a 2-ary tree with 7 internal vertices 2. Each internal vertex has 2 children Another way of looking at it is that for each internal vertex, there are 2 vertices which have a parent.

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + Q: How many vertices HAVE a parent? Observe for a 2-ary tree with 7 internal vertices 2. Each internal vertex has 2 children Another way of looking at it is that for each internal vertex, there are 2 vertices which have a parent.

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + Q: How many vertices HAVE a parent? Observe for a 2-ary tree with 7 internal vertices 2. Each internal vertex has 2 children Another way of looking at it is that for each internal vertex, there are 2 vertices which have a parent.

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + Q: How many vertices HAVE a parent? Observe for a 2-ary tree with 7 internal vertices 2. Each internal vertex has 2 children Another way of looking at it is that for each internal vertex, there are 2 vertices which have a parent.

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + (mk) Q: How many vertices HAVE a parent? A: 2k vertices for a binary tree. mk vertices for a m-ary tree. (Each internal vertex is the parent of m vertices)

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full m-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + (mk) (1) Q: How many vertices DO NOT HAVE a parent? A: 1. The root does not have a parent

2.4 Full Tree Theorem Full Tree theorem: A full m-ary tree with k internal vertices has mk + 1 vertices. Proof: Let T=(V,E) be a full n-ary tree, with k internal vertices. Total number of vertices in T Number of vertices that HAVE a parent Number of vertices that DO NOT HAVE a parent = + (mk) (1) = mk + 1

2.5 Leaves-Height Theorem. Leaves-Height Theorem for Binary Trees: Let T=(V,E) be a binary tree that has t leaves, and height h. Then t £ 2h. Proof: (by using induction on the height of the tree) Base Case: h = 0 T has 1 vertex, which is a leaf. t = 1 £ 1 = 20 = 2h Base case is true.

2.5 Leaves-Height Theorem. Leaves-Height Theorem for Binary Trees: Let T=(V,E) be a binary tree that has t leaves, and height h. Then t £ 2h. Proof: (by using induction on the height of the tree) Inductive Case: Assume that t £ 2h for h = 0,1,2,…,k (STRONG!) Let T be any binary tree of height k+1. (Need to show t £ 2k+1) With respect to the root vertex, let the left and right subtrees be TL and TR respectively. Let the number of leaves in TL and TR be tL and tR respectively. (t = tL+ tR) Height of TL and TR are both < k+1. k 1 TL TR By inductive hypothesis, tL £ 2(TL Height) £ 2k and tR £ 2(TR Height) £ 2k. t = tL+ tR £ 2k + 2k = 2k+1.

2.5 Leaves-Height Theorem. Corollary to the Leaves-Height Theorem: Let T=(V,E) be a binary tree that has t leaves, and height h. Then log2 t £ h. Proof: Using leaves-height theorem, we have t £ 2h. Taking logarithms on both sides will yield log2t £ log22h log2t £ h

2.5 Leaves-Height Theorem. IN GENERAL: Leaves-Height Theorem for m-ary Trees: Let T=(V,E) be a m-ary tree that has t leaves, and height h. Then t £ mh Corollary to the Leaves-Height Theorem: Let T=(V,E) be a m-ary tree that has t leaves, and height h. Then logmt £ h Proof left as exercise (follows very closely to the proofs shown before)

2.6 Examples Q: Is there a binary tree that has height 5 and 38 external vertices? A: No, since 38 > 25 which violates the leaves-height theorem.

2.6 Examples Q: Is there a full binary tree with 10 internal vertices and 13 external vertices? A: No. Using the full-tree theorem, a binary tree with 10 internal vertices has 21 vertices in total. Therefore there should be 21-10 = 11 external vertices.

Outline Trees 2. Rooted Trees 3. Spanning Trees 1.1 Definition of a tree. 1.2 Examples of trees. 1.3 Theorem #1: Tree Characterization 2. Rooted Trees 2.1 Definitions 2.2 Definition: n-ary trees and binary trees. 2.3 Definition: Full n-ary trees 2.4 Theorem #2: Full Tree 2.5 Theorem #3: Leaves-Height 2.6 Examples 3. Spanning Trees 3.1 Motivation 3.2 Definition 3.3 Theorem #4: Spanning Tree 3.4 Minimum Spanning Tree (MST) 3.5 Kruskal’s Algorithm 3.6 Prim’s Algorithm

3.1 Spanning Trees. Layer 2 routing of packets through network switches. Multiple connections from one switch to the rest of network to increase fault tolerance. When all links are operational, redundacy in connection occurs. Network forms a spanning tree so that packets will not be redundantly routed. R Network will elect a root. Root will broadcast packets to all other switches. Each switch will select the ‘best’ link to use.

3.1 Spanning Trees. Layer 2 routing of packets through network switches. Multiple connections from one switch to the rest of network to increase fault tolerance. When all links are operational, redundacy in connection occurs. Network forms a spanning tree so that packets will not be redundantly routed. R Network will elect a root. Root will broadcast packets to all other switches. Each switch will select the ‘best’ link to use.

3.1 Spanning Trees. Layer 2 routing of packets through network switches. Multiple connections from one switch to the rest of network to increase fault tolerance. When all links are operational, redundacy in connection occurs. Network forms a spanning tree so that packets will not be redundantly routed. R Network will elect a root. Root will broadcast packets to all other switches. Each switch will select the ‘best’ link to use.

3.1 Spanning Trees. Layer 2 routing of packets through network switches. Multiple connections from one switch to the rest of network to increase fault tolerance. When all links are operational, redundacy in connection occurs. Network forms a spanning tree so that packets will not be redundantly routed. R Network will elect a root. Root will broadcast packets to all other switches. Each switch will select the ‘best’ link to use. When a link goes down, the network reconfigures again.

3.2 Spanning Trees (Definition). Definition: Let G=(V,E). A spanning tree for G is a subgraph T=(V,E’) of G, such that T is a tree and T contains every vertex of G. R

3.3 Spanning Tree theorem. Spanning Tree theorem: A graph is connected IFF it has a spanning tree. Proof: (®) Assume that G=(V,E) is connected. We will show that G has a spanning tree. Step 1: Let H = G Step 2: while (H has a circuit C) { Step 2a: Remove an edge from C to form new graph H’. Step 2b: Let H = H’ } Step 3: Output H. 1. Algorithm will terminate because G is finite and there is a finite number of edges to delete

3.3 Spanning Tree theorem. Spanning Tree theorem: A graph is connected IFF it has a spanning tree. Proof: (®) Assume that G=(V,E) is connected. We will show that G has a spanning tree. Step 1: Let H = G Step 2: while (H has a circuit C) { Step 2a: Remove an edge from C to form new graph H’. Step 2b: Let H = H’ } Step 3: Output H. 2. When algorithm terminates, H will be a spanning tree. a. H is connected. Step 2a will still create a connected graph (lemma 2: “Deletion of edge from a circuit of a connected graph does not violate connectedness”)

3.3 Spanning Tree theorem. Spanning Tree theorem: A graph is connected IFF it has a spanning tree. Proof: (®) Assume that G=(V,E) is connected. We will show that G has a spanning tree. Step 1: Let H = G Step 2: while (H has a circuit C) { Step 2a: Remove an edge from C to form new graph H’. Step 2b: Let H = H’ } Step 3: Output H. 2. When algorithm terminates, H will be a spanning tree. b. H has no circuits. Condition for termination in Step 2 is when there are no more circuits in H.

3.3 Spanning Tree theorem. Spanning Tree theorem: A graph is connected IFF it has a spanning tree. Proof: (®) Assume that G=(V,E) is connected. We will show that G has a spanning tree. Step 1: Let H = G Step 2: while (H has a circuit C) { Step 2a: Remove an edge from C to form new graph H’. Step 2b: Let H = H’ } Step 3: Output H. 2. When algorithm terminates, H will be a spanning tree. c. H contains every vertex in V. True since we only removed edges from H and not vertices.

3.3 Spanning Tree theorem. Spanning Tree theorem: A graph is connected IFF it has a spanning tree. Proof: (®) Assume that G=(V,E) is connected. We will show that G has a spanning tree. Step 1: Let H = G Step 2: while (H has a circuit C) { Step 2a: Remove an edge from C to form new graph H’. Step 2b: Let H = H’ } Step 3: Output H. Therefore the algorithm will terminate, and will give a spanning tree. Therefore, If G is connected, then G has a spanning tree.

3.3 Spanning Tree theorem. Spanning Tree theorem: A graph is connected IFF it has a spanning tree. Proof: (¬) Assume that G=(V,E) has a spanning tree. Show that G is connected. Let T be a spanning tree of G. Because T is a SPANNING tree, therefore (by defn) T contains every vertex in G. There let T=(V,E’) be the spanning tree, E’ Í E. T, being a tree (by defn of a tree) is connected. (Defn: T is connected iff "x,y ÎV, $ walk from x to y). Prove that G is connected: Let x and y be 2 vertices in G. x and y will also be in T. Let the walk from x to y in T be W: x e1 v1 e2 v2 … en y Now, x, v1, v2, … y are all in V, and e1, e2, …, en are all in E’ Í E. Therefore W is also a walk from x to y in G. Therefore G is connected.

3.4 Minimum Spanning Tree Let the following graph depict the scenario where the vertices are cities and the weighted edges are distances (km) between the cities. A G H B C D I J K F L E M 5 2 3 4 6 8 10 12 Let’s say that the country wants to connect up the cities by building roads between them. The longer the road, the more money it has to spend. How do we connect up the cities and spend the LEAST AMOUNT OF MONEY? Ans: Find the MINIMUM spanning tree.

G = (V,E), E Í Z x { {x,y} | x,y Î V} 3.4 Minimum Spanning Tree. Definition: A weighted graph is a graph where each edge has a number associated with it. G = (V,E), E Í Z x { {x,y} | x,y Î V} The total weight of the graph is the sum of all the weights of the edges in the graph. A minimum spanning tree (MST) for a weighted graph is a spanning tree that has the least possible total weight compared to all other spanning trees for the graph

3.4 Minimum Spanning Tree. How to find the minimum spanning tree? Kruskal’s Algorithm Prim’s Algorithm

KRUSKAL’S ALGORITHM

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. Idea: To add edges of the smallest weights which do not cause a circuit.

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. A G H B C D I J K F L E M 5 2 3 4 6 8 10 12

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=0 5 L 2 I 3 3 |V|-1 = 12 4 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=1 5 L 2 I 3 3 |V|-1 = 12 4 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=2 5 L 2 I 3 3 |V|-1 = 12 4 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=3 5 L 2 I 3 3 |V|-1 = 12 4 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=4 5 L 2 I 3 3 |V|-1 = 12 4 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=7 5 L 2 I 3 3 |V|-1 = 12 4 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=8 5 L 2 I 3 3 |V|-1 = 12 4 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=9 5 L 2 I 3 3 |V|-1 = 12 4 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=10 5 L 2 I 3 3 |V|-1 = 12 4 2 12 5 6 CIRCUIT!!! H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=10 5 L 2 I 3 3 |V|-1 = 12 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=11 5 L 2 I 3 3 |V|-1 = 12 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M m=12 5 L 2 I 3 3 |V|-1 = 12 2 12 5 6 H G F

3.5 MST: Kruskal’s Algorithm 1. Input: G=(V,E) 2. Let T=(V,E’), E’={}, m=0 3. while (m < |V| - 1) { a. Find edge e in E of least weight. b. E = E - {e} c. If E’ È {e} does not produce circuit E’ = E’ È {e} m = m + 1 } 4. Output T. 4 B C D 4 2 K 4 A 2 E J 3 M m=12 5 L 2 I 3 3 |V|-1 = 12 2 5 Algorithm Halts. Cost = 39 H G F

PRIM’S ALGORITHM

3.6 MST: Prim’s Algorithm 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. Idea: To ‘grow’ a spanning tree.

3.6 MST: Prim’s Algorithm |V| = 12 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. A G H B C D I J K F L E M 5 2 3 4 6 8 10 12 |V| = 12 > 0

3.6 MST: Prim’s Algorithm |V| = 12 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 12 > 0 4 2 12 5 6 H G F

3.6 MST: Prim’s Algorithm |V| = 11 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 11 > 0 4 2 12 5 6 H G F

3.6 MST: Prim’s Algorithm |V| = 11 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 11 > 0 4 2 12 5 6 H G F

3.6 MST: Prim’s Algorithm |V| = 10 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 10 > 0 4 2 12 5 6 H G F

3.6 MST: Prim’s Algorithm |V| = 9 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 9 > 0 4 2 5 6 H G F

3.6 MST: Prim’s Algorithm |V| = 8 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 8 > 0 4 2 5 6 H G F

3.6 MST: Prim’s Algorithm |V| = 7 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 7 > 0 4 2 5 6 H G F

3.6 MST: Prim’s Algorithm |V| = 6 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K 4 A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 6 > 0 4 2 6 H G F

3.6 MST: Prim’s Algorithm |V| = 5 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 5 > 0 4 2 6 H G F

3.6 MST: Prim’s Algorithm |V| = 4 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 4 > 0 4 2 H G F

3.6 MST: Prim’s Algorithm |V| = 3 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 8 K A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 3 > 0 4 2 H G F

3.6 MST: Prim’s Algorithm |V| = 2 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 10 B C D 6 4 2 6 K A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 2 > 0 4 2 H G F

3.6 MST: Prim’s Algorithm |V| = 1 > 0 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 B C D 6 4 2 6 K A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 1 > 0 4 2 H G F

3.6 MST: Prim’s Algorithm |V| = 0 Algorithm Halts. Cost = 39 1. Input: G=(V,E) 2. Let T=(V’,E’), V’={v}, E’={}, m=0, V=V-{v} 3. while (|V| > 0) { a. Find an edge e such that e = {x,y}, x in V’, y in V. e connects T to some vertex in V. e has least weight of all edges connecting T to a vertex in V. b. V’=V’ È {y}, E’ = E’ È {e}, V = V - {y} } 4. Output T. 4 B C D 4 2 K A 2 E J 5 3 M 5 L 2 I 3 3 |V| = 0 4 2 Algorithm Halts. Cost = 39 H G F

Different output possible 3 A G H B C D I J K F L E M 5 2 4 Kruskal’s Algorithm Cost of Tree = 39 A G H B C D I J K F L E M 5 2 3 4 Prim’s Algorithm

End of Lecture