Perfect hash functions give unique "names" to arbitrary keys requiring only a few bits per key. This is an essential building block in applications like static hash tables, databases, or bioinformatics. This paper introduces the PHast approach that combines the fastest available queries, very fast construction, and good space consumption (below 2 bits per key). PHast improves bucket-placement which first hashes each key k to a bucket, and then looks for the bucket seed s such that a placement function maps pairs (s,k) in a collision-free way. PHast can use small-range hash functions with linear mapping, fixed-width encoding of seeds, and parallel construction. This is achieved using small overlapping slices of allowed values and bumping to handle unsuccessful seed assignment. A variant we called PHast+ uses additive placement, which enables bit-parallel seed searching, speeding up the construction by an order of magnitude.
Las funciones hash perfectas asignan "nombres" únicos a claves arbitrarias requiriendo solo algunos bits por clave. Este es un componente esencial en aplicaciones como tablas hash estáticas, bases de datos o bioinformática. Este artículo introduce el enfoque PHast que combina las consultas más rápidas disponibles, construcción muy rápida y buen consumo de espacio (por debajo de 2 bits por clave). PHast mejora la colocación de cubetas, que primero hace hash de cada clave k en una cubeta, y luego busca la semilla de cubeta s tal que una función de colocación mapea pares (s,k) de manera libre de colisiones. PHast puede usar funciones hash de rango pequeño con mapeo lineal, codificación de semillas de ancho fijo y construcción paralela. Esto se logra usando pequeños segmentos superpuestos de valores permitidos y bumping para manejar asignaciones de semillas infructuosas. Una variante que llamamos PHast+ usa colocación aditiva, que permite búsqueda de semillas bit-paralela, acelerando la construcción por un orden de magnitud.
Una Función Hash Perfecta (PHF) es una función inyectiva que mapea un conjunto de claves {k₁, ..., kₙ} a {0, ..., m-1}. Cuando m = n, se denomina Función Hash Perfecta Mínima (MPHF). Este es un componente importante en aplicaciones como bases de datos, índices de texto e bioinformática.
Desafío de Optimización Multiobjetivo: El diseño de MPHF enfrenta un problema de optimización multiobjetivo entre consumo de espacio, tiempo de construcción y tiempo de consulta
Límite Teórico Inferior: El límite teórico inferior de MPHF es log₂ e ≈ 1.44 bits por clave
Necesidades Prácticas: En la práctica, PHF se usa comúnmente para acelerar estructuras de datos estáticas, por lo que las consultas rápidas son críticas
Métodos de Colocación de Cubetas: CHD, FCH, PTHash, PHOBIC requieren funciones de asignación de cubetas no lineales o codificación de semillas de longitud variable, afectando la velocidad de consulta
Métodos de División Recursiva: Aunque tienen alta eficiencia de espacio, el tiempo de consulta es más lento, requiriendo decodificación de información de navegación de longitud variable
Métodos de Huella Digital: Requieren al menos e bits por clave, y las consultas necesitan operaciones de rank en vectores de bits
Sobrecarga de Construcción Paralela: Los métodos existentes requieren pasos de consulta adicionales para recuperar valores de desplazamiento
Mapeo Lineal de Cubetas: A través de mapeo lineal a pequeños segmentos superpuestos, evita asignación de cubetas no lineal, realizando construcción multihilo amigable con caché
Mecanismo de Bumping: Permite usar funciones hash de rango pequeño y codificación de semillas de ancho fijo, evitando búsqueda local compleja
Asignación Heurística de Semillas: Reduce el consumo de espacio seleccionando semillas que ocupan el mínimo de valores de función
Variante PHast+: Usa función de colocación aditiva para implementar búsqueda de semillas bit-paralela, mejorando la velocidad de construcción por un orden de magnitud
Evaluación Experimental Integral: Comparación detallada de rendimiento con métodos existentes
PHast evita codificación de longitud variable y búsqueda local compleja mediante el mecanismo de bumping, mientras mantiene la simplicidad de asignación lineal de cubetas.
Fredman & Komlós: Límite teórico inferior de función hash perfecta
Belazzougui et al.: Trabajo fundamental en métodos de colocación de cubetas
El artículo PHast demuestra que en el campo de la ingeniería de algoritmos, mediante una comprensión profunda de la naturaleza del problema y las características del hardware moderno, los métodos simples, después de una optimización cuidadosa, pueden alcanzar e incluso superar el rendimiento de métodos complejos. Esto proporciona una perspectiva importante para el diseño de estructuras de datos: a veces, la clave para resolver problemas no es aumentar la complejidad, sino encontrar la dirección correcta de simplificación.