Computer >> Máy Tính >  >> Lập trình >> Lập trình

Chỉ số Hiệu suất

Có ba số liệu hiệu suất cho bộ lọc Bloom có ​​thể được trao đổi:tính toán hoặc thời gian thực thi (tương ứng với số k của hàm băm), kích thước của bộ lọc (tương ứng với số m bit) và xác suất lỗi (tương ứng với tỷ lệ dương tính giả

f =(1 - p) k)

Bộ lọc Bloom (BF) giới thiệu khả năng chịu lỗi để nâng cao hiệu suất tra cứu và hiệu quả về không gian. Bộ lọc Bloom trả về true hoặc false. Do đó, kết quả của bộ lọc Bloom nằm dưới bất kỳ một trong các lớp nào sau đây:dương tính đúng, dương tính giả, âm tính đúng và âm tính giả. Số lượng tối đa mà bộ lọc Bloom chứa dương tính giả. Dương tính giả cũng như âm tính giả gây ra chi phí cho một hệ thống. Bộ lọc Bloom thực hiện một mảng để lưu trữ thông tin của một phần tử. Giá trị dương sai được định nghĩa như sau:nếu bộ lọc Bloom trả về giá trị true khi giữ phần tử. Tương tự, âm sai cũng được định nghĩa như sau:bộ lọc Bloom trả về giá trị false khi giữ phần tử. Do đó, bộ lọc Bloom thuộc về cấu trúc dữ liệu xác suất.

Kích thước bộ lọc Bloom và số lượng hàm băm

Chúng tôi hiểu rằng nếu kích thước của bộ lọc bloom quá nhỏ, tất cả các trường bit sẽ sớm chuyển thành "1" và sau đó bộ lọc bloom của chúng tôi sẽ trả về "false positive" cho mọi giá trị đã nhập. Vì vậy, kích thước của bộ lọc nở là một quyết định rất quan trọng hoặc quan trọng được thực hiện. Một bộ lọc lớn hơn bao gồm ít kết quả dương tính giả hơn và một bộ lọc nhỏ hơn.

Vì vậy, chúng tôi có thể kết luận rằng kích thước của bộ lọc bloom hoàn toàn dựa trên "tỷ lệ lỗi dương tính giả".

Một tham số quan trọng khác là xác định số lượng hàm băm mà chúng ta sẽ sử dụng. Chúng tôi triển khai càng nhiều hàm băm, bộ lọc nở càng chậm và đầy nhanh hơn. Tuy nhiên, nếu chúng ta có quá ít, chúng ta có thể bị ảnh hưởng do nhiều kết quả dương tính giả.

Chúng tôi có thể tính toán tỷ lệ lỗi dương sai, p, dựa trên kích thước của bộ lọc, m, số hàm băm, k và số phần tử được chèn, n, với công thức

p≈ (1-e (-kn / m) ) k

Chúng tôi thực sự cần phải xác định m và k của chúng tôi sẽ là gì. Vì vậy, nếu chúng ta tự đặt hoặc sửa một giá trị dung sai p và số phần tử n, chúng ta có thể triển khai các công thức sau để tính toán các tham số này

m =(- n ln p) / (ln 2) 2

k =(m / n) * (ln 2)