Articulo de referencia

Árbol exponencial

Un árbol exponencial es un tipo de árbol de búsqueda donde el número de hijos de sus nodos disminuye exponencialmente al aumentar la profundidad. Los valores se almacenan únicam...

Un árbol exponencial es un tipo de árbol de búsqueda donde el número de hijos de sus nodos disminuye exponencialmente al aumentar la profundidad. Los valores se almacenan únicamente en los nodos hoja. Cada nodo contiene un divisor, un valor menor o igual a todos los valores del subárbol que se utiliza durante la búsqueda. Los árboles exponenciales utilizan otra estructura de datos en los nodos internos que contienen los divisores de los hijos, lo que permite una búsqueda rápida.

Los árboles exponenciales alcanzan una complejidad asintótica óptima en algunas operaciones. Su importancia es principalmente teórica.

Estructura del árbol

Un árbol exponencial es un árbol con raíz donde cada nodo contiene un divisor y cada nodo hoja contiene un valor. El valor puede ser diferente del divisor. Un árbol exponencial connorte{\displaystyle n}Los valores se definen recursivamente:

  • La raíz tieneΘ(norte1/k){\displaystyle \Theta (n^{1/k})}niños
  • El divisor de la raíz es el mismo que el divisor del hijo más a la izquierda.
  • Los divisores de todos los hijos se almacenan en una estructura de datos local.
  • Los subárboles son árboles exponenciales conΘ(norte11/k){\displaystyle \Theta (n^{1-1/k})}valores

Una condición adicional es que la búsqueda de un valor utilizando los divisores debe producir el nodo correcto (es decir, el que contiene el valor). Por lo tanto, si una raíz de un subárbol contiene el divisors{\displaystyle s}y su hermano derecho contiene el divisors{\displaystyle s'}, entonces este subárbol solo puede contener claves en el rango[s,s){\displaystyle [s,s')}.

Estructura de datos local

El árbol utiliza una estructura de datos estática en cada nodo interno para permitir una búsqueda rápida de valores. Debe ser posible construir esta estructura cond{\displaystyle d}valores en el tiempoO(dk1){\displaystyle O(d^{k-1})}El tiempo de búsqueda en esta estructura se denotaS(d){\displaystyle S(d)}.

Un árbol Fusion puede utilizarse como esta estructura de datos.

Operaciones

El árbol exponencial se puede explorar de la misma manera que un árbol de búsqueda normal. En cada nodo, se puede utilizar la estructura de datos local para encontrar rápidamente el siguiente hijo.

DejarT(norte){\displaystyle T(n)}Denotamos la complejidad temporal de la búsqueda. Entonces satisface la siguiente recurrencia:

T(norte)T(norte11/k)+O(S(norte)){\displaystyle T(n)\leq T(n^{1-1/k})+O(S(n))}

Insertar

Borrar

Referencias

  • Andersson, Arne (octubre de 1996). «Clasificación y búsqueda deterministas más rápidas en espacio lineal». Actas de la 37.ª Conferencia sobre Fundamentos de la Informática . págs. 135-141 . doi : 10.1109/SFCS.1996.548472 . ISBN  0-8186-7594-2. S2CID 13603426 . 
  • Andersson, Arne; Thorup, Mikkel (2007-06-01). "Conjuntos ordenados dinámicos con árboles de búsqueda exponenciales" . Journal of the ACM . 54 (3): 13–es. arXiv : cs/0210006 . doi : 10.1145/1236457.1236460 . ISSN 0004-5411 . S2CID 8175703 .