L'analyse traditionnelle des filtres Bloom est-elle erronée?

17

Cet article prétend que l'analyse traditionnelle du taux d'erreur dans les filtres Bloom est incorrecte, puis fournit une analyse longue et non triviale du taux d'erreur réel. L'article lié a été publié en 2010, mais j'ai vu l'analyse traditionnelle des filtres Bloom continuer à être enseignée dans divers cours d'algorithmes et de structures de données.

L'analyse traditionnelle des filtres Bloom est-elle vraiment incorrecte?

Merci!

templatetypedef
la source

Réponses:

36

L'analyse traditionnelle est très bien. L'analyse "traditionnelle" est, si elle est expliquée correctement, une approximation; il est basé sur le calcul du nombre attendu de cellules qui sont 0/1 lorsque vous hachez les clés dans le filtre, puis sur l'analyse comme si c'était le nombre réel. Le fait est que le nombre de cellules qui sont 0 (ou 1) sont étroitement concentrées autour de leur attente, c'est donc une approximation fine. Cela était bien connu, et on le retrouve, je pense, même dans mon article d'enquête avec Andrei Broder.

Cet article dit que vraiment les performances d'un filtre Bloom sont une variable aléatoire (correspondant à la fraction réelle de 0/1 entrées), et si vous voulez calculer ces performances exactement pour une raison quelconque, vous devez faire la combinatoire. Pour les filtres plus petits, vous verrez une différence sans doute non triviale.

J'ai parlé avec les auteurs de cet article. Leur analyse est très bien (même si je dirais que ce n'est pas profond ou nouveau); leur motivation selon laquelle "l'analyse traditionnelle est erronée" était, je pense, exagérée.

Michael Mitzenmacher
la source
15
L'ordre est maintenant rétabli dans l'univers :). Et bienvenue dans cstheory, Michael.
Suresh Venkat
12

Permettez-moi d'ajouter à la réponse de Michael que pour les filtres Bloom divisés , où les fonctions de hachage ont des plages disjointes, l'analyse traditionnelle est en effet correcte sans approximation ni aucune limite de concentration. En effet, les probabilités d'erreur pour différentes fonctions de hachage deviennent indépendantes plutôt que corrélées. Le compromis espace / erreur pour les filtres Bloom divisés est essentiellement le même que pour les filtres Bloom traditionnels, donc je pense que c'est une bonne variante pour l'enseignement.

Rasmus Pagh
la source
2
Cela semble être la même idée que l'esquisse en nombre de minutes, sauf avec les filtres Bloom.
templatetypedef