Tôi đang tìm một hàm băm qua các bộ H (.) Và một mối quan hệ R (.,.) Để nếu A được bao gồm trong B thì R (H (A), H (B)). Tất nhiên, R (.,.) Phải dễ xác minh (thời gian không đổi) và H (A) nên được tính theo thời gian tuyến tính.
Một ví dụ về H và R là:
- , trong đó k là một số nguyên cố định và h (x) một hàm băm trên các số nguyên.
- R (H (A), H (B)) = ((H (A) & H (B)) == H (A))
Có ví dụ nào tốt không? (tốt là khó xác định nhưng bằng trực giác nếu R (H (A), H (B)) thì whp A được bao gồm trong B).
Chỉnh sửa sau:
- Tôi đang tìm một họ hàm băm. Tôi có nhiều bộ; 3 - 8 yếu tố trong mỗi bộ; 90% trong số họ có 3 hoặc 4 yếu tố. Hàm băm ví dụ tôi đưa ra không được phân phối tốt cho trường hợp này.
- Số bit của H (.) (Trong ví dụ của tôi, k) phải nhỏ (tức là H (.) Phải vừa với một số nguyên hoặc dài).
- Một đặc tính tốt của R là nếu H (.) Có k bit thì R (.,.) Đúng với (3 ^ k - 2 ^ k) / 4 ^ k cặp, tức là. cho rất ít cặp.
- Bộ lọc Bloom đặc biệt tốt cho các bộ lớn. Tôi đã thử sử dụng BF cho vấn đề này, nhưng kết quả tối ưu chỉ có một chức năng.
(crosspost từ stackoverflow , tôi đã không nhận được câu trả lời đủ tốt)