מסנני בלום הם מבני נתונים פרוביביליסטיים המשמשים כדי לבדוק אם אלמנט הוא חבר קבוצה.הם יעילים מבחינת מרחב ומהירות, מה שהופך אותם מתאימים ליישומים שבהם נדרשת שאילתות חברות מהירות עם כמה חיובי כוזב מקובל.

איך בלום עובד

מסנן בלום משתמש מעט מערך ופונקציות של hash מרובות.כאשר מוסיפים אלמנט, כל אחד מהם ממפה אותו לעמדה במערך, הגדרת נקודות אלה ל-1. כדי לבדוק אם קיים אלמנט, אותם פונקציות hash מוחל, ואת ה bits המקבילים נבדקים.אם כל נקבעים ל 1, האלמנט הוא כנראה במערכת; אם כל אחד מהם 0, זה בהחלט לא.

משככי לבלמונים

ההסתברות החיובית השגויה תלויה בגודל של מערך ה bit (m), מספר המרכיבים המוכנסים (n), ומספר פונקציות הישאה (k) ההסתברות (p) של חיובי כוזב ניתן להשוות על ידי:

(ב) ויקרא י"ד:2 ויקרא י"ד): "וַיָּבְהִיתִיתִיתִיא עַל עַדְהַבְתָּבְתָּבְתָּבְתָּבְתָּבָר:

ערכים אופטיים עבור k ו m יכולים למזער חיובי כוזב עבור n נתון בדרך כלל, k נבחר כמו:

(ב) ⁇ (ב) ⁇ ⁇ ⁇

שימוש במקרים של פילטרים של Bloom

מסנני בלום משמשים בתחומים שונים, כולל:

  • מערכות מסד נתונים לבדיקת חברות מהירה
  • אינטרנט Cching כדי להפחית את ה- Disk Lookups
  • מערכות דיסטריוט עבור סינכרוניזציה של נתונים
  • אבטחת רשת עבור ספאם filter

גבולות של Bloom Filters

בעוד לסננים יעילים, בלום יש מגבלות.הם יכולים לייצר חיובי כוזב אבל לא שלילי כוזב.רגע שפיסות נקבעות ל-1, הם לא יכולים להיות לאפס, אשר יכול להוביל לאי דיוקים לאורך זמן.הם גם לא מתאימים למחיקת אלמנטים בודדים ללא מבני נתונים נוספים.