Ya hay algunas excelentes respuestas a esta pregunta, pero voy a suponer que mi Layman está más interesado en lo que el filtro puede hacer por él en lugar de cómo funciona.
Esencialmente, un filtro Bloom es una forma muy rápida de verificar si algo está en un conjunto de datos que da una de dos respuestas: “x definitivamente no está en este conjunto de datos” o “x podría estar en este conjunto de datos”. En la superficie, puede no ser evidente por qué esto es útil, pero si está haciendo muchas consultas en un conjunto de datos grande pero escaso (es decir, uno en el que es mucho más probable que no encuentre nada que encontrar algo para un consulta dada) un filtro de floración proporciona una optimización muy útil, lo que significa que la mayoría de las consultas pueden devolver “no encontrado” sin tener que comenzar a buscar en sus índices.
El ejemplo de libro de texto de cuándo es útil es una lista de bloqueo de sitios web. Puede haber una lista muy grande de sitios web bloqueados que ascienden a millones, y cada cliente en la red necesita consultar esta lista cada vez que solicita una nueva página. Para la gran mayoría de las consultas, la respuesta será “este sitio no está bloqueado”, por lo que agregar un filtro de floración reducirá sustancialmente la carga de trabajo de su base de datos, ya que en la gran mayoría de los casos podrá devolver “no coincidencia” sin tener que consultar la base de datos.
- Soy un estudiante de estadística que se especializa en informática. ¿Qué recursos en Python necesito para llevar a cabo pruebas de hipótesis, inferencia estadística y gráficos?
- Cómo explicar la organización de un microprocesador / microordenador
- ¿Cuál es la diferencia en informática, matemáticas e informática en los IIT?
- ¿Qué otras cosas debo probar aparte de programar o codificar?
- Tecnología: ¿Es posible identificar "objetos" en imágenes tomadas desde teléfonos inteligentes?
EDITAR: Según lo solicitado, también intentaré una explicación muy simple de cómo funcionan. Un filtro de Bloom es muy similar a un mapa de hash (si no sabe qué es un mapa de hash, entonces probablemente debería aprender sobre ellos antes de aprender sobre los filtros de Bloom), pero si bien es importante al implementar un mapa de hash, evite colisiones en su función hash con un filtro Bloom espera colisiones. Cuando llega una consulta para ser verificada, aplica su función hash y verifica si el valor correspondiente está configurado en el filtro. Si no encuentra nada, puede estar 100% seguro de que su consulta no está en el conjunto (porque si fuera el hash de sus datos estaría presente). Si encuentra algo, entonces no puede estar seguro de si es lo que estaba buscando, o simplemente una colisión hash con otro valor, lo que significa que debe realizar una verificación adecuada en su base de datos.