Bloom-Szűrő

A Bloom-szűrő egy olyan adatszerkezet, amely lehetővé teszi a számítógépek számára, hogy megnézzék, hogy egy adott elem előfordul-e egy halmazban. A Bloom-szűrők ehhez hash-függvényeket használnak. Minden egyes hozzáadott elemhez egy hash-értéket számolnak ki. Amikor egy új elemet adunk hozzá, annak hash-értékét összehasonlítjuk a halmaz többi elemének értékével. A Bloom-szűrő egy valószínűségi adatszerkezet. Lehetséges, hogy hamis pozitív eredményt kapjunk, de hamis negatív eredményt nem. Más szóval, egy lekérdezés vagy azt adja vissza, hogy "valószínűleg benne van a halmazban", vagy azt, hogy "biztosan nincs benne a halmazban". A halmazba elemeket lehet hozzáadni, de eltávolítani nem. Minden egyes hozzáadott elemmel nő a hamis pozitív eredmény valószínűsége.

Edward Bloom 1970-ben javasolta a Bloom-szűrőt. A cikkben Bloom feltételezi, hogy létezik egy algoritmus a sor végén lévő szavak kötőjeles szűrésére. A példa szerint a legtöbb szónak egyszerű kötőjeles mintája van. A szavak körülbelül 10%-a azonban időigényes keresést igényel a helyes szabály lekérdezéséhez. Esetében körülbelül 500 000 szó kötőjelezéséről volt szó. Úgy látta, hogy a "normál" hibamentes hashing technikák használata, a kötőjelképzési minták tárolása sok memóriát igényelne. Úgy találta, hogy az ő technikáját használva a legtöbb keresést ki tudja küszöbölni. Például egy olyan hash-terület, amely csak 15%-a az ideális hibamentes hash-hez szükséges méretnek, még mindig kiküszöböli a lemezelérések 85%-át.

Általánosságban elmondható, hogy elemenként kevesebb mint 10 bit szükséges 1%-os hamis pozitív valószínűséghez, függetlenül a halmaz elemeinek méretétől vagy számától.

Kérdések és válaszok

K: Mi az a Bloom-szűrő?


V: A Bloom-szűrő egy olyan adatszerkezet, amely lehetővé teszi a számítógépek számára, hogy megnézzék, előfordul-e egy adott elem egy halmazban. Ehhez hash-függvényeket használ, kiszámítva minden egyes hozzáadott elem hash-értékét, és összehasonlítva azt a halmaz többi elemével.

K: Milyen típusú adatszerkezet a Bloom-szűrő?


V: A Bloom-szűrő valószínűségi adatszerkezet, ami azt jelenti, hogy előfordulhat, hogy hamis pozitív eredményt kapunk, de hamis negatív eredményt nem.

K: Ki javasolta a Bloom-szűrőt?


V: Edward Bloom 1970-ben javasolta a Bloom-szűrőt.

K: Mi volt Edward Bloom példája a technikája használatára?


V: Edward példája körülbelül 500 000 szó kötőjeles keresése volt; úgy találta, hogy a technikáját használva a legtöbb keresést ki tudja küszöbölni, és 15%-kal csökkenti a lemezeléréseket.

K: Hány bit szükséges elemenként 1%-os hamis pozitív valószínűséghez?


V: Elemenként kevesebb mint 10 bit szükséges az 1%-os hamis pozitív valószínűséghez, függetlenül a halmaz elemeinek méretétől vagy számától.

K: Lehetséges-e eltávolítani elemeket egy bloom szűrőből, miután azokat hozzáadtuk?


V: Nem, elemeket csak hozzáadni lehet a halmazhoz, de eltávolítani nem.

K: Több elem hozzáadása növeli vagy csökkenti a hamis pozitív eredmény valószínűségét?


V: Több elem hozzáadása növeli a hamis pozitív eredmény valószínűségét.

AlegsaOnline.com - 2020 / 2023 - License CC3