Bloom filtr s počítáním

Filtr Counting Bloom je zobecněná datová struktura Bloomova filtru ,  která se používá k přidávání a odstraňování prvků v sadě dat. Jako zobecněná forma Bloomova filtru jsou možné falešně pozitivní výsledky , ale nikoli falešně negativní  . Počítací Bloomův filtr zavedli Fan et al. (2000 ).

Popis algoritmu

Na rozdíl od Bloomova filtru je počítací Bloomův filtr m čítačů s více bity místo bitů. Zpočátku, když datová struktura ukládá prázdnou množinu , všech m čítačů je nastaveno na nulu. Uživatel musí definovat k nezávislých hašovacích funkcí h 1 , …, h k , mapujících každý prvek na jednu z m pozic v poli poměrně jednotným způsobem. Když je prvek přidán do datové množiny nebo z ní odebrán, k hash funkcí se použije na prvek a všech k míst v poli se zvýší nebo sníží o jednu. Operace vyhledávání zkontroluje, zda je každý z požadovaných čítačů nenulový.

Aritmetické přetečení čítačů je problém a čítače by měly být dostatečně velké, aby to bylo vzácné. Pokud k tomu dojde, operace přírůstku by měly ponechat čítač na maximální možné hodnotě.

Bloom filtr si lze představit jako počítací Bloom filtr s velikostí čítače jeden bit.

Poznámky

Literatura