[This page is auto-generated; please prefer to read the article’s PDF Form.]
Now we perform another counting, for the key-pairs which collide. For any distinct keys x,y ∈ S and h ∈ℋ, we will call the pair (x,y) a “colliding-pair under h” if h(x) = h(y). We will not distinguish between pairs (x,y) and (y,x). Among the total pairs in S, can we say anything about the number of colliding-pairs under h? Let us denote the set of all pairs as P, and the number of colliding-pairs under h as Ch.
The definition of 𝜖-Universal class only tells us about the maximum number of functions under which a pair in P becomes a colliding-pair (𝜖H). For a particular function h, we don’t know how many pairs from P will become a colliding-pair. But if we count the number of colliding-pairs for each h ∈ℋ and add them together, we can progress as below:
| (4) |
In words, the number of colliding-pairs for a function (Ch), averaged over all functions in ℋ, is maximum 𝜖.
Note that for all h ∈ℋ, 0 ≤ Ch ≤. It is easy to prove that among any H non-negative numbers, with average A, at least ⌈H∕2⌉ numbers must be less than 2A. So, we can conclude:
Theorem 3. Given 𝜖-Universal class ℋ and any set of n keys, at least half of the functions in class ℋ must have number of colliding-pairs Ch < 2𝜖 = n(n − 1)𝜖.
This provides an upper-bound on Ch attained by at least half of the functions. So, to make sure that at least half of the functions are collision-free for a given set of n keys, i.e. have Ch = 0, we can restrict this upper-bound to be 1 (Ch are integers):
|
and adjust our universal-class to achieve such 𝜖. Note that this relation is same as equation (3) obtained in the last section.
Similarly, we know that at least one function must have Ch not exceeding the average of all Ch. So, to make sure that at least one function is collision-free (Ch = 0), we can restrict this average to be less than 1:
|
Copyright © 2021 Nitin Verma. All rights reserved.