So Bloom Filter sind ziemlich cool - sie sind Sätze , dass die Unterstützung der Mitglieder ohne falsche Negative Kontrolle, aber eine kleine Chance eines falsch positiven Ergebnisses . Kürzlich wollte ich jedoch einen "Bloom-Filter", der das Gegenteil garantiert: keine falschen Positiven, sondern potenziell falsche Negative.
Meine Motivation ist einfach: Angesichts einer großen Anzahl von zu verarbeitenden Elementen (mit Duplikaten) möchten wir vermeiden, Elemente zu verarbeiten, die wir zuvor gesehen haben. Es tut nicht weh, ein Duplikat zu verarbeiten, es ist nur Zeitverschwendung. Wenn wir es versäumen, ein Element zu verarbeiten, wäre dies katastrophal. Mit einem "Reverse Bloom-Filter" könnte man die mit geringem Platzaufwand gesehenen Objekte speichern und vermeiden, dass Duplikate mit hoher Wahrscheinlichkeit verarbeitet werden, indem man auf Mitgliedschaft in der Gruppe prüft.
Trotzdem kann ich nichts dergleichen finden. Das nächstliegende, was ich gefunden habe, sind " retuschierte Bloom-Filter ", mit denen man ausgewählte falsch-positive Ergebnisse gegen eine höhere falsch-negative Rate eintauschen kann. Ich weiß jedoch nicht, wie gut ihre Datenstruktur funktioniert, wenn man alle Fehlalarme entfernen möchte .
Hat jemand so etwas gesehen? :)