Paritian

Programação

Calculadora de Filtro de Bloom (Tamanho, Funções de Dispersão, Taxa de Falsos Positivos)

Quantos bits, quanta memória e quantas funções de dispersão precisa um filtro de Bloom para guardar um número de elementos com uma taxa de falsos positivos aceitável.

Resultados

Tamanho do vetor de bits 9 585 059 bit
Memória 1,14 MiB
Número de funções de dispersão 7
Bits por elemento 9,59
Taxa de falsos positivos com esse número inteiro de funções 0,01004
Como varia
MemóriaTaxa de falsos positivos que aceita 0,000 – 0,200. Memória: 2,28526 → 0,399331Memória00,511,522,50,0500,1000,1500,200Taxa de falsos positivos que aceita

A linha tracejada marca o valor que escreveu.

O que faz esta ferramenta

Um filtro de Bloom responde a «este elemento está no conjunto?» com «de certeza que não» ou «provavelmente sim», usando um pequeno vetor de bits e várias funções de dispersão. Para n elementos e uma taxa de falsos positivos p, o tamanho ótimo é m = −n ln p ÷ (ln 2)² bits, e o melhor número de funções é k = (m ÷ n) ln 2, o que dá cerca de 1,44 × log₂(1 ÷ p) bits por elemento. Uma taxa de 1 % custa cerca de 9,6 bits por elemento e uma de 0,1 % cerca de 14,4, sejam quais forem os elementos. A taxa de falsos positivos sobe depressa se inserir mais elementos do que o planeado, e um filtro de Bloom normal não permite apagar.

Fórmula

m = −n ln p ÷ (ln 2)² · k = (m ÷ n) ln 2 · p = (1 − e^(−k n ÷ m))^k

Variáveis

SímboloSignificadoUnidade
nnNúmero de elementos a guardar—
ppTaxa de falsos positivos que aceita—
MTamanho do vetor de bitsbit
MBMemóriaMiB
KNúmero de funções de dispersão—
BPBits por elemento—
PRTaxa de falsos positivos com esse número inteiro de funções—

Exemplo resolvido

  • Número de elementos a guardar1 000 000
  • Taxa de falsos positivos que aceita0,01
  • Tamanho do vetor de bits9 585 059 bit
  • Memória1,14 MiB
  • Número de funções de dispersão7
  • Bits por elemento9,59
  • Taxa de falsos positivos com esse número inteiro de funções0,01004

Limitações

  • O resultado é uma estimativa baseada apenas nos valores que introduziu. Situações reais incluem muitas vezes fatores que esta calculadora desconhece.
  • A fórmula assume condições ideais: sem perdas por atrito, sem resistência do ar e sem perdas de rendimento, a não ser que as introduza.