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 Introduction to Algorithms 6.046J/18.401J/SMA5503 Lecture 20 Prof. Erik Demaine.
© 2004 Goodrich, Tamassia Union-Find1 Union-Find Partition Structures.
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.
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.
Melding Priority Queues Ran Mendelson Robert E. Tarjan Mikkel Thorup Uri Zwick SWAT 2004.
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.
CSE373: Data Structures & Algorithms Lecture 11: Implementing Union-Find Aaron Bauer Winter 2014.
CMSC 341 Disjoint Sets. 8/3/2007 UMBC CMSC 341 DisjointSets 2 Disjoint Set Definition Suppose we have an application involving N distinct items. We will.
CMSC 341 Disjoint Sets Textbook Chapter 8. Equivalence Relations A relation R is defined on a set S if for every pair of elements (a, b) with a,b  S,
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.
CSE373: Data Structures & Algorithms Lecture 11: Implementing Union-Find Nicki Dell Spring 2014.
CSE373: Data Structures & Algorithms Lecture 10: Implementing Union-Find Dan Grossman Fall 2013.
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.
1 CPSC 320: Intermediate Algorithm Design and Analysis July 16, 2014.
CS 146: Data Structures and Algorithms July 16 Class Meeting Department of Computer Science San Jose State University Summer 2015 Instructor: Ron Mak
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:
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.
1 CPSC 320: Intermediate Algorithm Design and Analysis July 14, 2014.
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.
How many edges does a tree of n nodes have? 1.2n-4 2.n(n-1)/2 3.n-1 4.n/2 5.Between n and 2n.
Data Structures for Disjoint Sets
Disjoint Sets Data Structure
CSE 373, Copyright S. Tanimoto, 2001 Up-trees -
Disjoint Sets Data Structure (Chap. 21)
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
CSE 332: Data Abstractions Union/Find II
Lecture 12 Algorithm Analysis
Course: Data Structures Lecturer: Uri Zwick March 2008
Union-Find Partition Structures
CSE373: Data Structures & Algorithms Implementing Union-Find
Union-Find Partition Structures
Union-Find with Constant Time Deletions
Running Time Analysis Union is clearly a constant time operation.
Disjoint Sets Data Structure (Chap. 21)
Lecture 12 Algorithm Analysis
Lecture 21 Amortized Analysis
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