L'analisi tradizionale dei filtri Bloom è sbagliata?


17

Questo documento afferma che l'analisi tradizionale del tasso di errore nei filtri Bloom non è corretta, quindi fornisce un'analisi lunga e non banale del tasso di errore effettivo. Il documento collegato è stato pubblicato nel 2010, ma ho visto che l'analisi tradizionale dei filtri Bloom ha continuato a essere insegnata in vari corsi di algoritmi e strutture di dati.

L'analisi tradizionale dei filtri Bloom è davvero errata?

Grazie!

Risposte:


36

L'analisi tradizionale va bene. L'analisi "tradizionale" è, se spiegata correttamente, un'approssimazione; si basa sul calcolo del numero previsto di celle pari a 0/1 quando si inseriscono le chiavi nel filtro e quindi si analizza come se quello fosse il numero effettivo. Il punto è che il numero di celle che sono 0 (o 1) sono strettamente concentrate attorno alle loro aspettative, quindi è una buona approssimazione. Questo era ben noto, e posso essere trovato, penso, anche nel mio articolo di indagine con Andrei Broder.

Questo documento afferma che in realtà le prestazioni di un filtro Bloom sono una variabile casuale (corrispondente alla frazione effettiva di 0/1 voci) e se si desidera calcolare quella prestazione esattamente per qualche motivo, è necessario eseguire la combinatoria. Per i filtri più piccoli, vedrai una differenza probabilmente non banale.

Ho parlato con gli autori di questo documento. La loro analisi è buona e buona (anche se direi che non è profonda o nuova); la loro motivazione secondo cui l '"analisi tradizionale è sbagliata" era, credo, esagerata.


15
L'ordine è stato ora ripristinato nell'universo :). E benvenuto in Cstheory, Michael.
Suresh Venkat,

12

Consentitemi di aggiungere alla risposta di Michael che per i filtri Bloom divisi , in cui le funzioni hash hanno intervalli disgiunti, l'analisi tradizionale è effettivamente corretta senza approssimazione o limiti di concentrazione. Questo perché le probabilità di errore per le diverse funzioni hash diventano indipendenti piuttosto che correlate. Il compromesso spazio / errore per i filtri Bloom divisi è essenzialmente lo stesso dei filtri Bloom tradizionali, quindi penso che questa sia una buona variante per l'insegnamento.


2
Sembra la stessa idea dello schizzo count-min, tranne per i filtri Bloom.
templatetypedef
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.