0% encontró este documento útil (0 votos)
261 vistas4 páginas

Arboles Treap

Este documento describe los treaps, una estructura de datos de árbol binario de búsqueda aleatorio. Los treaps mantienen un conjunto ordenado de claves y permiten búsquedas binarias en tiempo O(log n). Cada nodo tiene una clave y una prioridad aleatoria. Las claves siguen el orden BST mientras que las prioridades siguen el orden de un montículo binario. Esto hace que el árbol se balancee logarítmicamente después de inserciones y eliminaciones, logrando un comportamiento óptimo. Las operaciones básic

Cargado por

Jaky Sintecala
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
261 vistas4 páginas

Arboles Treap

Este documento describe los treaps, una estructura de datos de árbol binario de búsqueda aleatorio. Los treaps mantienen un conjunto ordenado de claves y permiten búsquedas binarias en tiempo O(log n). Cada nodo tiene una clave y una prioridad aleatoria. Las claves siguen el orden BST mientras que las prioridades siguen el orden de un montículo binario. Esto hace que el árbol se balancee logarítmicamente después de inserciones y eliminaciones, logrando un comportamiento óptimo. Las operaciones básic

Cargado por

Jaky Sintecala
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

ESTRUCTURA DE DATOS 1

ÁRBOLES TREAP
Sintecala Mulluni, Jakelyn y Ramos Huanca, Fressia,
Estudiantes, 2do año de Sistemas
Escuela Profesional de Ingenierı́a en Informática y Sistemas
Universidad Nacional Jorge Basadre Grohmann
[email protected]
emmy 10 [email protected]

Abstract— In computer science, the treap and the randomized • La palabra treap fue usada por primera vez por Edward
binary search tree are two closely related forms of binary search McCreight en los 80’s también, y Edward les cambió el
tree data structures that maintain a dynamic set of ordered keys nombre a árboles prioritarios de búsqueda [5].
and allow binary searches among the keys. After any sequence
of insertions and deletions of keys, the shape of the tree is a • Los treaps fueron redescubiertos y usados para construir
random variable with the same probability distribution as a árboles aleatorios de búsqueda por Cecilia Aragon y
random binary tree; in particular, with high probability its height Raimund Seidel en 1989 [6].
is proportional to the logarithm of the number of keys, so that
each search, insertion, or deletion operation takes logarithmic
time to perform [1].
Index Terms— treap, tree, BST, key, priority. III. D EFINICI ÓN
Treap es un árbol binario de búsqueda con una modificación
I. I NTRODUCCI ÓN
en el orden de los nodos ya que se le agrega un campo

L OS árboles binarios de búsqueda son una de las opciones


principales para manejar conjuntos en los cuales haya
que insertar, buscar y eliminar rápidamente. En aadidura,
que contendrá un valor aleatorio llamado prioridad [7]. Treap
consiste en introducir un nmero aleatorio en cada nodo. El
número aleatorio ser la prioridad del nodo. Las claves y las
son muy simples de instrumentar y su desempeño puede ser prioridades deben ser diferentes y pertenecer a un universo
espectacular si el orden de inserción de claves es aleatorio. totalmente ordenado. Las claves obedecen al orden de los
Lamentablemente no siempre se puede garantizar aleatoriedad árboles binarios de búsqueda y las prioridades obedecen al
en la insercin. Por esto, desde hace ms de 50 aos los investi- orden de los montculos binarios por el mı́nimo. Por esta razón
gadores en algoritmos han buscado y encontrado esquemas a la estructura se la denomina treaps que es un acrónimo
para equilibrar árboles binarios de búsqueda. Los cuales de trees y heaps. Un treap es un árbol de búsqueda al azar
se clasifican en tres tipos: Equilibrio amortizado, Equilibrio que tiene un óptimo comportamiento esperado [8].Treap es
garantizado y Equilibrio aleatorizado, en este último se hacen una estructura muy usada por su eficiencia y facilidad de
cosas al azar de modo tal que se filtre cualquier sesgo en las codificación. Un treap es un árbol binario T en cual cada nodo
operaciones, dentro de sus principales exponentes se encuen- ni tiene dos campos a saber:
tran los treaps [2]. El treap es probablemente el más simple
• KEY(ni) K es la clave de búsqueda, donde K es un
de todos. Al igual que la lista de salto, que utiliza números
conjunto ordenable cualquiera.
aleatorios y da O (log (n)) que se espera un comportamiento
• PRIO(ni) P es la prioridad del nodo, donde P es un
momento y por cualquier llave de entrada. El tiempo buscando
conjunto ordenable cualquiera.
es idéntico a un árbol binario de búsqueda de equilibrio y más
lento que los árboles de búsqueda equilibrados, mientras que
el tiempo de inserción es sólo ligeramente más lento que una
aplicación desequilibrada árbol binario de búsqueda recursiva.
El Treap es mejor en términos de lı́neas totales para una
inserción razonable y su eliminación, sobre todo tiene una no
implementación recursiva mientras que el árbol de equilibrado
tiene un defecto, es que es difı́cil el diagnóstico de problemas
que resultan de no actualizar la información del saldo en el
curso de una operación [3].

Fig. 1. Ejemplo de un Treap


II. H ISTORIA .
• Fueron descubiertos por Jean Vuillemin en 1980, pero
fueron llamados árboles cartesianos [4].
ESTRUCTURA DE DATOS 2

IV. P ROPIEDADES
En el Treap se cumplen las siguientes propiedades o condi-
ciones:

A. Propiedad de BST
Clave(hijo izquierda)es menor Clave(actual)es menor
Clave(hijo derecha). Fig. 3. Forma de Rotacion
Lo cual quiere decir que los nodos en el sub-treap de la
izquierda de un nodo tienen menor valor que dicho nodo,
mientras que los del sub-treap derecho tienen un mayor valor con raı́z q se rota hacia la izquierda, entonces se obtiene el
[9]. original de raı́z p. El recorrido infijo del árbol con raı́z p es
(αAβ)Bγ (1)
B. Propiedad de Heap , mientras que el del árbol con raı́z q es
Es decir que se cumple:
αA(βBγ) (2)
1) Si tengo un Min-Heap: El nodo con prioridad mı́nima
debe estar en la raı́z, con ello queremos decir: ; o sea, son iguales, lo que demuestra que la rotación no afecta
Prioridad (hijo)es menor igual Prioridad(padre) la propiedad de orden de un árbol binario de búsqueda. Cuando
se rota a la derecha el árbol con raı́z p, el árbol resultante con
2) Si tengo un Max-Heap: El nodo con prioridad máxima raı́z q pierde una unidad de altura por su rama izquierda, la
debe estar en la raı́z, con ello queremos decir: cual se traduce en una ganancia de una unidad de altura por
Prioridad (hijo)es mayor igual Prioridad(padre) rama derecha. Simétricamente ocurre con la rotación hacia
la izquierda. Esta es la caracterı́stica que hace de la rotación
la operación fundamental para equilibrar árboles.Es esencial
notar que la rotación es O(1).

B. Búsqueda
El algoritmo de búsqueda es la habitual para los árboles
binarios de búsqueda . El tiempo para una búsqueda con éxito
es proporcional a la profundidad del nodo. El tiempo para una
Fig. 2. Heap-Max y Heap-Min búsqueda sin éxito es proporcional a la de profundidad , bien
. de su sucesor o su predecesor.

C. Inserción
C. Propiedad de Balanceo Dado un treap con raı́z ’root’ el algoritmo general de
Las propiedades de BST y Heap, teniendo en cuenta prior- inserción de un nodo p se puede resumir en:
idades aleatorias, conllevan a que el árbol sea balanceado; es • PRIO(p) = número al azar (la prioridad se escoge al azar).
decir, con una altura proporcional a log n y permitiendo que • Insertar p exactamente como en un árbol binario de
todas las operaciones se realicen en tiempo logaritmico O(log búsqueda.
n) [10]. • Rotar p de forma que éste suba de nivel hasta que su
prioridad PRIO(p) sea mayor que la de su padre.
V. O PERACIONES Notemos que la diferencia entre este algoritmo general y el de
inserción en un árbol binario de búsqueda es tan solo la lı́nea
A. Rotaciones 3. Supongamos el siguiente treap al cual recién se le acaba
Para que un treap tienda a ser equilibrado como lo serı́a un de insertar, como en un árbol binario de búsqueda, un nodo
árbol binario de búsqueda, es necesario que de vez en cuando (38,26).
se efectúan algunos ajustes. Hay diversos tipos de árboles Como el nodo fue insertado como en un árbol binario de
de búsqueda que efectúan ajustes a efectos de equilibrar; búsqueda, éste no viola la condición de orden, mas sı́ viola
prácticamente todos ellos emplean rotaciones para realizar la condición de prioridad, pues 26 es menor que 54. Ası́ que
estos ajustes [11]. Una rotación se entiende rápidamente lo que hacemos es rotar el nodo (28,54) hacia la izquierda,
mediante la siguiente figura: lo que hace que (28,54) quede por debajo de (38,26): Pero
(38,26) viola la prioridad de su padre (39,30), lo cual requiere
que (39,30) sea rotado hacia la derecha: De nuevo, (38,26)
El árbol con raı́z p se puede rotar hacia la derecha y se viola la condición de prioridad de su padre (12,28), lo cual
obtiene el árbol con raı́z q. Del mismo modo, si el árbol acarrea su rotación hacia la izquierda, la cual depara en el
ESTRUCTURA DE DATOS 3

Fig. 6. Inserción de(38,26) 3

Fig. 4. Inserción de(38,26) 1

Fig. 7. Inserción de(38,26) 4

Fig. 5. Inserción de(38,26) 2 treap: Aquı́ debes percatarte de que el sentido de rotación no

siguiente resultado definitivo: El cual ya es un treap. Y cómo


se instrumenta este procedimiento? Básicamente de la misma
manera en que el método genérico: inserte en un árbol binario
de búsqueda y luego rote hasta restaurar la condición de
prioridad. Para el análisis, es importante notar el parecido entre
el algoritmo de inserción de un árbol binario de búsqueda y
éste que acabamos de presentar.

Fig. 8. Eliminación de(38,26) 1


D. Eliminación
La eliminación se puede plantear de dos maneras. La es arbitrario. Si rotamos (38,26) hacia la izquierda, entonces
primera es estructuralmente idéntica a la eliminación que el nodo (39,30) violará la condición de prioridad respecto al
presentamos del árbol binario de búsqueda basada en la nodo (12,28). Por tanto, debemos rotarlo hacia la derecha,
operacin join(). La segunda, que desarrollaremos se basa en de modo tal que la menor de la prioridades de los hijos de
el siguiente algoritmo general: p sea la que suba. Ası́, el estado del treap luego de esta
• Busque y encuentre la clave a eliminar. Sea p el nodo rotación es: La regla general para decidir el sentido de rotación
encontrado contentivo de la clave a eliminar (si no se es hacia el lado contrario de donde se encuentre su hijo de
encuentra la clave el algoritmo termina). menor prioridad. Ası́, la siguiente rotación se efectúa hacia la
• Rote p para aumentarlo de nivel hasta que ésta de- izquierda, o sea hacia el lado contrario donde se encuentra su
venga una hoja. En este paso no importa que p viole hijo derecho (39,30), lo que nos arroja el siguiente resultado:
la propiedad de orden, pues éste será eliminado. Sin En esta situación nos encontramos con que (38,26) ’tiene un
embargo, si para los puritanos, basta con asignarle a solo hijo’; ası́ que si lo rotamos hacia el lado donde no tiene su
p prioridad para que las rotaciones restablezcan la hijo entonces (38,26) deviene una hoja: Aquı́(38,26) ya es una
condición de prioridad. hoja, por lo que sólo nos queda cortarlo para que culminemos
• Una vez que p devino hoja, la eliminación consiste la eliminación.
simplemente en ’cortarla’ del árbol.
Sorprendentemente, el lugar por donde finalmente se elimina VI. C ONCLUSION
un nodo es exactamente el mismo por donde se inserta. Para • En conclusión , cada búsqueda , inserción, eliminación , o
ello, veamos como eliminamos el nodo (38,26) del siguiente cualquier otra operación de combinación en un aleatorio
ESTRUCTURA DE DATOS 4

Fig. 9. Eliminación de(38,26) 2 Fig. 11. Eliminación de(38,26) 4

[9] Arias,J.(2012)Árbol de Búsqueda Aleatorizado Treap. Recuperado:


https://jariasf.wordpress.com/2012/02/27/arbol-de-busqueda-
aleatorizado-treap/.
[10] Palacios,R.(2012).Treaps and Ropes.
Recuperado:https://chococontest.wordpress.com/category/estructuras-
de-datos/.
[11] Martı́nez, C., and Roura, S. (1998). Randomized binary search
trees. Journal of the ACM (JACM), 45(2), 288-323. Recuperado:
http://jeffe.cs.illinois.edu/teaching/algorithms/notes/10-treaps.pdf.

Fig. 10. Eliminación de(38,26) 3

n - nodo árbol binario de búsqueda toma O ( log n ) la


hora.
• Treap es una estructura muy usada por su eficiencia y
facilidad de codificación.
• Los treaps nacen de la generalización de dos propiedades:
la primera de búsqueda binaria, y la segunda de los
árboles heap.

AGRADECIMIENTO
Agradecemos al Ingeniero Hugo Barraza Vizcarra por
darnos a conocer del Software ”TeXstudio” para realizar
nuestro artı́culo cientı́fico. Le damos gracias a la Ingeniera
Edith Alfaro por habernos instruı́do en el manejo del Software
”TeXstudio”.

R EFERENCES
[1] Arora, D., y Batra, S. (2012). Using Treaps for Optimization of Graph
Storage.International Journal of Computer Applications, 41(14).
[2] Rabindranath,L.(2013).Gracias Heaps! Recuperado: http://hacks-
lrleon.blogspot.pe/2013/09/gracias-treaps.html
[3] Uzaheta,E.(2009).Random Treaps.Universidad Nacional de Colombia,
Bogotá.
[4] Vuillemin, J. (1980). A unifying look at data structures. Communications
of the ACM, 23(4), 229-239.
[5] McCreight, E. M. (1985). Priority search trees. SIAM Journal on
Computing,14(2), 257-276.
[6] Aragon, C. R., and Seidel, R. G. (1989, October). Randomized search
trees. InFoundations of Computer Science, 1989., 30th Annual Sympo-
sium on (pp. 540-545). IEEE.
[7] Besembel C.,(2010) Análisis y Diseño de Algoritmos (AyDA) Árboles
Monocriterio vep y treap.
[8] Dehne, F., López-Ortiz, A., and Sack, J. R. (Eds.). (2005). Algorithms
and Data Structures: 9th International Workshop, WADS 2005, Waterloo,
Canada, August 15-17, 2005, Proceedings (Vol. 3608). Springer.

También podría gustarte