Lecture 2

0. Overview

  • Distinct elements

1. Distinct elements

问题描述:给定一个整数流 (stream of integers),,其中 ,输出目前所见的数字集合大小,即不同的数字个数。

2. Straightforward algorithms

  1. 利用一个长度为 的 bit array,若遇到某整数 ,就将第 bit 置为 1
  2. 将整个整数流出现过的数字存下。

方法 1 占用 bits 空间;方法 2 占用 bits 空间。因此,结合二者我们能得到 ) bits 空间。

3. Randomized approximation

类似 Morris 算法,如果想进一步减少空间占用,可以用精度换空间。即找到 使得 。该算法最早由 Flajolet and Martin 提出,因此称之为 FM。

3.1 Idealized algorithm (FM)

FM 算法执行步骤如下:

  • 选取一个随机函数 (实际上这步无法实现:首先,至少需要 空间来存储 个随机数;其次, 包含这之间的所有实数,计算机无法实现无限精度)
  • 维护一个计数器 ,使得
  • 输出

这个算法的直觉是:如果出现 个不同的数字,那么这些数字应该均匀地分布在 上:

时,在 处;当 时,分别在 处;当 ,分别在 处。那么就可以直接猜测 ,即

Claim 1

证明: 在上课时,最难理解的是 式,它对于所有取值非负的随机变量都成立。 式的离散版本证明在这里,连续版本证明在这里

Claim 2

证明:

  • 服从在区间 上的均匀分布
  • :换元法,

有了 Claim 1Claim 2,就能得到方差

利用 Chebyshev's Inequality:

3.2 FM+

Morris+ 故技重施,用多个 FM 副本取均值:

  1. 初始化 个相互独立的 副本
  2. 上的计数器为
  3. 输出 ,其中

利用 3.1 中的结论,可以直接得到

Claim 3:

利用 Chebyshev's Inequality: Claim 4:

根据 Claim 3,在概率 下: 因此: 其中 可以通过 Taylor's Series 展开得到:

3.3 FM++

Morris++ 故技重施,取多个 FM+ 副本的中位数:

  1. 初始化 个相互独立的、失败率为 的 FM+ 副本
  2. 上的计数器为
  3. 输出集合 的中位数

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 空间获得 ,即估计值 对于某个常数 ,满足

  1. 从某 , 2-wise independent hash family 中随机选取一个 ,其中 是 2 次幂 (power of 2),如果不是,则向上取最近的 2 次幂。
  2. 维护计数器 ,其中 是 least significant bit,但这里的意思实际上是:如果 ,那么
  3. 输出

这里的直觉与 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 构建下面的算法:

  1. 初始化 个 TS 副本:
  2. 从某 , 2-wise independent hash family 中随机选取一个 hash function
  3. 将数字 丢进
  4. 输出 ,其中

定义 为进入 的不同元素个数,则 。Chebyshev's Inequality 描述的是数据分布在 个标准差 () 返回内的概率较高,因此在大概率下,。当 时,

理解本算法的直觉在于:从任意一个 副本中,我们都可以去估算 ,但选择哪个才是最准确的?如果 ,它的估计值可能偏差较大,比如 ;如果 ,那么 TS 就无法准确存储不同的元素,因为它支持完整存储的元素个数存在上限 。而取中间某个 满足 能够真正满足我们的预期。

整个算法使用 个 TS 副本,每个 TS 副本存储 个元素,每个元素占用 bits 空间,因此总体空间复杂度为 ,即 。目前已知的最优算法空间复杂度为

References