You are on page 1of 6

Investigacin estructura de datos: R-Tree

(Mayo 2017).
Valdivia A. Juan, Estudiante, Universidad de La Serena.

Abstracto Como con la mayora de los rboles, los algoritmos de bsqueda (por
ejemplo, interseccin, contencin, bsqueda de vecinos ms cercanos)
R-Tree son arboles utilizados para mtodos de acceso en la son bastante simples. La idea clave es usar los cuadros delimitadores
indexacin de informacin multidimensional como polgonos, para decir si desea o no buscar dentro de un sub-rbol. De esta manera,
rectngulos o coordenadas geogrficas. Fue Antonin Guttman en la mayora de los nodos del rbol nunca se leen durante una bsqueda.
1984 quien Propuso un significativo uso del R-Tree en respuesta al Al igual que los B-Tree, esto hace que los R-Tree sean adecuados para
manejo eficiente de la recuperacin rpida de datos espaciales. Un grandes conjuntos de datos y base de datos donde los nodos pueden ser
uso comn es la bsqueda de sitios de inters (calles, lagos, paginados a la memoria cuando sea necesario, y el rbol completo no
comercios, sitios tursticos como museos o puntos tursticos) a una puede mantenerse en memoria principal.
distancia dada, usados en aplicaciones de mapas o geolocalizacin,
as por medio de una consulta referencial dada se pueda dar una La dificultad clave del R-Tree es construir un rbol eficiente que por
bsqueda ms acelerada como respuesta a el inters del usuario. un lado este equilibrado (por lo menos los nodos hojas estn a la misma
altura) por otro lado los rectngulos no cubren demasiado espacio
Facio y no se superponen demasiado (de modo que, durante la
bsqueda, menos sub-arboles necesitan ser procesados). Por ejemplo,
I. INTRODUCCIN. la idea original para insertar elementos para obtener un rbol eficiente
Este documento es una expresa recopilacin de informacin, sobre la es insertar siempre en el sub-rbol que requiere menos ampliacin de
investigacin de la estructura de datos de rbol R-Tree. Una estructura su cuadro delimitador. Una vez que la pagina est llena, los datos se
basada en B+-Tree, en funcin del manejo de datos espaciales o dividen en dos conjuntos que deben cubrir el rea mnima cada uno. La
multidimensionales. mayora de las investigaciones y mejoras para R-Tree tienen como
objetivo mejorar la forma en que el rbol de construye y se pueden
agrupar en dos objetivos: construir un rbol eficiente desde cero
(conocido como carga masiva) y realizar cambios en un rbol existente
II. NOCIONES DEL R-TREE. (insercin y supresin).

El R-Tree es una estructura de datos de grupos objetos cercanos, Los R-Tree no garantizan un buen desempeo en el peor de los casos,
representados por un rectngulo delimitador mnimo en el siguiente pero generalmente se desempea bien con datos del mundo real. I bien
nivel superior del rbol; el R en R-Tree es referente a rectngulo. es de mayor inters terico, la variante R-Tree Prioritario (de carga
Dado que los objetos estn dentro de dicho rectngulo delimitador, una masiva) del R-Tree es ptima en el caso ms desfavorable, pero debido
consulta que no intersecte el rectngulo delimitador tampoco puede a la complejidad creciente, no ha recibido mucha atencin en
insertar ninguno de los objetos contenidos. En el nivel hoja, cada aplicaciones prcticas hasta el momento.
rectngulo describe un solo objeto; en niveles ms altos la agregacin
de nmeros crecientes de objetos. Esto tambin puede verse como una Cuando los datos estn organizados en un R-Tree, los k vecinos ms
aproximacin cada vez ms aproximada del conjunto de datos. cercanos (para cualquier Lp-Norm) de todos los puntos pueden ser
computados eficientemente usando una unin espacial. Esto es
Al igual que en B-Tree, el R-Tree es tambin un rbol de bsqueda beneficioso para muchos algoritmos basados en los k vecinos ms
equilibrado (mostrando todos los nodos hoja estn a la misma altura), cercanos, por ejemplo, el Factor de Valor Extremo Local. Deli-Clu,
organiza los datos en pgina y est diseado para almacenamiento en Density-LinkClustering es un algoritmo de anlisis de clster que
disco (al ser usada con base de datos). Cada pgina puede contener un utiliza la estructura de R-Tree para un tipo similar de unin espacial
nmero mximo de entradas, a menudo denotado como M. Tambin para calcular eficientemente una agrupacin OPTICS.
garantiza un relleno mnimo (excepto el nodo raz), denotado como m,
sin embargo, se ha experimentado el mejor rendimiento con un relleno
mnimo de 30-40% del nmero mximo de entradas (los B-Tree
garantizan el 50% de relleno de pginas y los B*-Tree hasta un 66%).
La razn de esto es el equilibrio ms complejo que se requiere para los
datos lineales almacenados en B-Tree.
III. ALGORITMOS Y MTODOS. rectngulos delimitadores contenidos en el rectngulo de bsqueda y
sus objetos (si los hay) se colocan en el conjunto de resultados di de
A. Diseo de los datos. encuentran dentro del rectngulo de bsqueda.

Para la bsqueda de prioridades, como la bsqueda de vecinos ms


Los datos en R-Tree se organizan en pginas que pueden tener
cercanos, la consulta consta de un punto o rectngulo. El nodo raz se
un numero variable de entradas (hasta un mximo definido, y
inserta en la cola de prioridad. Hasta que la cola este vaca o se haya
normalmente por encima de un relleno mnimo). Cada entrada devuelto el numero deseado del resultado, la bsqueda contina
dentro de un nodo no hoja almacena dos datos: una forma de procesando la entrada ms cercana de la cola. Los nodos de los rboles
identificar un nodo secundario y el cuadro delimitador de todas se expanden y sus hijos son reinsertados. Las entradas de hoja se
las entradas dentro de este nodo secundario. Los nodos de hojas devuelven cuando se encuentran en la cola. Este enfoque se puede
almacenan los datos necesarios para cada hijo, a menudo un utilizar con varias mtricas de distancia, incluyendo gran circulo de
punto o cuadro delimitador que representa a hijo y un distancia para los datos geogrficos.
identificados externo para este. Para datos de puntos, las
entradas de hoja pueden ser solo los puntos en s. Para los datos
del polgono (que a menudo requiere el almacenamiento de C. Insercin.
polgonos grandes), la configuracin comn es almacenar solo
Para insertar un objeto, el rbol se recorre recursivamente desde el
el MBR (rectngulo delimitador mnimo) del polgono junto
nodo raz. En cada paso se examinan todos los rectngulos en el nodo
con un identificador nico de un rbol. de directorio actual y se elige a un candidato usando una heurstica tal
La Ilustracin 1II muestra la estructura de un R-Tree e ilustran las como elegir el rectngulo que requiere menos ampliacin. La bsqueda
relaciones de contaminacin y superposicin que pueden existir entre desciende en esta pgina, hasta llegar a un nodo hoja. Si el nodo hoja
sus rectngulos. est lleno, se debe dividir antes de que se realice la insercin. Una vez
ms, como una bsqueda exhaustiva es demasiado cara, se emplea una
heurstica para dividir el nodo en dos. Agregando el nodo recin creado
al nivel anterior, este nivel puede desbordarse de nuevo, y estos
desbordamientos pueden propagarse hasta el nodo raz; Cuando este
nodo tambin se desborda, se crea un nuevo nodo raz y el rbol ha
aumentado en altura.

Ilustracin 1 ejemplo de un R-Tree simple (m=2,M=3).


Ilustracin 2 R-Tree para ejemplo de insercin.

B. Bsqueda. 1) Insercin por sub-rbol.


En la bsqueda de rango, la entrada es un rectngulo de bsqueda En cada nivel, el algoritmo necesita decidir en qu sub-rbol insertar
(cuadro de consulta). La bsqueda es bastante similar a la bsqueda en el nuevo objeto de datos. Cuando un objeto de datos est totalmente
un B+-Tree. La bsqueda comienza desde el nodo raz del rbol. Cada contenido en un solo rectngulo, la opcin es clara. Cuando hay varias
nodo interno contiene un conjunto de rectngulos y punteros al nodo opciones o rectngulos en necesidad de ampliacin, la eleccin puede
hijo correspondiente y cada nodo hoja contiene los rectngulos de los tener un impacto significativo en el rendimiento del rbol.
objetos especiales (el puntero a algn objeto especial puede estar ah).
Para cada rectngulo es un nodo, debe decidirse di se superpone al En el R-Tree clsico, los objetos se insertan en el subrbol que
rectngulo de bsqueda o no. En caso afirmativo, tambin se debe necesita la menor ampliacin. En el R*-Tree ms avanzado, se emplea
buscar el nodo secundario correspondiente. La bsqueda se realiza de una heurstica mixta. Al nivel de la hoja, trata de minimizar la
una manera recursiva hasta que se han recorrido todos los nodos superposicin (en el caso de los lazos, prefieren la menor ampliacin y
superpuestos. Cuando se alcanza un nodo hoja, se ponen a prueba los luego el rea menor); En los niveles superiores, se comporta de forma
similar al R-Tree, pero en los lazos prefiere de nuevo el subrbol con
rea ms pequea. La disminucin de la superposicin de rectngulos
en el R*-Tree es uno de los principales beneficios sobre el R-Tree
tradicional (esto es tambin una consecuencia de las otras heursticas
utilizadas, no slo la eleccin del subrbol).

Ilustracin 4 Insercin por desborde.

3) Efecto de diferentes heursticas de divisin en una base de


datos con los distritos postales de los Estados Unidos

Ilustracin 3 insertar objeto 15 en hoja

2) Desborde de nodo.
Dado que la redistribucin de todos los objetos de un nodo en dos
nodos tiene un nmero exponencial de opciones, se necesita emplear
una heurstica para encontrar la mejor divisin. En el R-Tree clsico,
Guttman propuso dos tales heursticas, llamados Quadratic Split y
Linear Split. En la divisin cuadrtica, el algoritmo busca el par de
rectngulos que es la peor combinacin que tiene en el mismo nodo, y
los coloca como objetos iniciales en los dos nuevos grupos. A
continuacin, busca la entrada que tiene la preferencia ms fuerte para
uno de los grupos (en trminos de aumento de rea) y asigna el objeto
a este grupo hasta que se asignen todos los objetos (que satisfacen el
relleno mnimo).
Ilustracin 5 La divisin cuadrtica de Guttman. Las pginas de este
Hay otras estrategias de divisin, como Greene's Split, la heurstica
rbol se superponen mucho.
de divisin de los R*-Tree (que de nuevo intenta minimizar la
superposicin, pero tambin prefiere las pginas cuadrticas) o el
algoritmo de divisin lineal propuesto por Ang y Tan (Que sin embargo
puede producir rectngulos muy irregulares, que son menos eficaces
para muchas preguntas del rango real y de la ventana). Adems de tener
una heurstica de divisin ms avanzada, el R*-Tree tambin trata de
evitar la divisin de un nodo mediante la reinsercin de algunos de los
miembros del nodo, que es similar a la forma en que un rbol B
equilibra los nodos que desbordan. Esto demostr tambin reducir la
superposicin y as aumentar el rendimiento de los rboles.

Por ltimo, el X-Tree se puede ver como una variante de R*-Tree


que tambin puede decidir no dividir un nodo, sino construir un
llamado sper-nodo que contiene todas las entradas extra, cuando no
se encuentra Una buena divisin (en particular para datos de alta
dimensin).

Ilustracin 6 La divisin lineal de Guttman. Incluso una estructura


peor, pero tambin ms rpida de construir.
Ilustracin 7 La escisin de Greene. Las pginas se superponen mucho
menos que con la estrategia de Guttman.
Ilustracin 10 R*Tree cargado a granel utilizando Sort-Tile-Recursive
(STR). Las pginas de hoja no se superponen en absoluto y las pginas
de directorio se solapan slo poco. Este es un rbol muy eficiente, pero
requiere que los datos sean completamente conocidos

Ilustracin 8 Ang-Tan lineal. Esta estrategia produce pginas


rebanadas, que a menudo producen un mal rendimiento de la consulta.

Ilustracin 11 Los M-Trees son similares al R-Tree, pero usan pginas


anidadas esfricas. Sin embargo, separar estas pginas es mucho ms
complicado y las pginas suelen superponerse mucho ms.

D. Supresin.
La eliminacin de una entrada de una pgina puede requerir la
actualizacin de los rectngulos delimitadores de las pginas
principales. Sin embargo, cuando una pgina est llena, no ser
equilibrada con sus vecinos. En su lugar, la pgina se disolver y todos
sus hijos (que pueden ser subrboles, no slo objetos de hoja) sern
reinsertados. Si durante este proceso el nodo raz tiene un solo
elemento, la altura del rbol puede disminuir.

Ilustracin 9 R*-Tree divisin topolgica. Las pginas se superponen


mucho menos, ya que el R*-Tree trata de minimizar la superposicin
de pginas, y las reinserciones optimizaron an ms el rbol. La
estrategia de divisin prefiere las pginas cuadrticas.
IV. VARIANTES. 2) Actuacin
La heurstica de divisin mejorada produce pginas que son ms
A. B*-Tree.
rectangulares y por lo tanto mejor para muchas aplicaciones.
R*-Trees son una variante de R-Tree utilizados para la indexacin de
El mtodo de reinsercin optimiza el rbol existente, pero aumenta
informacin espacial. Los R*-Tree tienen un costo de construccin
la complejidad.
ligeramente mayor que los R-Tree estndar, ya que es posible que sea
necesario volver a insertar los datos; Pero el rbol resultante Soporta de forma eficiente datos puntuales y espaciales al mismo
normalmente tendr un mejor rendimiento de la consulta. Al igual que tiempo.
el R-Tree estndar, puede almacenar tanto datos espaciales como
espaciales. Fue propuesta por Norbert Beckmann, Hans-Peter Kriegel,
Ralf Schneider y Bernhard Seeger en 1990.

1) Diferencias entre B*-Tree y B-Tree.


La minimizacin de la cobertura y la superposicin es crucial para el
rendimiento de los R-Tree. Superposicin significa que, en la consulta
o insercin de datos, es necesario expandir ms de una rama del rbol
(debido a la forma en que se dividen los datos en regiones que pueden
superponerse). Una cobertura minimizada mejora el rendimiento de la
poda, permitiendo excluir pginas completas de la bsqueda ms a
menudo, en particular para las consultas de rango negativo. El R*-Tree
intenta reducir ambos, usando una combinacin de un algoritmo de
divisin de nodos revisado y el concepto de reinsercin forzada en el
desbordamiento del nodo. Esto se basa en la observacin de que las
estructuras de R-Tree son altamente susceptibles al orden en que se
insertan sus entradas, por lo que es probable que una estructura
construida por insercin (en lugar de cargada en masa) sea sub-ptima.
Ilustracin 13 R-Tree con la divisin cuadrtica de Guttman. Hay muchas
La supresin y la reinsercin de entradas les permite "encontrar" un pginas que se extienden de este a oeste en toda Alemania, y las pginas se
lugar en el rbol que puede ser ms apropiado que su ubicacin superponen mucho. Esto no es beneficioso para la mayora de las aplicaciones.
original.

Cuando un nodo se desborda, una parte de sus entradas se quitan del


nodo y se vuelven a insertar en el rbol. (Para evitar una cascada
indefinida de reinserciones causadas por un desbordamiento de nodos
posterior, la rutina de reinsercin puede ser llamada una sola vez en
cada nivel del rbol al insertar cualquier entrada nueva). Esto tiene el
efecto de producir grupos de agrupaciones ms bien agrupadas
Entradas en nodos, reduciendo la cobertura del nodo. Adems, las
divisiones reales de los nodos a menudo se posponen, lo que provoca
que la ocupacin media de nodos aumente. La reinsercin puede verse
como un mtodo de optimizacin incremental de rbol activado en el
desbordamiento de nodos.

Ilustracin 14 R-Tree con divisin lineal Ang-Tan. Mientras que las rebanadas
no se extienden tan lejos como con Guttman, el problema del rebanado afecta
casi cada pgina de la hoja. Las pginas de hoja se superponen poco, pero las
pginas de directorio lo hacen.

Ilustracin 12 R * -Tree construido por insercin repetida (en ELKI). Hay


poco solapamiento en este rbol, resultando en un buen rendimiento
de la consulta. Los MBRs rojos y azules son pginas de ndice, los MBRs
verdes son nodos de hoja.
1) Diferencias entre B*-Tree y B-Tree.
Los R+-Tree son un compromiso entre los R-Tree y los kd-Tree:
evitan la superposicin de nodos internos insertando un objeto en
varias hojas si es necesario. La cobertura es el rea completa para cubrir
todos los rectngulos relacionados. La superposicin es el rea entera
que est contenida en dos o ms nodos. La cobertura mnima reduce la
cantidad de "espacio muerto" (rea vaca) que est cubierta por los
nodos del R-rbol. Mnima superposicin reduce el conjunto de rutas
de bsqueda a las hojas (an ms crtico para el tiempo de acceso que
la cobertura mnima). La bsqueda eficiente requiere cobertura mnima
y superposicin.

Los R+-Tree difieren de los R-Tree en que: no se garantiza que los


nodos estn al menos medio llenos, las entradas de ningn nodo interno
no se superpongan y un ID de objeto puede almacenarse en ms de un
nodo hoja.
Ilustracin 15 R*-Tree divisin topolgica. Las pginas se superponen muy
poco ya que el R*-Tree trata de minimizar la superposicin de pginas, y las
reinserciones optimizaron an ms el rbol. La estrategia de divisin tambin 2) Ventajas.
no prefiere rebanadas.
Debido a que los nodos no se superponen entre s, el rendimiento de
3) Algoritmo y complejidad. la consulta de puntos se beneficia ya que todas las regiones espaciales
estn cubiertas por un nodo como mximo. Se sigue una sola ruta y se
El R*-Tree utiliza el mismo algoritmo que el rbol R regular para las
visitan menos nodos que con el R-Tree.
operaciones de consulta y supresin.

Al insertar, el rbol R * utiliza una estrategia combinada. Para los


nodos de hojas, la superposicin se minimiza, mientras que, para los 3) Desventajas.
nodos internos, la ampliacin y el rea se minimizan.
Dado que los rectngulos estn duplicados, un R+-Tree puede ser
Cuando se divide, el rbol R * utiliza una divisin topolgica que
ms grande que un R-Tree construido en el mismo conjunto de datos.
elige un eje dividido basado en el permetro, y luego minimiza la
La construccin y mantenimiento de R+-Tree es ms complejo que la
superposicin.
construccin y mantenimiento de R-Tree y otras variantes del R-Tree.
Adems de una estrategia de divisin mejorada, el R*-Tree tambin
trata de evitar las divisiones mediante la reinsercin de objetos y
subrboles en el rbol, inspirado en el concepto de equilibrar un B- V. REFERENCIAS.
Tree.
Web:
La peor consulta de caso y la complejidad de borrado son idnticas
al R-Tree. La estrategia de insercin del R*-Tree es con O(M log M) https://es.wikipedia.org/wiki/%C3%81rbol-R
ms compleja que la estrategia de divisin lineal O(M) del R-Tree,
http://elki.dbs.ifi.lmu.de/releases/release0.6.0/doc/de/lmu/ifi/dbs/elki/i
pero menos compleja que la estrategia de divisin cuadrtica O(M2)
ndex/tree/spatial/rstarvariants/rstar/package-summary.html
para un tamao de pgina de M objetos y tiene poco impacto en la
complejidad total. La complejidad total del inserto es todava https://github.com/davidmoten/rtree
comparable al R-Tree: las reinserciones afectan a lo ms a una rama
del rbol y por lo tanto O(log n) reinserciones, comparable a la https://www.ibm.com/support/knowledgecenter/SSGU8G_11.50.0/co
realizacin de una divisin en un R-rbol regular. As que en general, m.ibm.rtree.doc/rtree.htm
la complejidad de la R*-Tree es la misma que la de un R-Tree regular.
http://www-db.deis.unibo.it/courses/SI-LS/papers/Gut84.pdf

B. B+-Tree.
Un R+-Tree es un mtodo para buscar datos usando una ubicacin, a
menudo (x, y) coordenadas, ya menudo para ubicaciones en la
superficie de la tierra. La bsqueda en un nmero es un problema
resuelto; buscar en dos o ms, y pidiendo lugares que estn cerca en
ambas direcciones X e Y, requiere algoritmos ms hbiles.

Fundamentalmente, un R+-Tree es una estructura de datos de rbol,


una variante del R-Tree, utilizada para indexar informacin espacial.