Table of Contents
Bloom suodattimet ovat probabilistisia data rakenteita käytetään testata, onko elementti on joukko. Ne ovat tehokkaita tilaa ja nopeutta, joten ne soveltuvat sovelluksiin, joissa nopea jäsenyys kyselyt tarvitaan joitakin hyväksyttäviä vääriä positiivisia.
Miten Bloom- suotimet toimivat
Bloom-suodatin käyttää bittiä ja useita hash-toimintoja. Kun elementti lisätään, jokainen hash-toiminto kartoittaa sen asemaan array, jossa nämä bitit 1. Tarkistaaksesi, onko elementti olemassa, samat hash-toiminnot sovelletaan ja vastaavat bitit tutkitaan. Jos kaikki on asetettu 1, elementti on todennäköisesti asetettuna; jos jokin on 0, se ei ole.
Bloom- suotimien laskelmat
Väärä positiivinen todennäköisyys riippuu bittien matriisin koosta (m), lisättyjen elementtien määrästä (n) ja hash-toimintojen määrästä (k). Väärän positiivisen toiminnon todennäköisyys (p) voidaan arvioida seuraavasti:
]p ... (1 - e ]]-kn/m........................................................................................................................................................................................................................
Optimaaliset arvot k:lle ja m:lle voivat minimoida vääriä positiivisia tuloksia tietylle n:lle. Tyypillisesti k valitaan seuraavasti:
]k = (m/n) * n 2[
Käytä Bloom- suotimia
Kukkia on käytetty eri aloilla, kuten:
- Tietokantajärjestelmät nopean jäsenkokeilun varmistamiseksi
- Web välimuistin vähentää levyn hakuja
- Jaetut järjestelmät tietojen synkronointia varten
- Verkkoturvallisuus roskapostin suodattamiseen
Bloom-suotimien rajoitukset
Vaikka Bloom-suodattimilla onkin tehokkaita rajoituksia. Ne voivat tuottaa vääriä positiivisia mutta eivät vääriä negatiivisia. Kun bitit on asetettu 1:een, niitä ei voi nollata, mikä voi ajan mittaan johtaa epätarkkuuksiin. Ne eivät myöskään sovellu yksittäisten elementtien poistamiseen ilman lisätietorakenteita.