1 / 15

Disjoint Sets Data Structures: Illustrated with Theoretical Concepts

Explore disjoint-set data structure operations like MAKE-SET, UNION, and FIND-SET. Learn weight-union heuristics, path compression, union by rank, and theorems for efficient implementations. Discover how to apply these concepts to linked-list representations and disjoint-set forests.

obanion
Download Presentation

Disjoint Sets Data Structures: Illustrated with Theoretical Concepts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 21 Data Structures for Disjoint Sets Lee, Hsiu-Hui Ack: This presentation is based on the lecture slides from Prof. Tsai, Shi-Chun as well as various materials from the web. .

  2. Disjoint-set Data Structure • To maintain a collection of disjoint dynamicsets S = {S1, S2, …, Sk}. Each set Si is identified by a representativex=rep[Si]. • Operations: MAKE-SET(x): creates a new set whose only member is x. with rep[{x}] = x (for any x ∉ Si for all i). UNION(x, y): replaces sets Sx, Sywith Sx∪ Sy in S for any x, y in distinct sets Sx, Sy . FIND-SET(x): returns representative of set Sxcontaining x. Hsiu-Hui Lee

  3. a b e f h j c d g i (a) Connected Component: an application Hsiu-Hui Lee

  4. CONNECTED-COMPONENTS(G) 1 for each vertex v  V[G] 2 do MAKE-SET(v) 3 for each edge (u,v)  E[G] 4 do if FIND-SET(u) ≠ FIND-SET(v) • then UNION(u,v) SAME-COMPONENT(u,v) 1 if FIND-SET(u) = FIND-SET(v) 2 then return TRUE 3 else return FALSE Hsiu-Hui Lee

  5. Linked-list representation of disjoint sets The first object in each linked list serve as its set’s representative Hsiu-Hui Lee

  6. MAKE-SET(x) : O(1) FIND-SET(x) : O(1) UNION(x, y) : by appending x’s list onto the end of y’s list UNION (e, g) Hsiu-Hui Lee

  7. Θ(n) Θ(1+2+...+n) =Θ(n2) A simple implementation of union m: # of operation = 2n-1 Amortized time : Θ(n) Hsiu-Hui Lee

  8. A weight-union heuristic • In simple implementation of union, we may be appending a longer list onto a shorter list • Weighted-union heuristic To append the smaller list onto the longer Hsiu-Hui Lee

  9. Theorem 21.1 • Using the linked-list representation of disjoint sets and the weight-union heuristic, a sequence of m MAKE-SET, UNION, and FIND-SET operations, n of which are MAKE-SET operations, takes O( m + n lg n) time. Hsiu-Hui Lee

  10. Disjoint-set forests • We represent sets by rooted trees. • Each node contains one member and each tree represents one set. • In a disjoint-set forest, each member points to its parent. UNION (e, g) Hsiu-Hui Lee

  11. Heuristics to improve the running time • Union by rank The root with smaller rank is made to point to the root with larger rank during a UNION operation • Path compression During FIND-SET, to make each node on the find path point directly to the root. Hsiu-Hui Lee

  12. Before FIND-SET(a) After FIND-SET(a) Hsiu-Hui Lee

  13. Pseudo code for disjoint-set forests MAKE-SET(x) 1p[x]  x 2rank[x]  0 UNION(x, y) 1 LINK(FIND-SET(x), FIND-SET(y)) path compression Hsiu-Hui Lee

  14. union by rank LINK(x, y) 1 if rank[x] > rank[y] 2 then p[y]  x 3 else p[x]  y 4 if rank[x] = rank[y] 5 then rank[y]  rank[y] + 1 FIND-SET(x) 1 if x ≠ p[x] 2 then p[x]  FIND-SET(p[x]) 3 return p[x] Hsiu-Hui Lee

  15. Effect of the heuristics • Either union by rank or path compression improves the running time. O(m lg n) --- union by rank Θ(n + f ‧ (1+log2+f/nn)) --- path comprsssion • The improvement is greater when the two heuristics are used together. O(m  (n)) --- both Hsiu-Hui Lee

More Related