En informática , el problema del predecesor implica mantener un conjunto de elementos para, dado un elemento, consultar eficientemente qué elemento precede o sucede a ese elemento en un orden determinado. Las estructuras de datos utilizadas para resolver el problema incluyen árboles de búsqueda binaria balanceados , árboles de van Emde Boas y árboles de fusión . En el problema del predecesor estático , el conjunto de elementos no cambia, pero en el problema del predecesor dinámico , se permiten inserciones y eliminaciones del conjunto. [ 1 ]
El problema del predecesor es un caso simple del problema del vecino más cercano , y las estructuras de datos que lo resuelven tienen aplicaciones en problemas como la ordenación de enteros .
Definición
El problema consiste en mantener un conjunto S , que contiene un subconjunto de U enteros. Cada uno de estos enteros se puede almacenar con un tamaño de palabra w , lo que implica que. Las estructuras de datos que resuelven el problema admiten estas operaciones: [ 2 ]
predecessor(x), que devuelve el elemento más grande en S estrictamente menor que xsuccessor(x), que devuelve el elemento más pequeño en S estrictamente mayor que x
Además, las estructuras de datos que resuelven la versión dinámica del problema también admiten estas operaciones:
insert(x), lo que añade x al conjunto Sdelete(x), lo que elimina x del conjunto S
El problema se analiza típicamente en un modelo de computación transdicotómico como la memoria RAM de palabras .
Estructuras de datos

Una solución sencilla a este problema es utilizar un árbol de búsqueda binaria balanceado , que logra (en notación Big O ) un tiempo de ejecución depara consultas predecesoras. El árbol de Van Emde Boas logra un tiempo de consulta depero requiereespacio . [ 1 ] Dan Willard propuso una mejora en este uso del espacio con el trie x-rápido , que requiereespacio y el mismo tiempo de consulta, y el trie y-fast más complicado , que solo requiereespacio. [ 3 ] Los árboles de fusión , introducidos por Michael Fredman y Willard, lograntiempo de consulta ypara consultas de predecesores para el problema estático. [ 4 ] El problema dinámico se ha resuelto utilizando árboles exponenciales contiempo de consulta, [ 5 ] y con tiempo esperadoutilizando funciones hash . [ 6 ]
Propiedades matemáticas
Se han publicado varios artículos que demuestran cotas inferiores para el problema del predecesor, o que identifican cuál sería el tiempo de ejecución de las soluciones asintóticamente óptimas . Por ejemplo, Michael Beame y Faith Ellen demostraron que para todos los valores de w , existe un valor de n con tiempo de consulta (en notación Big Theta ).y de manera similar, para todos los valores de n , existe un valor de n tal que el tiempo de consulta es. [ 1 ] Otras pruebas de cotas inferiores incluyen la noción de complejidad de la comunicación .
Para el problema del predecesor estático, Mihai Pătrașcu y Mikkel Thorup mostraron la siguiente cota inferior para el tiempo de búsqueda óptimo, en el modelo de sonda celular : [ 7 ] donde la RAM tiene longitud de palabra, el conjunto contieneenteros debits cada uno y se representa en la RAM usandopalabras de espacio y definición.
En el caso dondeparay, el tiempo de búsqueda óptimo es y el árbol de van Emde Boas alcanza este límite. [ 7 ]
Véase también
Referencias
- 1 2 3 Beame, Paul; Fich, Faith (agosto de 2002). "Límites óptimos para el problema del predecesor y problemas relacionados" . Journal of Computer and System Sciences . 65 (1): 38– 72. doi : 10.1006/jcss.2002.1822 . S2CID 1991980 .
- ↑ Rahman, Naila; Cole, Richard; Raman, Rajeev (17 de agosto de 2001). Estructuras de datos predecesoras optimizadas para memoria interna (PDF) . Taller internacional sobre ingeniería de algoritmos. págs. 67–78 .
- ↑ Willard, Dan (24 de agosto de 1983). "Las consultas de rango log-logarítmicas en el peor de los casos son posibles en el espacio Θ(n)". Information Processing Letters . 17 (2): 81– 84. doi : 10.1016/0020-0190(83)90075-3 .
- ↑ Fredman, Michael ; Willard, Dan (1990). "Rompiendo la barrera de la teoría de la información con árboles de fusión". Simposio sobre Teoría de la Computación : 1–7 .
- ↑ Andersson, Arne; Thorup, Mikkel (2007), "Conjuntos ordenados dinámicos con árboles de búsqueda exponenciales", Journal of the ACM , 54 (3): A13, arXiv : cs/0210006 , doi : 10.1145/1236457.1236460 , MR 2314255 , S2CID 8175703 .
- ↑ Raman, Rajeev (1996), "Colas de prioridad: pequeñas, monótonas y transdicotómicas", Cuarto Simposio Europeo Anual sobre Algoritmos (ESA '96), Barcelona, España, 25-27 de septiembre de 1996 , Lecture Notes in Computer Science, vol. 1136, Berlín: Springer-Verlag, pp. 121-137 , doi : 10.1007/3-540-61680-2_51 , ISBN 978-3-540-61680-1, MR 1469229 .
- 1 2 Pătraşcu, Mihai; Thorup, Mikkel (21 de mayo de 2006). «Compromisos espacio-temporales para la búsqueda de predecesores». Actas del trigésimo octavo simposio anual de la ACM sobre Teoría de la Computación . págs. 232–240 . arXiv : cs/0603043 . doi : 10.1145/1132516.1132551 . ISBN 1595931341. S2CID 1232 .
- Estructuras de datos
- Problemas computacionales