Course: Data Structures Lecturer: Uri Zwick March 2008

Slides:



Advertisements
Similar presentations
1 Union-find. 2 Maintain a collection of disjoint sets under the following two operations S 3 = Union(S 1,S 2 ) Find(x) : returns the set containing x.
Advertisements

1 Disjoint Sets Set = a collection of (distinguishable) elements Two sets are disjoint if they have no common elements Disjoint-set data structure: –maintains.
1 Introduction to Algorithms 6.046J/18.401J/SMA5503 Lecture 20 Prof. Erik Demaine.
Disjoint-Set Operation
CSE 326: Data Structures Disjoint Union/Find Ben Lerner Summer 2007.
Disjoint Union / Find CSE 373 Data Structures Lecture 17.
CSE 326: Data Structures Disjoint Union/Find. Equivalence Relations Relation R : For every pair of elements (a, b) in a set S, a R b is either true or.
Dynamic Sets and Data Structures Over the course of an algorithm’s execution, an algorithm may maintain a dynamic set of objects The algorithm will perform.
Data Structures, Spring 2004 © L. Joskowicz 1 Data Structures – LECTURE 17 Union-Find on disjoint sets Motivation Linked list representation Tree representation.
Course: Data Structures Lecturer: Uri Zwick March 2008
Lecture 16: Union and Find for Disjoint Data Sets Shang-Hua Teng.
CSE 373, Copyright S. Tanimoto, 2002 Up-trees - 1 Up-Trees Review of the UNION-FIND ADT Straight implementation with Up-Trees Path compression Worst-case.
MATH 310, FALL 2003 (Combinatorial Problem Solving) Lecture 10, Monday, September 22.
Course: Data Structures Lecturers: Haim Kaplan and Uri Zwick June 2010
Theory of Computing Lecture 10 MAS 714 Hartmut Klauck.
COMP 261 Lecture 12 Disjoint Sets. Menu Kruskal's minimum spanning tree algorithm Disjoint-set data structure and Union-Find algorithm Administrivia –Marking.
2IL05 Data Structures Fall 2007 Lecture 13: Minimum Spanning Trees.
Spring 2015 Lecture 11: Minimum Spanning Trees
Computer Algorithms Submitted by: Rishi Jethwa Suvarna Angal.
CS 473Lecture X1 CS473-Algorithms I Lecture X1 Properties of Ranks.
CSE373: Data Structures & Algorithms Lecture 11: Implementing Union-Find Aaron Bauer Winter 2014.
Disjoint Sets Data Structure (Chap. 21) A disjoint-set is a collection  ={S 1, S 2,…, S k } of distinct dynamic sets. Each set is identified by a member.
Lecture X Disjoint Set Operations
Disjoint Sets Data Structure. Disjoint Sets Some applications require maintaining a collection of disjoint sets. A Disjoint set S is a collection of sets.
Union-find Algorithm Presented by Michael Cassarino.
Union Find ADT Data type for disjoint sets: makeSet(x): Given an element x create a singleton set that contains only this element. Return a locator/handle.
The Disjoint Set Class Data Structures & Problem Solving Using JAVA Second Edition Mark Allen Weiss Chapter 24 © 2002 Addison Wesley.
Disjoint-Set Operation. p2. Disjoint Set Operations : MAKE-SET(x) : Create new set {x} with representative x. UNION(x,y) : x and y are elements of two.
Union-Find A data structure for maintaining a collection of disjoint sets Course: Data Structures Lecturers: Haim Kaplan and Uri Zwick January 2014.
Union-Find  Application in Kruskal’s Algorithm  Optimizing Union and Find Methods.
0 Union-Find data structure. 1 Disjoint set ADT (also Dynamic Equivalence) The universe consists of n elements, named 1, 2, …, n n The ADT is a collection.
CMSC 341 Disjoint Sets. 2 Disjoint Set Definition Suppose we have N distinct items. We want to partition the items into a collection of sets such that:
21. Data Structures for Disjoint Sets Heejin Park College of Information and Communications Hanyang University.
Graphs Definition: a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected.
Lecture 12 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
CSE 326: Data Structures Lecture #23 Dijkstra and Kruskal (sittin’ in a graph) Steve Wolfman Winter Quarter 2000.
CSE 373, Copyright S. Tanimoto, 2001 Up-trees - 1 Up-Trees Review of the UNION-FIND ADT Straight implementation with Up-Trees Path compression Worst-case.
CSE 373: Data Structures and Algorithms
Data Structures for Disjoint Sets
Disjoint Sets Data Structure
CSE 373, Copyright S. Tanimoto, 2001 Up-trees -
Disjoint Sets Data Structure (Chap. 21)
Disjoint Sets Chapter 8.
Lecture 12 Algorithm Analysis
Course Outline Introduction and Algorithm Analysis (Ch. 2)
CMSC 341 Disjoint Sets Based on slides from previous iterations of this course.
CSE373: Data Structures & Algorithms Lecture 11: Implementing Union-Find Linda Shapiro Spring 2016.
Disjoint Set Neil Tang 02/23/2010
Disjoint Set Neil Tang 02/26/2008
A simpler implementation and analysis of Chazelle’s
CS200: Algorithm Analysis
CSE 332: Data Structures Disjoint Set Union/Find
CSCE 411 Design and Analysis of Algorithms
CSE 332: Data Abstractions Union/Find II
Lecture 12 Algorithm Analysis
Union-Find Partition Structures
CSE373: Data Structures & Algorithms Implementing Union-Find
Union-Find Partition Structures
CMSC 341 Disjoint Sets.
Union-Find with Constant Time Deletions
CMSC 341 Disjoint Sets.
Running Time Analysis Union is clearly a constant time operation.
Kruskal’s algorithm for MST and Special Data Structures: Disjoint Sets
Disjoint Sets Data Structure (Chap. 21)
Lecture 12 Algorithm Analysis
Lecture 21 Amortized Analysis
CSE 373: Data Structures and Algorithms
Disjoint Set Operations: “UNION-FIND” Method
Presentation transcript:

Course: Data Structures Lecturer: Uri Zwick March 2008 Union-Find A data structure for maintaining a collection of disjoint sets Course: Data Structures Lecturer: Uri Zwick March 2008

Union-Find Make(x): Create a set containing x Union(x,y): Unite the sets containing x and y Find(x): Return a representative of the set containing x

Union Find make union find O(1) O(α(n)) a b c Amortized d e

Fun aplications: Generating mazes make(1) make(2) make(16) … 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 find(6)=find(7) ? union(6,7) find(7)=find(11) ? union(7,11) … Choose edges in random order and remove them if they connect two different regions

Fun aplications: Generating mazes 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Generating mazes – a larger example Construction time -- O(n2 α(n2))

More serious aplications: Maintaining an equivalence relation Incremental connectivity in graphs Computing minimum spanning trees …

Union Find Represent each set as a rooted tree Union by rank Path compression p[x] x The parent of a vertex x is denoted by p[x] Find(x) traces the path from x to the root

Union by rank r+1 r2 r r r1 r1< r2 r1 r1< r2 Union by rank on its own gives O(log n) find time A tree of rank r contains at least 2r elements If x is not a root, then rank(x)<rank(p[x])

Path Compression

Union Find - pseudocode

Union-Find O(1) O(log n) O(1) O(α(n)) make link find make link find Worst case make link find O(1) O(log n) Amortized make link find O(1) O(α(n))

Nesting / Repeated application

Ackermann’s function

Ackermann’s function (modified)

Inverse functions

Inverse Ackermann function is the inverse of the function A “diagonal” The first “column”

Level and Index Back to union-find…

Potentials

Bounds on level Definition Proof Claim

Bounds on index

Amortized cost of make Actual cost: O(1) : 0 Amortized cost: O(1)

Amortized cost of link Actual cost: O(1) x y Actual cost: O(1) z1 … zk The potentials of y and z1,…,zk can only decrease The potentials of x is increased by at most (n)   (n) Actual cost: O((n))

Amortized cost of find y=p’[x] rank[x] is unchanged rank[p[x]] is increased level(x) is either unchanged or is increased p[x] If level(x) is unchanged, then index(x) is either unchanged or is increased x If level(x) is increased, then index(x) is decreased by at most rank[x]–1 is either unchanged or is decreased

Amortized cost of find Suppose that: xl xj xi x=x0 (x) is decreased !

Amortized cost of find Actual cost: l +1    ((n)+1) – (l +1) xl xj xi The only nodes that can retain their potential are: the first, the last and the last node of each level x=x0 Actual cost: l +1    ((n)+1) – (l +1) Amortized cost: (n)+1