1 / 41

Lecture overview

Lecture overview. Single operation time complexity Previous results Optimality proof UF(k)-trees Operations and complexity IUF(k)-trees Properties and complexity. Single operation complexity.

skylar
Download Presentation

Lecture overview

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. Lecture overview • Single operation time complexity • Previous results • Optimality proof • UF(k)-trees • Operations and complexity • IUF(k)-trees • Properties and complexity

  2. Single operation complexity A data structure in which each UNION operation can be performed in O(k), and each FIND operation can be performed in time O(logkn). k is a parameter, 2  k  n . Previous algorithms had operation complexity (log n). If we choose k = log n / log log n, UNION: O(k) = O(log n / log log n) FIND: O(logkn) = O(log n / log log n)

  3. Single operation complexity Union: O(k) Find: O(logkn)

  4. Optimal data structure Theorem (Blum): Suppose that every UNION operation can be performed in O(k). Then there is a FIND operation that needs time Corollary: There is always either a UNION or a FIND operation that takes

  5. Optimal data structure

  6. Optimal data structure

  7. UF(k)-trees Let k be an integer, 2  k  n. A tree T is called a UF(k)-tree , if The root of T has at most k sons. Each node in T has either 0 or more than k grandsons. All leaves of T have the same depth.

  8. name sons number of sons height leaf UF(k)-tree structure

  9. To FIND an element, climb to the root UK(k)-tree structure Elements are stored at the leaves a b c d e f g h

  10. UK(k)-tree structure Initially all trees are of size 2. a b c d e f

  11. UF(k)-trees - balanced If level i contains any nodes, it contains at least ki/2 nodes. The tree has at most n leaves Height  2logkn FIND : O(logkn)

  12. UF(k)-trees - linear

  13. UF(k)-trees - linear

  14. UF(k) - case 1 Total number of sons  k

  15. UF(k) - case 1 Total number of sons  k

  16. UF(k) - case 2 Total number of sons > k

  17. UF(k) - case 2 Total number of sons > k

  18. UF(k) - case 3

  19. UF(k) - case 3

  20. UF(2)-trees - example a b c d e f

  21. UF(2)-trees - example a b c d e f

  22. UF(2)-trees - example a b c d e f

  23. UF(2)-trees - example a b c d e f

  24. UF(k) - case 1 Total number of sons  k

  25. UF(k) - case 2 Total number of sons > k

  26. = O(k+logkn) UF(k) - case 3 Complexity = O(k)

  27. IUF(k)-trees Let k be an integer, 2  k  n. A tree T is called a IUF(k)-tree , if: • The root of T has at most k sons. • Each node in T has either 0 or more than k grandsons.

  28. IUF(k) trees - unbalanced

  29. IUF(k) - linear size

  30. IUF(k) - linear size L - depth 0 (leaves) M - depth 1 R - depth > 1 M  L #nodes  (k+1)R L+M+R  (k+1)R R  (L+M)/K  (L+M)/2  L

  31. IUF(k) - case 1 Total number of sons  k

  32. IUF(k) - case 1 Total number of sons  k

  33. IUF(k) - case 2 Total number of sons > k

  34. IUF(k) - case 2 Total number of sons > k

  35. IUF(k) - case 3

  36. IUF(k) - case 3

  37. IUF(k) trees - balanced It suffices to show than an IUF(k) tree has the same height as the corresponding UK(k) tree that stores the same set. We perform the sequence of UNION operations on the two data structures in parallel. • At each moment, the trees have the same height, and the roots have the same number of sons. • If we are in case j for the UF structure, we are in case j for the IUF structure.

  38. Case 3

  39. Case 3

  40. Summary • Union: O(k) , Find: O(logkn) • Optimality • UF(k)-trees: balanced, linear. • Three cases. Complexity: O(k+logkn) • IUF(k)-trees. Linear, potentially unbalanced • Similarity between data structures

  41. References • A Data Structure for the Union-Find Problem Having Good Single-Operation Complexity / Michiel H.M. Smid , 1989. • Presentation: http://www.math.tau.ac.il/~ysh/seminar/uf.ppt

More Related