The best-known fully retroactive priority queue costs $O(\log^2 m \log \log m)$ time per operation, where $m$ is the number of operations performed on the data structure. In contrast, standard (non-retroactive) and partially retroactive priority queues can cost $O(\log m)$ time per operation. So far, it is unknown whether this $O(\log m)$ bound can be achieved for fully retroactive priority queues.
In this work, we study a restricted variant of priority queues known as monotonic priority queues. First, we show that finding the minimum in a retroactive monotonic priority queue is a special case of the range-searching problem. Then, we design a fully retroactive monotonic priority queue with a cost of $O(\log m + T(m))$ time per operation, where $T(m)$ is the maximum between the query and the update time of a specific range-searching data structure with $m$ elements. Finally, we design a fully retroactive monotonic priority queue that costs $O(\log m \log \log m)$ time per operation.
- ID del Artículo: 2508.09892
- Título: Retroactive Monotonic Priority Queues via Range Searching
- Autores: Lucas Castro, Rosiane de Freitas (Instituto de Computación - UFAM, Brasil)
- Clasificación: cs.DS (Estructuras de Datos y Algoritmos), cs.CG (Geometría Computacional)
- Fecha de Publicación: Preimpresión en arXiv, actualizado el 14 de octubre de 2025
- Enlace del Artículo: https://arxiv.org/abs/2508.09892
Se conoce que la cola de prioridad completamente retroactiva óptima requiere O(log2mloglogm) tiempo por operación, donde m es el número total de operaciones ejecutadas en la estructura de datos. En contraste, las colas de prioridad estándar (no retroactivas) y parcialmente retroactivas requieren solo O(logm) tiempo por operación. Actualmente no está claro si las colas de prioridad completamente retroactivas pueden alcanzar la cota de O(logm). Este artículo estudia la variante restringida de colas de prioridad monótonas, demostrando primero que encontrar el mínimo en una cola de prioridad retroactiva monótona es un caso especial del problema de búsqueda de rangos, luego diseña una cola de prioridad monótona completamente retroactiva con tiempo O(logm+T(m)) por operación, e implementa finalmente una cola de prioridad monótona completamente retroactiva con tiempo O(logmloglogm) por operación.
Las estructuras de datos tradicionales solo pueden operar sobre el estado "actual", sin capacidad de consultar o modificar estados pasados. Las estructuras de datos retroactivas fueron introducidas por Demaine et al., permitiendo modificar estados pasados y propagar las consecuencias de estas modificaciones al estado actual. Según su funcionalidad, se dividen en:
- Parcialmente retroactivas: pueden modificar el pasado, pero solo pueden consultar el estado actual
- Completamente retroactivas: pueden tanto modificar el pasado como consultar el estado en cualquier punto temporal
- Brecha de eficiencia: existe una diferencia significativa en la complejidad temporal entre colas de prioridad completamente retroactivas y sus versiones estándar/parcialmente retroactivas
- Desafío teórico: no está claro si las colas de prioridad completamente retroactivas pueden alcanzar la cota teórica inferior de O(logm)
- Aplicaciones prácticas: las colas de prioridad monótonas tienen valor importante en aplicaciones como el algoritmo de Dijkstra
- La complejidad temporal de la cola de prioridad completamente retroactiva óptima es O(log2mloglogm)
- Existe una brecha considerable con respecto a la complejidad O(logm) de colas de prioridad estándar
- Falta investigación especializada en variantes restringidas (como colas de prioridad monótonas)
- Descubrimiento Teórico: demuestra que encontrar el mínimo en una cola de prioridad retroactiva monótona es equivalente a un problema de búsqueda de rangos
- Marco Genérico: diseña una cola de prioridad monótona completamente retroactiva con complejidad temporal O(logm+T(m)), donde T(m) es el tiempo de consulta/actualización de la estructura de datos de búsqueda de rangos
- Implementación Concreta: implementa una cola de prioridad monótona completamente retroactiva con complejidad temporal O(logmloglogm) basada en árboles de rangos 2D
- Perspectiva Geométrica: proporciona una nueva perspectiva geométrica para entender colas de prioridad retroactivas
Diseñar una cola de prioridad monótona completamente retroactiva que soporte las siguientes operaciones:
Insert(insert(x), t): insertar elemento x en tiempo tDelete(insert(x), t): eliminar la operación de inserción en tiempo tInsert(extract-min, t): insertar operación de extracción del mínimo en tiempo tDelete(extract-min, t): eliminar la operación de extracción en tiempo tGetMin(t): retornar el elemento mínimo en tiempo t
Restricción de Monotonía: los elementos extraídos deben formar una secuencia no decreciente.
En una cola de prioridad monótona, un elemento x existe en tiempo t si y solo si:
insertionTime(x) ≤ tx > lastExtracted(t)
Esto evita mantener el tiempo de extracción de cada elemento, simplificando la complejidad de las operaciones retroactivas.
Insight Clave: en una cola de prioridad monótona, el k-ésimo elemento más pequeño val[k] solo puede ser extraído por la k-ésima operación de extracción em[k].
Algoritmo:
- Encontrar la operación predecesora en el árbol de tiempos de extracción para el tiempo t
- Determinar el número de secuencia k de esa operación
- Retornar el k-ésimo elemento más pequeño
Complejidad temporal: O(logm)
Representar la cola de prioridad monótona como puntos en un plano 2D:
- Cada elemento e se representa como punto
(insertionTime(e), e) - La consulta
GetMin(t) se transforma en encontrar el punto con coordenada y mínima dentro del rectángulo R(t)=(−∞,t]×(lastExtracted(t),∞)
Esta representación transforma completamente el problema de consulta de colas de prioridad en un problema geométrico de búsqueda de rangos.
Tres Estructuras de Datos Auxiliares:
- Tel: árbol de estadísticas de orden que almacena todos los elementos insertados
- Tem: árbol de estadísticas de orden que almacena todos los tiempos de extracción
- Tins: estructura de datos de búsqueda de rangos mínimo-y que almacena todos los pares
(tiempo de inserción, valor del elemento)
Implementación de Operaciones:
GetMin(t): primero encontrar lastExtracted(t), luego consultar el rango rectangular en TinsInsert/Delete(insert(x), t): actualizar Tel y TinsInsert/Delete(extract-min, t): actualizar Tem
Este artículo realiza principalmente análisis teórico, verificando la corrección del método de las siguientes maneras:
- Pruebas Matemáticas: demostración rigurosa de todos los lemas y teoremas clave
- Análisis de Complejidad: análisis detallado de la complejidad temporal y espacial de cada operación
- Verificación de Corrección: verificación de la corrección del método mediante intuición geométrica y lógica algorítmica
Se elige el árbol de rangos 2D de Mehlhorn y Näher como estructura de datos subyacente:
- Tiempo de Actualización: O(lognloglogn) (amortizado, convertible a caso peor)
- Tiempo de Consulta: O(lognloglogn)
- Complejidad Espacial: O(nlogn)
Teorema 20 (Marco Genérico):
Existe una cola de prioridad monótona completamente retroactiva con las siguientes complejidades:
- Operaciones de extracción: O(logm)
- Operaciones de inserción: O(logm+U(m))
- Operaciones de consulta: O(logm+Q(m))
- Complejidad espacial: O(m+S(m))
donde U(m), Q(m), S(m) son respectivamente la complejidad de actualización, consulta y espacio de la estructura de datos de búsqueda de rangos.
Teorema 21 (Implementación Concreta):
La implementación basada en árbol de rangos 2D tiene las siguientes complejidades:
- Operaciones de extracción: O(logm)
- Operaciones de inserción: O(logmloglogm)
- Operaciones de consulta: O(logmloglogm)
- Complejidad espacial: O(mlogm)
| Tipo de Estructura de Datos | Complejidad Temporal |
|---|
| Cola de prioridad estándar | O(logm) |
| Cola de prioridad parcialmente retroactiva | O(logm) |
| Cola de prioridad completamente retroactiva (óptima conocida) | O(log2mloglogm) |
| Este artículo: Cola de prioridad monótona completamente retroactiva | O(logmloglogm) |
Este artículo logra una mejora significativa en la complejidad de colas de prioridad completamente retroactivas (bajo restricción monótona).
- Demaine et al. (2007): introducen por primera vez el concepto de estructuras de datos retroactivas, diseñando colas de prioridad parcialmente retroactivas
- Demaine et al. (2015): proponen colas de prioridad completamente retroactivas con complejidad O(log2mloglogm)
- Chen et al. (2018): demuestran que ciertas estructuras de datos completamente retroactivas son necesariamente más lentas que sus versiones parcialmente retroactivas
- Escenarios de Aplicación: algoritmo de Dijkstra, programación de eventos, etc.
- Características: los elementos extraídos forman una secuencia no decreciente, más fáciles de optimizar que colas de prioridad generales
- Problema Clásico: problema fundamental en geometría computacional
- Estructuras de Datos: árboles de rangos, árboles de partición y otras estructuras de datos especializadas
- Contribución Teórica: establece por primera vez la conexión entre problemas de colas de prioridad retroactivas y búsqueda de rangos
- Mejora Algorítmica: mejora significativamente la eficiencia de colas de prioridad completamente retroactivas bajo restricción monótona
- Marco Genérico: proporciona un marco de diseño genérico basado en diferentes estructuras de datos de búsqueda de rangos
- Restricción Limitada: solo aplicable a colas de prioridad monótonas, no se puede extender directamente al caso general
- Resultados Teóricos: principalmente análisis teórico, carece de implementación práctica y verificación experimental
- Brecha de Complejidad: aún existe una brecha de factor loglogm con respecto a colas de prioridad estándar
Los autores identifican explícitamente tres direcciones de investigación:
- Investigar versiones completamente retroactivas de otras variantes de colas de prioridad restringidas
- Investigar cotas superiores para colas de prioridad completamente retroactivas generales
- Investigar cotas inferiores para colas de prioridad retroactivas
- Innovación Fuerte: establece por primera vez la conexión entre estructuras de datos retroactivas y geometría computacional, perspectiva novedosa
- Rigor Teórico: todos los resultados clave tienen demostraciones matemáticas rigurosas, lógica clara
- Valor Práctico: las colas de prioridad monótonas tienen aplicaciones importantes en algoritmos reales
- Escritura Clara: utiliza analogías como sistemas bancarios para explicar conceptos de manera clara y comprensible
- Intuición Geométrica: la analogía de proyección de rayos proporciona excelente intuición geométrica
- Alcance de Aplicación: limitado a colas de prioridad monótonas, generalidad limitada
- Ausencia de Experimentos: carece de implementación práctica y pruebas de rendimiento
- Análisis de Cotas Inferiores: no proporciona análisis de cotas inferiores correspondientes
- Factores Constantes: el análisis teórico no considera el impacto de factores constantes
- Contribución Teórica: proporciona una nueva perspectiva geométrica para la investigación de estructuras de datos retroactivas
- Valor Metodológico: demuestra cómo aprovechar la estructura especial de problemas para optimización
- Significado Inspirador: puede inspirar investigación sobre versiones retroactivas de otras estructuras de datos restringidas
- Algoritmo de Dijkstra: problemas de camino más corto en grafos dinámicos
- Programación de Eventos: sistemas de programación que requieren corrección de eventos históricos
- Corrección de Datos: escenarios de aplicación que requieren corrección retroactiva de datos
El artículo cita 13 referencias relacionadas, incluyendo principalmente:
- Demaine et al. (2007) - trabajo pionero en estructuras de datos retroactivas
- Demaine et al. (2015) - cola de prioridad completamente retroactiva óptima actual
- Mehlhorn & Näher (1990) - trabajo clásico sobre árboles de rangos 2D
- Agarwal (2018) - revisión de problemas de búsqueda de rangos
Evaluación General: este es un artículo de alta calidad en ciencia teórica de la computación que resuelve un problema importante en estructuras de datos retroactivas mediante un enfoque geométrico ingenioso. Aunque los resultados solo se aplican al caso monótono, el método es novedoso, la teoría es rigurosa, y proporciona ideas y herramientas valiosas para investigación futura en este campo.