SlideShare a Scribd company logo
Lecture 12 Minimum Spanning Tree
Motivating Example: Point to Multipoint Communication Single source, Multiple Destinations Broadcast All nodes in the network are destinations Multicast Some nodes in the network are destinations Only one copy of the information travels along common edges Message replication along forking points only. 1 2
Spanning Tree We consider undirected graphs here. A tree is a connected graph without a cycle  A spanning tree is a tree which has all vertices of the graph There may be multiple spanning trees We need to choose the minimum weight tree for broadcast.
Blue edge spanning tree is the minimum weight spanning tree 5 4 4 5
Properties of a Tree A tree of V vertices has V-1 edges There exists a unique path between any two vertices of a  tree. Adding any edge to a tree creates a unique cycle. Breaking any edge on this cycle restores a tree.
Minimum Spanning Tree Construction We maintain a set of edges A, which is initially empty. Edges are added to A one at a time such that finally A becomes a minimum spanning tree. Edges are never removed from A. So ``safe’’ edges must be added to A, i.e., at any stage A must be a part of a spanning tree.
Safe Edge Addition Consider a cut in  a graph (a cut consists of 2 sets which partition the vertex set). A cut respects a set of edges I if no edge in the set crosses the cut. A minimum  weight edge crossing a cut is denoted  a light weight edge in the cut {A,B,C}  {D,E,F} constitute a cut. Let I = {edge AB, edge EF}.Cut {A,B,C}, {D,E,F} respects set I Edge CD is a light weight edge in the example cut. A B C D E F 2 1 3 1
Let A be a subset of a MST (minimum weight spanning tree). Let (S, V – S) be any cut that respects A Let edge (u, v) be a light edge crossing the cut Then A    (u, v) is subset of a MST
Assume that all the edge weights are distinct. Let no MST containing A contain edge (u, v). Add the edge (u, v) to T Consider a MST T containing A Since (u, v) is not in T,  T    (u, v)  contains a cycle, and (u, v) is in the cycle. Edge (u, v) are in the opposite sides of the cut. Since any cycle must cross the cut even number of times, there exists at least one other edge (x, y) crossing the cut.  Clearly, w(x, y)  > w(u, v).
The edge (x, y) is not in A because (x, y) crosses the cut, and the cut respects A.  Removing (x, y) from the cycle, breaks the cycle and hence creates a spanning tree, T’, s.t. T’ = T    (u, v)  – (x, y) w(T’) = w(T) + w(u, v) – w(x, y)    w(T)  (as w(u, v)  < w(x, y)) This contradicts the fact that T is a MST.
So we always find a cut that respects A, And add a light edge across the cut to A. Kruskals and Prims algorithms find the cut differently.
Kruskals Algorithm  A =   For each vertex u in V,  Create_Set(u) Sort E in increasing order by weight w For each edge (u,v) in the sorted list If Set(u)  = Set(v) Add (u,v) to A Union Set(u) and Set(v) Return A;
Complexity Analysis The operations create set, testing whether set(u) == set(v), union operations can be done in log V operations, using Union find data structure. Step 1 can be done in Vlog V Step 2 can be done in Elog E Step 3 can be done in Elog V Overall complexity is O(Vlog V + Elog E + Elog V) or O((V + E)log V)
5 1 0 2 2 8 5 7 5 1 0 2 2 8 5 7 5 1 0 2 2 8 5 7 5 1 0 2 2 8 5 7 5 1 0 2 2 8 5 7
Prims Algorithm Maintains a set of vertices S already in the spanning tree. Initially, S consists of one vertex r, selected arbitrarily. For every vertex u in V – S, maintain the weight of the lightest edge between u and any vertex in S. If there is no edge between u and S, then this weight associated with u is infinity.
Add the vertex with the least weight to S. This is in effect adding the light weight edge crossing the cut S and V-S. Whenever a vertex is added to S, the weights of all its neighbors are reduced, if necessary.
Pseudo-Code For each u in V, key[u] =   S =   Pred[r] = NULL Key[r] = 0 While V   = S u = Extract_Min(V-S) For each (v in Adj(u)) if (v not in S) key(v) = min(w(u, v), key(v)) and pred(v) = u  Add u in S
For each v in Adj[u]…. can be done in E complexity  Rest of the loop can be done in V 2  complexity So, overall O(V 2 ) Using heaps we can solve in O((V + E)logV)
Example 0 s 7 5 7 2 1 8 5 3 2 5 3 1 s 0 2 8 5 7 2 8 5 s 0 7 3 1 5 2 3 5 8 0 3 2 5 s 7 2 1 8 5 5 3 1 8 5 s 0 7 2 3 1 5 2 3 5 1 3 8 5 s 0 7 2 1 5 2 3 5 1

More Related Content

PPT
chapter24.ppt
PPT
1D Kinematics Notes
PPTX
1D graphs, kinematics, and calculus
PPT
Grade 11, U1C-L1, Vector Comp
PPT
Motion graphs
PPT
Velocity &amp; acceleration
PPT
lecture 21
PPT
Grade 11, U1A-L4, Motion Equations
chapter24.ppt
1D Kinematics Notes
1D graphs, kinematics, and calculus
Grade 11, U1C-L1, Vector Comp
Motion graphs
Velocity &amp; acceleration
lecture 21
Grade 11, U1A-L4, Motion Equations

What's hot (20)

PDF
Daa chapter13
PPT
Weighted graphs
DOC
PDF
Pwerhitungan struktur kabel listrick
PPT
Grade 12 Unit1-L1-Kinematic Equations
DOCX
Simple Pendulum MC Question
PPT
Motion Graph & equations
PPT
Grade 11, U1A-L1, Introduction to Kinematics
PPT
lecture 22
PPT
Ppt on equations of motion by graphival method made by mudit gupta
PPTX
Motion L1
PPT
Kinematics displacement velocity graphs
PPTX
Introductiontomotion
PPTX
Chapter 2
PPT
Lecture03
PPTX
Scalars and vectors
PPT
Grade 11, U1A-L5, Add/Sub Vectors in a Plane
PPT
Lecture01
PPT
Grade 11, U1A-L2 Motion Graphs
PPT
14210111030
Daa chapter13
Weighted graphs
Pwerhitungan struktur kabel listrick
Grade 12 Unit1-L1-Kinematic Equations
Simple Pendulum MC Question
Motion Graph & equations
Grade 11, U1A-L1, Introduction to Kinematics
lecture 22
Ppt on equations of motion by graphival method made by mudit gupta
Motion L1
Kinematics displacement velocity graphs
Introductiontomotion
Chapter 2
Lecture03
Scalars and vectors
Grade 11, U1A-L5, Add/Sub Vectors in a Plane
Lecture01
Grade 11, U1A-L2 Motion Graphs
14210111030
Ad

Similar to lecture 16 (20)

PPT
Algorithm Design and Complexity - Course 9
PPT
Chapter 24 aoa
PPTX
lec6.pptx
PPT
minimum spanning trees Algorithm
PPT
Graph algorithms
PPT
test pre
PPTX
Graph_data_structure_information_engineering.pptx
PPTX
Compactrouting
PPTX
SVD (2) relate hwwbdjsdjsdjsajdassddasddto ml a.pptx
PPT
Algorithm Design and Complexity - Course 10
PDF
spanningtreesapplications-120903115339-phpapp02 (1).pdf
PPT
chapter23.ppt
PPT
Greedy Approach in Design Analysis and Algorithms
PDF
19 Minimum Spanning Trees
PPT
PPTX
GRAPH THEORY PPT for students to re.pptx
PPT
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
PDF
DIGITAL TEXT BOOK
PPT
Dijkstra algorithm ds 57612334t4t44.ppt
PPT
Dijkstra Shortest Path Algorithm in Network.ppt
Algorithm Design and Complexity - Course 9
Chapter 24 aoa
lec6.pptx
minimum spanning trees Algorithm
Graph algorithms
test pre
Graph_data_structure_information_engineering.pptx
Compactrouting
SVD (2) relate hwwbdjsdjsdjsajdassddasddto ml a.pptx
Algorithm Design and Complexity - Course 10
spanningtreesapplications-120903115339-phpapp02 (1).pdf
chapter23.ppt
Greedy Approach in Design Analysis and Algorithms
19 Minimum Spanning Trees
GRAPH THEORY PPT for students to re.pptx
ADA - Minimum Spanning Tree Prim Kruskal and Dijkstra
DIGITAL TEXT BOOK
Dijkstra algorithm ds 57612334t4t44.ppt
Dijkstra Shortest Path Algorithm in Network.ppt
Ad

More from sajinsc (20)

PPT
lecture 30
PPT
lecture 29
PPT
lecture 28
PPT
lecture 27
PPT
lecture 26
PPT
lecture 25
PPT
lecture 24
PPT
lecture 23
PPT
lecture 20
PPT
lecture 19
PPT
lecture 18
PPT
lecture 17
PPT
lecture 15
PPT
lecture 14
PPT
lecture 13
PPT
lecture 12
PPT
lecture 11
PPT
lecture 10
PPT
lecture 9
PPT
lecture 8
lecture 30
lecture 29
lecture 28
lecture 27
lecture 26
lecture 25
lecture 24
lecture 23
lecture 20
lecture 19
lecture 18
lecture 17
lecture 15
lecture 14
lecture 13
lecture 12
lecture 11
lecture 10
lecture 9
lecture 8

Recently uploaded (20)

PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
Complications of Minimal Access Surgery at WLH
PDF
01-Introduction-to-Information-Management.pdf
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
Pre independence Education in Inndia.pdf
PDF
RMMM.pdf make it easy to upload and study
PPTX
Cell Structure & Organelles in detailed.
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PDF
Business Ethics Teaching Materials for college
PPTX
Pharma ospi slides which help in ospi learning
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PPTX
Cell Types and Its function , kingdom of life
PDF
VCE English Exam - Section C Student Revision Booklet
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
Renaissance Architecture: A Journey from Faith to Humanism
Complications of Minimal Access Surgery at WLH
01-Introduction-to-Information-Management.pdf
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
Pre independence Education in Inndia.pdf
RMMM.pdf make it easy to upload and study
Cell Structure & Organelles in detailed.
O7-L3 Supply Chain Operations - ICLT Program
102 student loan defaulters named and shamed – Is someone you know on the list?
Business Ethics Teaching Materials for college
Pharma ospi slides which help in ospi learning
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPH.pptx obstetrics and gynecology in nursing
2.FourierTransform-ShortQuestionswithAnswers.pdf
Cell Types and Its function , kingdom of life
VCE English Exam - Section C Student Revision Booklet

lecture 16

  • 1. Lecture 12 Minimum Spanning Tree
  • 2. Motivating Example: Point to Multipoint Communication Single source, Multiple Destinations Broadcast All nodes in the network are destinations Multicast Some nodes in the network are destinations Only one copy of the information travels along common edges Message replication along forking points only. 1 2
  • 3. Spanning Tree We consider undirected graphs here. A tree is a connected graph without a cycle A spanning tree is a tree which has all vertices of the graph There may be multiple spanning trees We need to choose the minimum weight tree for broadcast.
  • 4. Blue edge spanning tree is the minimum weight spanning tree 5 4 4 5
  • 5. Properties of a Tree A tree of V vertices has V-1 edges There exists a unique path between any two vertices of a tree. Adding any edge to a tree creates a unique cycle. Breaking any edge on this cycle restores a tree.
  • 6. Minimum Spanning Tree Construction We maintain a set of edges A, which is initially empty. Edges are added to A one at a time such that finally A becomes a minimum spanning tree. Edges are never removed from A. So ``safe’’ edges must be added to A, i.e., at any stage A must be a part of a spanning tree.
  • 7. Safe Edge Addition Consider a cut in a graph (a cut consists of 2 sets which partition the vertex set). A cut respects a set of edges I if no edge in the set crosses the cut. A minimum weight edge crossing a cut is denoted a light weight edge in the cut {A,B,C} {D,E,F} constitute a cut. Let I = {edge AB, edge EF}.Cut {A,B,C}, {D,E,F} respects set I Edge CD is a light weight edge in the example cut. A B C D E F 2 1 3 1
  • 8. Let A be a subset of a MST (minimum weight spanning tree). Let (S, V – S) be any cut that respects A Let edge (u, v) be a light edge crossing the cut Then A  (u, v) is subset of a MST
  • 9. Assume that all the edge weights are distinct. Let no MST containing A contain edge (u, v). Add the edge (u, v) to T Consider a MST T containing A Since (u, v) is not in T, T  (u, v) contains a cycle, and (u, v) is in the cycle. Edge (u, v) are in the opposite sides of the cut. Since any cycle must cross the cut even number of times, there exists at least one other edge (x, y) crossing the cut. Clearly, w(x, y) > w(u, v).
  • 10. The edge (x, y) is not in A because (x, y) crosses the cut, and the cut respects A. Removing (x, y) from the cycle, breaks the cycle and hence creates a spanning tree, T’, s.t. T’ = T  (u, v) – (x, y) w(T’) = w(T) + w(u, v) – w(x, y)  w(T) (as w(u, v) < w(x, y)) This contradicts the fact that T is a MST.
  • 11. So we always find a cut that respects A, And add a light edge across the cut to A. Kruskals and Prims algorithms find the cut differently.
  • 12. Kruskals Algorithm A =  For each vertex u in V, Create_Set(u) Sort E in increasing order by weight w For each edge (u,v) in the sorted list If Set(u)  = Set(v) Add (u,v) to A Union Set(u) and Set(v) Return A;
  • 13. Complexity Analysis The operations create set, testing whether set(u) == set(v), union operations can be done in log V operations, using Union find data structure. Step 1 can be done in Vlog V Step 2 can be done in Elog E Step 3 can be done in Elog V Overall complexity is O(Vlog V + Elog E + Elog V) or O((V + E)log V)
  • 14. 5 1 0 2 2 8 5 7 5 1 0 2 2 8 5 7 5 1 0 2 2 8 5 7 5 1 0 2 2 8 5 7 5 1 0 2 2 8 5 7
  • 15. Prims Algorithm Maintains a set of vertices S already in the spanning tree. Initially, S consists of one vertex r, selected arbitrarily. For every vertex u in V – S, maintain the weight of the lightest edge between u and any vertex in S. If there is no edge between u and S, then this weight associated with u is infinity.
  • 16. Add the vertex with the least weight to S. This is in effect adding the light weight edge crossing the cut S and V-S. Whenever a vertex is added to S, the weights of all its neighbors are reduced, if necessary.
  • 17. Pseudo-Code For each u in V, key[u] =  S =  Pred[r] = NULL Key[r] = 0 While V  = S u = Extract_Min(V-S) For each (v in Adj(u)) if (v not in S) key(v) = min(w(u, v), key(v)) and pred(v) = u Add u in S
  • 18. For each v in Adj[u]…. can be done in E complexity Rest of the loop can be done in V 2 complexity So, overall O(V 2 ) Using heaps we can solve in O((V + E)logV)
  • 19. Example 0 s 7 5 7 2 1 8 5 3 2 5 3 1 s 0 2 8 5 7 2 8 5 s 0 7 3 1 5 2 3 5 8 0 3 2 5 s 7 2 1 8 5 5 3 1 8 5 s 0 7 2 3 1 5 2 3 5 1 3 8 5 s 0 7 2 1 5 2 3 5 1