Table of Contents
Filter Bloom adalah struktur data probabilistik yang digunakan untuk menguji apakah suatu elemen adalah anggota dari sebuah set. Mereka efisien dalam hal ruang dan kecepatan, membuatnya cocok untuk aplikasi di mana query keanggotaan cepat diperlukan dengan beberapa positif palsu yang dapat diterima.
Keterampilan Berkembangbiak
Sebuah filter Bloom menggunakan fungsi bit array dan multiple hash. Ketika sebuah elemen ditambahkan, setiap fungsi hash memetakannya ke posisi dalam array, mengatur bit-bit tersebut ke 1. Untuk memeriksa apakah sebuah elemen ada, fungsi hash yang sama diterapkan, dan bit yang bersangkutan diperiksa. Jika semua ditetapkan ke 1, elemen tersebut kemungkinan dalam set; jika ada 0, pasti tidak.
Penghitungan Ekskamulasi untuk Penapis Bloom
Kemungkinan positif palsu bergantung pada ukuran bit array (m), jumlah elemen yang dimasukkan (n), dan jumlah fungsi hash (k). Kemungkinan (p) dari positif palsu dapat dikira dengan:
[[GALALT:0]]p ⁇ (1 - e]-kn/m[]k
Nilai optimum hewan untuk k dan m dapat meminimalkan positif palsu untuk n. Biasanya, k dipilih sebagai:
[[LRT:0]]k = (m/n) * Dalam 2
Zunanana Gunakan Kasus Penapis Bloom
Filter flat flat digunakan dalam berbagai bidang, termasuk:
- Sistem basis data untuk pengujian keanggotaan cepat
- Web quina caching untuk mengurangi lookup disk
- Sistem terdistribusi untuk sinkronisasi data
- Keamanan jaringan untuk penyaringan spam
Batasan Penapis Mekar
Meskipun efisien, filter Bloom memiliki keterbatasan, mereka dapat menghasilkan positif palsu tetapi bukan negatif palsu. setelah bit ditetapkan ke 1, mereka tidak dapat disetel ulang, yang dapat menyebabkan ketidakakuratan seiring waktu. mereka juga tidak cocok untuk menghapus elemen individu tanpa struktur data tambahan.