Bloom-suodatin laskurilla

Counting Bloom -suodatin on yleistetty Bloom - suodattimen tietorakenne , jota  käytetään elementtien lisäämiseen ja poistamiseen tietojoukosta. Bloom-suodattimen yleisenä muotona väärät positiiviset ovat mahdollisia, mutta väärät negatiiviset  eivät. Laskevan Bloom-suodattimen esittelivät Fan et ai. (2000 ).

Algoritmin kuvaus

Toisin kuin bloom-suodatin, laskeva bloom-suodatin on m laskuria, joissa on useita bittejä bittien sijaan. Aluksi, kun tietorakenne tallentaa tyhjän joukon , kaikki m laskurit asetetaan nollaan. Käyttäjän on määriteltävä k riippumatonta hash-funktiota h 1 , …, h k , jotka kuvaavat kukin elementti johonkin taulukon m paikasta melko yhtenäisellä tavalla. Kun elementti lisätään tietojoukkoon tai poistetaan siitä, elementtiin käytetään k hash-funktiota ja kaikkia taulukon k sijaintia lisätään tai vähennetään yhdellä. Hakutoiminto tarkistaa, että jokainen tarvittava laskuri on nollasta poikkeava.

Laskurien aritmeettinen ylivuoto on ongelma, ja laskurien tulee olla riittävän suuria, jotta tämä olisi harvinaista. Jos näin tapahtuu, lisäystoimintojen tulisi jättää laskuri suurimmalle mahdolliselle arvolle.

Bloom-suodatin voidaan ajatella laskevana Bloom-suodattimena, jonka laskurin koko on yksi bitti.

Muistiinpanot

Kirjallisuus