Tak więc filtry Bloom są całkiem fajne - są zestawami, które obsługują sprawdzanie członkostwa bez fałszywych negatywów, ale z niewielką szansą na fałszywy pozytyw. Ostatnio jednak chciałem mieć „filtr Blooma”, który gwarantuje coś przeciwnego: żadnych fałszywych alarmów, ale potencjalnie fałszywych negatywów.
Moja motywacja jest prosta: biorąc pod uwagę ogromny strumień przedmiotów do przetworzenia (z duplikatami), chcielibyśmy uniknąć przetwarzania przedmiotów, które widzieliśmy wcześniej. Przetwarzanie duplikatu nie zaszkodzi, to tylko strata czasu. Gdybyśmy jednak zaniedbali przetwarzanie elementu, byłoby to katastrofalne. Dzięki „odwrotnemu filtrowi Blooma” można przechowywać widoczne przedmioty przy niewielkim nakładzie miejsca i unikać przetwarzania duplikatów z dużym prawdopodobieństwem, testując członkostwo w zestawie.
Jednak nie mogę znaleźć czegoś takiego. Najbliższe, jakie znalazłem, to „ wyretuszowane filtry Blooma ”, które pozwalają handlować wybranymi fałszywie dodatnimi wynikami w celu uzyskania wyższego wskaźnika fałszywie ujemnych wyników. Nie wiem jednak, jak dobrze radzi sobie ich struktura danych, gdy chce się usunąć wszystkie fałszywe alarmy.
Ktoś widział coś takiego? :)