Lecture: Analysis of Algorithms (CS )

Similar documents
Hashing, Hash Functions. Lecture 7

Symbol-table problem. Hashing. Direct-access table. Hash functions. CS Spring Symbol table T holding n records: record.

Data Structures and Algorithm. Xiaoqing Zheng

Hash tables. Hash tables

1 Maintaining a Dictionary

Motivation. Dictionaries. Direct Addressing. CSE 680 Prof. Roger Crawfis

Introduction to Hash Tables

Hash tables. Hash tables

Hash tables. Hash tables

Algorithms lecture notes 1. Hashing, and Universal Hash functions

Analysis of Algorithms I: Perfect Hashing

So far we have implemented the search for a key by carefully choosing split-elements.

COMP251: Hashing. Jérôme Waldispühl School of Computer Science McGill University. Based on (Cormen et al., 2002)

Insert Sorted List Insert as the Last element (the First element?) Delete Chaining. 2 Slide courtesy of Dr. Sang-Eon Park

Lecture 5: Hashing. David Woodruff Carnegie Mellon University

Advanced Implementations of Tables: Balanced Search Trees and Hashing

6.1 Occupancy Problem

? 11.5 Perfect hashing. Exercises

CS 473: Algorithms. Ruta Mehta. Spring University of Illinois, Urbana-Champaign. Ruta (UIUC) CS473 1 Spring / 32

CSCB63 Winter Week10 - Lecture 2 - Hashing. Anna Bretscher. March 21, / 30

Hash Tables. Direct-Address Tables Hash Functions Universal Hashing Chaining Open Addressing. CS 5633 Analysis of Algorithms Chapter 11: Slide 1

Hash Tables. Given a set of possible keys U, such that U = u and a table of m entries, a Hash function h is a

1 Probability Review. CS 124 Section #8 Hashing, Skip Lists 3/20/17. Expectation (weighted average): the expectation of a random quantity X is:

CSE 502 Class 11 Part 2

Fundamental Algorithms

Searching. Constant time access. Hash function. Use an array? Better hash function? Hash function 4/18/2013. Chapter 9

A Lecture on Hashing. Aram-Alexandre Pooladian, Alexander Iannantuono March 22, Hashing. Direct Addressing. Operations - Simple

CS 591, Lecture 6 Data Analytics: Theory and Applications Boston University

Hashing. Why Hashing? Applications of Hashing

Abstract Data Type (ADT) maintains a set of items, each with a key, subject to

Hashing. Dictionaries Chained Hashing Universal Hashing Static Dictionaries and Perfect Hashing. Philip Bille

Hashing. Hashing. Dictionaries. Dictionaries. Dictionaries Chained Hashing Universal Hashing Static Dictionaries and Perfect Hashing

12 Hash Tables Introduction Chaining. Lecture 12: Hash Tables [Fa 10]

CS483 Design and Analysis of Algorithms

Introduction to Algorithms

Problem 1: (Chernoff Bounds via Negative Dependence - from MU Ex 5.15)

Algorithms for Data Science

Lecture Lecture 3 Tuesday Sep 09, 2014

Introduction to Hashtables

1 Hashing. 1.1 Perfect Hashing

Searching, mainly via Hash tables

Hashing. Dictionaries Hashing with chaining Hash functions Linear Probing

Cache-Oblivious Hashing

CSE 190, Great ideas in algorithms: Pairwise independent hash functions

Problem Set 4 Solutions

CS 125 Section #12 (More) Probability and Randomized Algorithms 11/24/14. For random numbers X which only take on nonnegative integer values, E(X) =

Hashing Data Structures. Ananda Gunawardena

Round 5: Hashing. Tommi Junttila. Aalto University School of Science Department of Computer Science

compare to comparison and pointer based sorting, binary trees

Application: Bucket Sort

Hashing. Hashing DESIGN & ANALYSIS OF ALGORITHM

Lecture 8 HASHING!!!!!

Hashing. Martin Babka. January 12, 2011

Collision. Kuan-Yu Chen ( 陳冠宇 ) TR-212, NTUST

String Matching. Thanks to Piotr Indyk. String Matching. Simple Algorithm. for s 0 to n-m. Match 0. for j 1 to m if T[s+j] P[j] then

s 1 if xπy and f(x) = f(y)

INTRODUCTION TO HASHING Dr. Thomas Hicks Trinity University. Data Set - SSN's from UTSA Class

Module 1: Analyzing the Efficiency of Algorithms

Lecture 4 February 2nd, 2017

Randomized Sorting Algorithms Quick sort can be converted to a randomized algorithm by picking the pivot element randomly. In this case we can show th

1 Recommended Reading 1. 2 Public Key/Private Key Cryptography Overview RSA Algorithm... 2

6.842 Randomness and Computation Lecture 5

Bucket-Sort. Have seen lower bound of Ω(nlog n) for comparisonbased. Some cheating algorithms achieve O(n), given certain assumptions re input

Numbers. 2.1 Integers. P(n) = n(n 4 5n 2 + 4) = n(n 2 1)(n 2 4) = (n 2)(n 1)n(n + 1)(n + 2); 120 =

Hashing. Data organization in main memory or disk

cse 311: foundations of computing Fall 2015 Lecture 11: Modular arithmetic and applications

5 + 9(10) + 3(100) + 0(1000) + 2(10000) =

Cryptographic Hash Functions

Lecture 4 Thursday Sep 11, 2014

Lecture 7: More Arithmetic and Fun With Primes

Array-based Hashtables

CS1802 Week 11: Algorithms, Sums, Series, Induction

NORTHWESTERN UNIVERSITY Thrusday, Oct 6th, 2011 ANSWERS FALL 2011 NU PUTNAM SELECTION TEST

The set of integers will be denoted by Z = {, -3, -2, -1, 0, 1, 2, 3, 4, }

Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Note 8

Data Structures and Algorithm. Xiaoqing Zheng

2. This exam consists of 15 questions. The rst nine questions are multiple choice Q10 requires two

6.854 Advanced Algorithms

CSE 312, 2017 Winter, W.L.Ruzzo. 5. independence [ ]

Lecture 6. Today we shall use graph entropy to improve the obvious lower bound on good hash functions.

CS 580: Algorithm Design and Analysis

then the hard copy will not be correct whenever your instructor modifies the assignments.

CS 5319 Advanced Discrete Structure. Lecture 9: Introduction to Number Theory II

Introduction to Algorithms

Definition For a set F, a polynomial over F with variable x is of the form

2x 1 7. A linear congruence in modular arithmetic is an equation of the form. Why is the solution a set of integers rather than a unique integer?

1 Cryptographic hash functions

PUTNAM TRAINING NUMBER THEORY. Exercises 1. Show that the sum of two consecutive primes is never twice a prime.

Expectation of geometric distribution

N/4 + N/2 + N = 2N 2.

b = 10 a, is the logarithm of b to the base 10. Changing the base to e we obtain natural logarithms, so a = ln b means that b = e a.

1 Cryptographic hash functions

Big O 2/14/13. Administrative. Does it terminate? David Kauchak cs302 Spring 2013

Shannon s Noisy-Channel Coding Theorem

Advanced Algorithm Design: Hashing and Applications to Compact Data Representation

Lecture 10 Oct. 3, 2017

CSC165. Larry Zhang, October 7, 2014

2x 1 7. A linear congruence in modular arithmetic is an equation of the form. Why is the solution a set of integers rather than a unique integer?

Lecture 12: Hash Tables [Sp 15]

Probability & Combinatorics Test and Solutions February 18, 2012

Transcription:

Lecture: Analysis of Algorithms (CS483-001) Amarda Shehu Spring 2017

1 Outline of Today s Class 2 Choosing Hash Functions Universal Universality Theorem Constructing a Set of Universal Hash Functions Perfect

Symbol-table Problem Universal Perfect Consider the following symbol table S containing n records: Consider basic operations on S: INSERT(S,x) DELETE(S, x) SEARCH(S, k) Question: How should the data structure S be organized?

Direct-access Hash Tables Universal Perfect Suppose we have a list of elements S with keys that are drawn from a set (universe) U {0, 1,..., m 1} Suppose that keys are distinct at this stage (no two elements have the same key) Set up an array T [0, 1,..., m 1] s.t.: { x if x S and key[x] = k T [k] = NULL otherwise All the basic operations take θ(1) time There is a potential problem - the range of keys can be large: example: 64-bit numbers (18,446,744,073,709,551,616 keys) example: character strings (even larger)

Hash Functions Outline of Today s Class Universal Perfect Solution: Use a hash function h to map the universe U of all keys into {0, 1,..., m 1}: As each key is inserted, h maps it to a slot of T. When a record to be inserted maps to an already occupied slot in T, a collision occurs.

Universal Perfect Link records that hash to same slot into a list Worst-case Scenario: Every key hashes to same slot Access time is θ(n) if S = n

Universal Perfect Average-case Analysis of Chaining Collisions We make the assumption of simple uniform hashing: Each key k S is equally likely to be hashed to any slot of table T, independent of where other keys are hashed. Let n be number of keys in table, and m be number of slots. Let load factor α = n/m be average number of keys per slot. Expected time of an unsuccessful search for a record with a given key is: (time to apply hash function and get slot) + (time to search the collision list) θ(1 + α). Expected search time is θ(1) if α θ(1) (when n O(m)). A successful search has same asymptotic bound, but a rigorous argument is a bit more complicated (CLRS book).

Choosing a Hash Function Universal Perfect Can we achieve simple uniform hashing? Assumption of simple uniform hashing is hard to guarantee. Common techniques tend to work well in practice as long as their deficiencies can be avoided. Desired Property: A good hash function should distribute the keys uniformly into the slots of the table. Regularity in the key distribution should not affect this uniformity.

Division Method Outline of Today s Class Universal Perfect Assume all keys are integers, and define h(k) = k mod m. Deficiency: Do not pick an m that has a small divisor d. A preponderance of keys that are congruent mod d can adversely affect uniformity. Extreme deficiency: If m = 2 r, then the hash does not even depend on all bits of k: If k = 1011000111011010 2 and r = 6, then h(k) = 011010 2, which is only last 6 bits of k Pick m to be: prime, not too close to a power of 2 or 10, and not otherwise used prominently in the computing environment. Annoyance: A prime table size may be inconvenient. This method is popular, although the next one is usually superior.

Multiplication Method Universal Perfect Assume that all keys are integers, m = 2 r, and our computer has w-bit words. Define: h(k) = (A k mod 2 w ) rsh (w r), where rsh is the bitwise right-shift operator, and A is an odd integer in the range 2 w 1 < A < 2 w. Do not pick A too close to 2 w 1 or 2 w. Multiplication modulo 2 w is fast compared to division. The rsh operator is fast.

Example of Multiplication Method Universal Perfect h(k) = (A k mod 2 w ) rsh (w r), Suppose m = 8 = 2 3 and that our computer has w = 7-bit words:

Universal Perfect Resolving Collisions by Open Addressing No storage is used outside of the hash table itself. Insertion systematically probes table until empty slot is found. The hash function depends on both the key and probe number: h : U {0, 1,..., m 1} {0, 1,..., m 1} The probe sequence h(k, 0), h(k, 1),..., h(k, m 1) is a permutation of {0, 1,..., m 1}. Potential hazards: the table may fill up deletion is difficult (but not impossible)

Example of Open Addressing Universal Perfect

Example of Open Addressing Universal Perfect

Example of Open Addressing Universal Perfect

Example of Open Addressing Universal Perfect Search uses the same probe sequence and terminates successfully if it finds the key; unsuccessfully if it encounters an empty slot.

Probing Strategies Outline of Today s Class Universal Perfect Linear probing: Given an ordinary hash function h (k), linear probing uses the hash function h(k, i) = (h (k) + i) mod m. This method, though simple, suffers from primary clustering, where long runs of occupied slots build up, increasing the average search time. Moreover, the long runs of occupied slots tend to get longer. Double : Given two ordinary hash functions h 1 (k) and h 2 (k), double hashing uses the hash function h(k, i) = (h 1 (k) + i h 2 (k)) mod m. This method generally produces excellent results, provided that h 2 (k) is relatively prime to m. One way is to make m power of 2 and design h 2 (k) to produce only odd numbers.

Analysis of Open Addressing Universal Perfect We make the assumption of uniform hashing: Each key is equally likely to have anyone of the m! permutations as its probe sequence. Theorem: Given an open-addressed hash table with load factor α = n/m < 1, the expected number of probes in an unsuccessful search is at most 1/(1 α).

Proof of Theorem Outline of Today s Class Universal Perfect At least one probe is always necessary. With probability n/m, the first probe hits an occupied slot, and a second probe is necessary. With probability (n 1)/(m 1), the second probe hits an occupied slot, and a third probe is necessary. With probability (n 2)/(m 2), the third probe hits an occupied slot, and a fourth probe is necessary. (and so on) So, the expected number of probes is 1 + n n 1 m (1 + m 1 (1 +...))). Observe that n i m i n m for 1 i n. So, expected number of probes is bounded above by 1 + α(1 + α(1 + α(...))) = 1 + α + α 2 +... = i=0 αi = 1 1 α. A rigorous argument includes successful search in CLRS book.

Implications of this Theorem Universal Perfect If α is constant, then accessing an open-addressed hash table takes constant time. If the table is half full, then the expected number of probes is 1/(1-0.5) = 2. If the table is 90% full, then the expected number of probes is 1/(1 0.9) = 10.

A weakness of hashing Universal Perfect Problem: For any hash function h, a set of keys exists that can cause the average access time of a hash table to skyrocket. An adversary can pick all keys from {k U : h(k) = i} for some slot i. Solution: Choose the hash function at random, independently of the keys. Even if an adversary can see your code, he or she cannot find a bad set of keys, since he or she does not know exactly which hash function will be chosen.

Universal Outline of Today s Class Universal Perfect Definition of Universality Let U be a universe of keys, and let H be a finite collection of hash functions, each one mapping U to {0, 1,..., m 1}. We say that H is universal if x, y U, where x y, we have h H : h(x) = h(y) = H /m. This means that the chance of a collision between x and y is 1/m if we choose h randomly from H.

Why is Universality So Important? Universal Perfect Theorem: Let h be a hash function chosen (uniformly) at random from a universal set H of hash functions. Suppose h is used to hash n arbitrary keys into the m slots of a table T. Then, for a given key x, we have E[#collisions with x] < n/m. Proof: Let C x be the random variable indicating the total number of collisions of keys in T with x, and let { 1 if h(x) = h(y) c xy = 0 otherwise Note: E[c xy ] = 1/m and C x = y T {x} c xy.

Universal Perfect Continuing Proof that Universality is Important E[C x ] = E[ y T {x} c xy] take E of both sides = y T {x} E[c xy] linearity of expectation = y T {x} 1/m E[c xy] = 1/m = n 1 m simple Algebra

Universal Perfect Constructing a Set of Universal Hash Functions Let m be prime. Decompose k into r + 1 digits, each one with value in the set {0, 1,... m 1}. That is, let k = k 0, k 1,..., k r, where 0 k i < m. Randomized Strategy: Pick a = a 0, a 1,..., a r, where each a i is chosen uniformly at random from {0, 1,..., m 1}. Define h a (k) = r i=0 (a ik i ) mod m Hash functions defined this way are known as dot-product hash functions How big is H = {h a }? H = m r+1 - this is important to remember

Universal Perfect Universality of Dot-product Hash Functions Theorem: The set H = {h a } is universal Proof: Suppose that x = {x 0, x 1,..., x r } and y = {y 0, y 1,..., y r } are distinct keys. So, x and y differ in at least one digit position. Let this digit position be 0. For how many h a H do x and y collide? In case of a collision, we have that h a (x) = h a (y), which implies that r i=0 a ix i = r i=0 a iy i (mod m) Equivalently, r i=0 a i(x i y i ) = 0 (mod m) So, a 0 (x 0 y 0 ) + r i=1 a i(x i y i ) = 0 (mod m), which implies that a 0 (x 0 y 0 ) = r i=1 a i(x i y i ) (mod m)

Universal Perfect Continuing Proof with Help of Number Theory Theorem: Let m be prime. For any z Z m s. t. z 0, a unique z 1 Z m s.t. z z 1 = 1 (mod m) Example: When m = 7, pairs of (z, z 1 ) are (1, 1), (2, 4), (3, 5), (4, 2), (5, 3), (6, 6). Back to our Proof: Since a 0 (x 0 y 0 ) = r i=1 a i(x i y i ) (mod m) and x 0 y 0, then (x 0 y 0 ) 1 and so we have: a 0 = ( r i=1 a i(x i y i )) (x 0 y 0 ) 1 (mod m) This means that for any choices of a 1, a 2,..., a r, exactly one choice of a 0 causes x and y to collide

Completing the Proof Universal Perfect Question: How many h a s cause x and y to collide? Answer: There are m choices for each of a 1, a 2,..., a r, but once these are chosen, exactly one choice for a 0 causes x and y to collide. We showed that: a 0 = ( r i=1 a i(x i y i )) (x 0 y 0 ) 1 (mod m) So we can conclude that the number of h a s that cause x and y a to collide is m r 1 = m r = H /m.

Perfect Outline of Today s Class Universal Perfect A hash function is perfect for a dictionary S if all lookups involve O(1) work. There are two methods to construct perfect hash functions for a given set S. Technique 1 reguires O(n 2 ) storage, where S = n. This means we are willing to have a hash table whose size is quadratic in the size of S. Then, a perfect hash function can easily be constructed. Let H be universal and m = n 2. Then just pick a random h from H and try it out. The claim is there is at least a 50% chance there will be no collisions. Technique 2 requires O(n) storage. A hash table of size n is first filled through universal hashing, which may produce some collisions. Each slot of the table is then rehashed (universal hashing is again employed), squaring the size of the slot in order to get 0 collisions. This is also called a two-level scheme.

Perfect : O(n 2 ) Storage Universal Perfect Theorem: Let H be a class of universal hash functions for a table of size m = n 2. Then, if we use a random h H to hash n keys into the table, the expected number of collisions is at most 1/2. Proof: By the definition of universality, the probability that 2 given keys in the table collide under h is 1/m = 1/n 2. Since there are ( n 2) pairs of keys that can possibly collide, the expected number of collisions is: ( ) n 2 1 n (n 1) = n2 2 1 n 2 < 1 2

Universal Perfect Guaranteeing No Collisions in Perfect Corollary: The probability of no collisions is at least 1/2. Proof: Markov s inequality says that for any nonnegative random variable X, we have P(X t) E[X ]/t. Applying this inequality with t = 1, we find that the probability of 1 or more collisions is at most 1/2. This means that just by testing random hash functions in H, we quickly find one that works. The claim is we do not have to try more than two.

Perfect : O(n) Storage Universal Perfect Given a set of n keys, construct a static hash table of size m O(n) s. t. searching for a key takes θ(1) time in the worst case. Idea: Two-level scheme with universal hashing at both levels. No collisions at level 2!

Analysis of Storage in Perfect Universal Perfect For the level-1 hash table T, choose m = n, and let n i be the random variable for the number of keys that hash to slot i in T. By using ni 2 slots for the level-2 hash table S i, the expected total storage required for the two-level scheme is: θ(ni 2 )] = θ(n) m 1 E[ i=0 The analysis is identical to the analysis of the expected running time of bucket sort. It can be shown, with some mathematical manipulations, that E[ m 1 i=0 (n2 i )] < 2n. Then, Markov s inequality gives a probability bound that P( m 1 i=0 θ(n2 i ) > 4n) < 1/2. If we test a few randomly chosen hash functions from the universal family, we will quickly find one that uses a reasonable amount of storage.