Bộ lọc của Bloom là xác suất dữ liệu được dùng để kiểm tra xem một yếu tố có phải là một bộ không, và chúng có hiệu quả về không gian và tốc độ, khiến chúng phù hợp với ứng dụng nơi cần thiết thiết để các cấu trúc dữ liệu nhanh được yêu cầu với một số kết quả dương tính đúng đắn.

Cách bộ lọc hai chiều hoạt động

Bộ lọc Bloom sử dụng một dãy nhỏ và nhiều hash chức năng. Khi một phần tử được thêm vào, mỗi phần tử hash sẽ vẽ nó thành một vị trí trong mảng, cài đặt những bit này thành 1. Để kiểm tra xem có một phần tử nào tồn tại, cùng một hàm hath được áp dụng, và các phần tử tương ứng được kiểm tra. Nếu tất cả được đặt thành 1, yếu tố có khả năng là ở tập hợp; nếu bất kỳ số 0 thì chắc chắn không.

Tính toán cho bộ lọc Bloom

Xác suất dương sai phụ thuộc vào kích thước của mảng bit (m), số phần tử chèn (n) và số hàm hash (k). Xác suất (p) của một hàm dương sai có thể xấp xỉ bởi:

p [FLT:] [FLT:] ) [FLT:] [FLT:] [FLT:] ) )

Giá trị giá trị hôn nhân cho k và m có thể giảm thiểu các dương tính sai cho một n. thường, k được chọn là:

k = (m/n) * In 2 )

Dùng trường hợp của bộ lọc đại dương

Bộ lọc Bloom được sử dụng trong nhiều lĩnh vực khác nhau, bao gồm:

  • Hệ thống co sở dữ liệu cho việc thử ra thẻ nhanh
  • lưu tạm trên mạng để giảm việc tra cứu trên đĩa
  • Hệ thống phân phối cho đồng bộ dữ liệu
  • Bảo mật mạng để lọc thư rác

Giới hạn bộ lọc hy vọng

Khi được chọn, bộ lọc Bloom có những giới hạn, chúng có thể tạo ra những kết quả dương tính giả nhưng không phải là âm bản sai. một khi đã được thiết lập lại 1, chúng có thể dẫn đến những sự thiếu chính xác theo thời gian, chúng cũng không thích hợp để xóa các yếu tố cá nhân mà không cần cấu trúc dữ liệu bổ sung.