Download presentation
Presentation is loading. Please wait.
1
CSE 780 Algorithms Advanced Algorithms Minimum spanning tree Generic algorithm Kruskal’s algorithm Prim’s algorithm
2
CSE 780 Algorithms Minimum Spanning Tree Learning outcomes: You should be able to: Write Kruskal’s and Prim’s algorithms Run both algorithms on given graphs Analyze both algorithms
3
CSE 780 Algorithms Problem A town has a set of houses and a set of roads A road connects 2 and only 2 houses A road connecting houses u and v has a repair cost w(u,v). Goal: repair enough roads such that 1. every house is connected 2. total repair cost is minimum
4
CSE 780 Algorithms Definition Given a connected graph G = (V, E), with weight function w : E --> R Find min-weight connected subgraph Spanning tree T: A tree that includes all nodes from V T = (V, E’), where E’ E Weight of T: W( T ) = w(e) Minimum spanning tree (MST): A tree with minimum weight among all spanning trees
5
CSE 780 Algorithms Example
6
CSE 780 Algorithms MST MST for given G may not be unique Since MST is a spanning tree: # edges : |V| - 1 If the graph is unweighted: All spanning trees have same weight
7
CSE 780 Algorithms Generic Algorithm Framework for G = (V, E) : Goal: build a set of edges A E Start with A empty Add edge into A one by one At any moment, A is a subset of some MST for G An edge is safe if adding it to A still maintains that A is a subset of a MST
8
CSE 780 Algorithms Finding Safe Edges When A is empty, example of safe edges? The edge with smallest weight Intuition: Suppose S V, --- a cut (S, V-S) – a partition of vertices into sets S and V-S S and V-S should be connected By the crossing edge with the smallest weight ! That edge also called a light edge crossing the cut (S, V-S) A cut (S, V-S) respects set A of edges If no edges from A crosses the cut (S, V-S)
9
CSE 780 Algorithms Cut
10
CSE 780 Algorithms Safe-Edge Theorem Theorem: Let A be a subset of some MST, (S, V-S) be a cut that respects A, and (u, v) be a light edge crossing (S, V-S). Then (u, v) is safe for A. Proof Corollary: Let C = (V c,E c ) be a connected component in the graph (forest) G A = (V, A). If (u, v) is a light edge connecting C to some other component in G A, then (u, v) is safe for A. Greedy Approach: Based on the generic algorithm and the corollary, to compute MST we only need a way to find a safe edge at each moment.
11
CSE 780 Algorithms Kruskal’s Algorithm Start with A empty, and each vertex being its own connected component Repeatedly merge two components by connecting them with a light edge crossing them Two issues: Maintain sets of components Choose light edges Disjoint set data structure Scan edges from low to high weight
12
CSE 780 Algorithms Pseudo-code
13
CSE 780 Algorithms Disjoint Set Operations Disjoint set data structure maintains a collection S = {S 1,S 2, …,S k } of disjoint dynamic sets where each set is identified by a representative (member) of the set. MAKE-SET(x): create a new set whose only member (and representative) is pointed at by x. UNION(x,y): unites dynamic sets containing x and y, S x and S y, eliminating S x and S y from S. FIND-SET(x): returns a pointer to the representative of the set containing x.
14
CSE 780 Algorithms Example
15
CSE 780 Algorithms Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
16
CSE 780 Algorithms Analysis Time complexity: #make-set : |V| #find-set and #union operations: |E| operations O( (|V| + |E|) (|V| )) = O( |E| (|V| )) as |E| >= |V| - 1 is the very slowly growing function (|V| ) = O(lg|V|) = O(lg|E|) Sorting : O(|E| lg |E|) Total: O(|E| lg |E|) = O(|E| lg |V|) Since |E| < |V| 2, hence lg|E| = lg|V|.
17
CSE 780 Algorithms Prim’s Algorithm Start with an arbitrary node from V Instead of maintaining a forest, grow a MST At any time, maintain a MST for V’ V At any moment, find a light edge connecting V’ with (V-V’) I.e., the edge with smallest weight connecting some vertex in V’ with some vertex in V-V’ !
18
CSE 780 Algorithms Prim’s Algorithm cont. Again two issues: Maintain the tree already build at any moment Easy: simply a tree rooted at r : the starting node Find the next light edge efficiently For v V - V’, define key(v) = the min distance between v and some node from V’ (current MST) At any moment, find the node with min key. Use a priority queue !
19
CSE 780 Algorithms Pseudo-code (cancel)
20
CSE 780 Algorithms Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
21
CSE 780 Algorithms Example
22
CSE 780 Algorithms Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
23
CSE 780 Algorithms Min Heap
24
CSE 780 Algorithms MAX HEAP
25
CSE 780 Algorithms Analysis Time complexity Using binary min-heap for priority queue: # initialisation in lines 1-5: O(|V|) While loop is executed |V| times Each Extract-min takes O ( log |V| ) Total Extract-min takes O ( |V| log |V| ) Assignment in line 11 involves Decrease-Key operation: Each Decrease-Key operation takes O ( log |V| ) The total is O( |E| log |V| ) ) Total time complexity: O (|V| log |V| +|E| log |V|) = O (|E| log |V|) Using Fibonacci heap: Decrease-Key: O(1) amortized time => total time complexity O(|E| + |V| log |V|)
26
CSE 780 Algorithms Applications Clustering Euclidean traveling salesman problem
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.