Lecture 2
0. Overview
1. Distinct elements
问题描述:给定一个整数流 (stream of integers),,其中 ,输出目前所见的数字集合大小,即不同的数字个数。
2. Straightforward algorithms
- 利用一个长度为 的 bit array,若遇到某整数 ,就将第 bit 置为 1
- 将整个整数流出现过的数字存下。
方法 1 占用 bits 空间;方法 2 占用 bits 空间。因此,结合二者我们能得到 ) bits 空间。
3. Randomized approximation
类似 Morris 算法,如果想进一步减少空间占用,可以用精度换空间。即找到 使得 。该算法最早由 Flajolet and Martin 提出,因此称之为 FM。
3.1 Idealized algorithm (FM)
FM 算法执行步骤如下:
- 选取一个随机函数 (实际上这步无法实现:首先,至少需要 空间来存储 个随机数;其次, 包含这之间的所有实数,计算机无法实现无限精度)
- 维护一个计数器 ,使得
- 输出
这个算法的直觉是:如果出现 个不同的数字,那么这些数字应该均匀地分布在 上:
当 时,在 处;当 时,分别在 和 处;当 ,分别在 处。那么就可以直接猜测 ,即 。
Claim 1:
证明: 在上课时,最难理解的是 式,它对于所有取值非负的随机变量都成立。 式的离散版本证明在这里,连续版本证明在这里。
Claim 2:
证明:
有了 Claim 1 和 Claim 2,就能得到方差 。
利用 Chebyshev's Inequality:
3.2 FM+
Morris+ 故技重施,用多个 FM 副本取均值:
- 初始化 个相互独立的 副本
- 记 上的计数器为
- 输出 ,其中
利用 3.1 中的结论,可以直接得到 ,。
Claim 3:
利用 Chebyshev's Inequality: Claim 4:
根据 Claim 3,在概率 下: 因此: 其中 可以通过 Taylor's Series 展开得到:
3.3 FM++
Morris++ 故技重施,取多个 FM+ 副本的中位数:
- 初始化 个相互独立的、失败率为 的 FM+ 副本
- 记 上的计数器为
- 输出集合 的中位数
Claim 5:
证明:定义指示变量 如果 失效,意味着超过半数的 实例失效,即: 由于每个 副本的失败率为 ,那么 的期望 于是调整 式,得到: 假设 , 式可转化为: 利用 Chernoff Inequality 得到: 一个 FM++ 需要 个 FM+ 副本,每个副本需要消耗 空间,因此空间复杂度总计为 。
3.4 Non-idealized FM
接下来,我们看如何构造非理想化的 FM 算法。
3.4.1 k-wise independent functions
定义:一个 hash family ,其中任意 会将集合 中的元素映射到集合 中。如果 满足对 以及 : 即 个元素和哈希值间相互独立。
例 1: 上的所有 hash function 共同组成的 hash family,对任意 k 满足 k-wise independent。整个 hash family 需要存储 种映射关系,因此它的空间占用为 。
例 2:设 ,其中 是一个素数幂 (prime power),即 ,定义 为所有系数属于 的 次多项式集合。整个 hash family 需要存储 ,因此它的空间占用为 。可以通过 the fundamental theorem of algebra 证明 满足 k-wise independent。
3.4.2 Non-idealized FM
我们先利用 bits 空间获得 的 ,即估计值 对于某个常数 ,满足 。
- 从某 , 2-wise independent hash family 中随机选取一个 ,其中 是 2 次幂 (power of 2),如果不是,则向上取最近的 2 次幂。
- 维护计数器 ,其中 是 least significant bit,但这里的意思实际上是:如果 ,那么
- 输出
这里的直觉与 Idealized FM 类似,不再赘述。对于某个固定的值 ,定义
以及指示变量: 那么 ,由于 意味着 ,即前 位必须为 0,第 位必须为 1,那么 ,因此 ,类似地: 以及: 其中 属于 2-wise hash family,因此 。我们从 附近的两个值 和 ,来分析估计的准确度。
对于 ,有 ,那么: 式通过 Chebyshev's Inequality 得到。通过以上推导可以得出结论: 过大的概率很小,更精确地说 ,即 。
对于 ,有 ,根据 Markov's Inequality 可以得到: 通过以上推导可以得出结论: 过小的概率很小,更精确地说,,即 。至此,我们证明了估计值 对于某个常数 ,满足 ,即 是 的 constant approximation。
3.4.3 Refine to
定义 TS (trivial solution):算法 TS 完整地存储前 个不同元素,它能保证当 时,计数正确。于是我们可以用 TS 构建下面的算法:
- 初始化 个 TS 副本:
- 从某 , 2-wise independent hash family 中随机选取一个 hash function
- 将数字 丢进 中
- 输出 ,其中
定义 为进入 的不同元素个数,则 。Chebyshev's Inequality 描述的是数据分布在 个标准差 () 返回内的概率较高,因此在大概率下,。当 时,。
理解本算法的直觉在于:从任意一个 副本中,我们都可以去估算 ,但选择哪个才是最准确的?如果 ,它的估计值可能偏差较大,比如 ;如果 ,那么 TS 就无法准确存储不同的元素,因为它支持完整存储的元素个数存在上限 。而取中间某个 满足 能够真正满足我们的预期。
整个算法使用 个 TS 副本,每个 TS 副本存储 个元素,每个元素占用 bits 空间,因此总体空间复杂度为 ,即 。目前已知的最优算法空间复杂度为 。
References