Quindi, i filtri Bloom sono piuttosto interessanti: sono set che supportano il controllo dell'appartenenza senza falsi negativi, ma con una piccola possibilità di un falso positivo. Di recente, però, ho desiderato un "filtro Bloom" che garantisca il contrario: niente falsi positivi, ma potenzialmente falsi negativi.
La mia motivazione è semplice: dato un enorme flusso di articoli da elaborare (con duplicati), vorremmo evitare di elaborare gli articoli che abbiamo visto prima. Elaborare un duplicato non fa male, è solo una perdita di tempo. Tuttavia, se trascurassimo di elaborare un elemento, sarebbe catastrofico. Con un "filtro Bloom inverso", è possibile archiviare gli oggetti visti con poco spazio in testa ed evitare di elaborare duplicati con alta probabilità testando l'appartenenza al set.
Eppure non riesco a trovare nulla del genere. I più vicini che ho trovato sono i " filtri Bloom ritoccati ", che consentono di scambiare falsi positivi selezionati con un tasso di falsi negativi più elevato. Non so quanto bene la loro struttura di dati si comporti quando si vogliono rimuovere tutti i falsi positivi.
Qualcuno ha visto qualcosa del genere? :)