Streaming:Distinct elements

問題:Distinct elements

  • 問題敘述:有 m 個數字輸入,每個數字介於[1, n],希望可以輸出出現的「個別數字」

直觀方法

  • n bits 的陣列,如果第i個進入就翻第 的 bit 成1

  • 儲存整個 stream,總計 m(lgn) 的bits

※ 在這兩種直觀方法,至少需要 O(min{n, mlgn}) 個bits

隨機估計

  • 我們設定輸出為 ,並建立不等式:
  • 該方法由 Flajolet & Martin 提出,簡稱 FM
  • 演算法:

    • 挑選隨機函數
    • 獲得計算器
    • 輸出的值為
  • Claim 1. 。直觀上,當t=1時,期望值為1/2,t=2,期望值會變為1/3,平均隨機分布。

  • Claim 2.

※這個時候,「FM」 還沒有任何結論

FM+

  • 演算法
    • 產生 個獨立的 FM
    • FM 產生的值
    • 輸出的值為 ,
  • (不變), (降低估計的變異數)
  • Claim 3.

  • Claim 4.

※ 根據 Claim 3 ,邊界的

※ 這時已經可以透過控制 FM+ 的數量,限定出常數倍的「 」的邊界

FM++

  • 演算法

    • 產生 個獨立的 FM+
    • 輸出的值為  的中位數
  • Claim 5.

    • 若是中位數失敗,則代表有過半數的 都失敗 →
    • (平均有 的失敗機率)
      • (use Chernoff)

※ (→) 可以推出需要多少 s 個 FM++ 才能符合邊界

FM++空間

  • 不考慮 FM 裡的 h 空間,總共需要
  • 個 FM+,每個需要 空間

(補充)

k-wise independent function

  • 定義:當一個函數家族 family :[a] → [b] 是 「k-wise independent」,指不重複 可以對應到

  • 代表意義:任意 k 組 i → j 的映射函數被選中機率相等
  • 例子1 為在每個 k 值, 是 [a] → [b]的映射函數且具有「k-wise independent」特性的函數集合。

    • ,代表 需要 的bits儲存
  • 例子2:令 (質數的次方)。 是指最高次方 且固定係數的多項式集合。

    • ,最多有k項,每項的值 ,代表 需要 的bits儲存
    • 也是 「k-wise independent」

Non-idealized FM

  • 原因:idealized FM,隨機數值取無理數且不儲存stream裡的值

首先,我們使用 O(1) 的複雜度估計 O(lg n) bits,例如使估計值 滿足 常數

  • 演算法:
    • 從 2-wise family 挑選出一個函數
    • 使
    • 輸出的值為
  • 推導:

    • 邊界

      • 現在令
        • (using Chebyshev)
        • 證明:比 位一個都沒有出現的機率很低
      • 現在令

        • (using Markov)
        • 證明:比 位以上出現的機率很低
  • 結論:可以將  出現的範圍限定在 兩個常數邊界 ,可以有效估計最大  與 的誤差


Refine to 1+ε

  • Trivial Solution:演算法 "TS" 儲存前 不重複元素。當 時會保證一定正確。
  • 演算法:
    • 產生
    • 從 2-wise family 選擇一個函數
    • 將 i 輸入進
    • 輸出的值為  當
  • 推導
    • 裡不重複元素的個數
    • 在還不錯的機率 (using Chebyshev)
  • 需要的空間:

results for ""

    No results matching ""