Introducción
- En el otoño de 2021, Andrew Krapivin, estudiante de pregrado en Rutgers University, se encontró con un artículo que cambiaría su vida.
- El artículo trataba sobre "punteros pequeños" que apuntan a información en la memoria de una computadora.
- Krapivin ideó una forma de hacer más pequeños los punteros para reducir el consumo de memoria.
Descubrimiento de una nueva tabla hash
- Krapivin realizó experimentos usando tablas hash, un método común para almacenar datos.
- Durante los experimentos, Krapivin terminó inventando un nuevo tipo de tabla hash que funciona más rápido que las existentes.
- Este hallazgo produjo un resultado que derriba una conjetura de 40 años en ciencia de datos.
La importancia de las tablas hash
- Las tablas hash son una de las estructuras de datos más antiguas en ciencias de la computación y ofrecen eficiencia para el almacenamiento de datos.
- Las tablas hash están diseñadas para poder realizar tres funciones: buscar, eliminar e insertar elementos.
La conjetura de Yao y su refutación
- En 1985, el científico computacional Andrew Yao propuso una conjetura sobre cómo encontrar elementos en el peor caso dentro de tablas hash con ciertas propiedades.
- La nueva tabla hash de Krapivin refuta la conjetura de Yao y demuestra que el tiempo necesario para consultas e inserciones en el peor caso es proporcional a
(log x)².
Nuevo hallazgo sobre el tiempo promedio de consulta
- Krapivin y su equipo mostraron que, en tablas hash no codiciosas, el tiempo promedio de consulta no depende de
x.
- Esto significa que se puede lograr un tiempo promedio de consulta constante sin importar qué tan llena esté la tabla hash.
Conclusión
- Esta investigación profundiza la comprensión de las tablas hash y podría conducir a aplicaciones prácticas.
- Este entendimiento de las estructuras de datos puede convertirse en la base de futuras mejoras prácticas.
1 comentarios
Comentarios en Hacker News
Krapivin logró un avance sin conocer la conjetura de Yao
Es un gran resultado, pero parece que debería llamarse una conjetura de ciencias de la computación
Me pregunto si alguien conoce un repositorio de GitHub con esta implementación
Está bien, pero el estilo de "celebrificación" de este artículo me incomoda un poco
En la nueva tabla hash, el tiempo requerido en el peor caso para consultas e inserciones es proporcional a (log x)²
Leer este artículo es como leer una explicación del problema de Monty Hall
Es una buena prueba reciente
Me pregunto si alguien tiene una implementación sencilla de 'Tiny pointers'
Como siempre decía el villano de <i>Scooby Doo</i>:
Hojeando el artículo, parece que la principal diferencia que usaron es que el algoritmo de inserción de la tabla hash busca más lejos en vez de llenar de forma codiciosa el primer espacio vacío
Es un resultado teórico interesante, pero en la práctica parece que el "truco" actual de asignar una tabla más grande de la necesaria sería una mejor solución