Upload
anabel-kelley
View
222
Download
0
Embed Size (px)
DESCRIPTION
Motivation R Tree Every parent completely covers its children A child MBR may be covered by more than one parent. It is stored under only one of them. Minimizes only area. Multiple nodes should be visited because of overlap (MBRs).
Citation preview
R* Tree
By Rohan Sadale
Akshay Kulkarni
Motivation
Optimization criteria for R* Tree
High level Algorithm
Example
Performance
Agenda
Motivation R Tree
Every parent completely covers its children A child MBR may be covered by more than one
parent. It is stored under only one of them. Minimizes only area. Multiple nodes should be visited because of overlap
(MBRs).
Motivation R+ Tree
Disjoint MBRs Prevents overlapping by duplicating objects
across leaf nodes
Motivation R* Tree
Improved query performance over R-Tree But, higher construction cost Incorporates a combined optimization of:
-area -margin -overlap
Follows an engineering approach to find best possible combinations of the criteria mentioned below:
Minimization of area covered by each MBR Minimization of overlap between MBRs Minimization of MBR margins Maximization of storage utilization
But, can’t do all at once. Need a heuristic approach.
Optimization criteria for R* Tree
High Level Algorithm Same algorithm as the R-tree for query and delete
operations.
When inserting, the R*-tree uses a combined strategy. For inner nodes (non-leaf), enlargement and area
are minimized. For leaf nodes, overlap is minimized.
Deletion and reinsertion of entries allows them to "find" a place in the tree that may be more appropriate than their original location.
When a node overflows, a portion of its entries are removed from the node and reinserted into the tree.
This has the effect of producing more well-clustered groups of entries in nodes, reducing node coverage.
R*-Tree example
a
b
c
e
d
f
g
i
h
j
N3
N4
N2
N1
N6N
5
N5
N6
N1
N2
N3
N4
jihgfedcba
R*-Tree example
a
b
c
e
d
k
f
g
i
h
j
N3
N4
N2
N1
N6N
5
N5
N6
N1
N2
N3
N4
jihgfedcba
Insert k
R*-Tree example
a
b
c
e
d
k
f
g
i
h
j
N3
N4
N2
N1
N6N
5
N5
N6
N1
N2
N3
N4
jihgfedcba
Insert kCheck for minimum area enlargement at root node.N5 or N6 ? - choose N5
k ?
R*-Tree example
a
b
c
e
d
k
f
g
i
h
j
N3
N4
N2
N1
N6N
5
N5
N6
N1
N2
N3
N4
jihgfedcba
Insert kCheck for minimum area enlargement at next non leaf node. N1 or N2 ? - choose N1
k ?
R*-Tree example
a
b
c
e
d
k
f
g
i
h
j
N3
N4
N2
N1
N6N
5
N5
N6
N1
N2
N3
N4
jihgfedcba
Insert kIf node capacity is 3., then where will ‘k’ go?Reinsertion of nodes from nearest MBRs (strategy - overlap minimization)
k ?
R*-Tree example
a
b
c
e
d
k
f
g
i
h
j
N3
N4
N2
N1
N6N
5
N5
N6
N1
N2
N3
N4
jihgfedcba
Insert kIf node capacity is 3., then where will ‘k’ go?
kRe
inse
rt n
odes
from
N1
and
N2
R*-Tree example
a
b
c
e
d
k
f
g
i
h
j
N3
N4
N2
N1
N6N
5
N5
N6
N1
N2
N3
N4
jihgfedkba
Insert kIf node capacity is 3., then where will ‘k’ go?- Reinsertion !!!
c
R-Tree vs R+ Tree vs R* Tree
j
a b
c
e
f g
h i
12 3
1st level index
leafs
1 2 3
a b c e f g h i
d
d
new data
x new data: x
Initial data:{a,b,…,h,i}
Legend
Initial R-tree
R-Tree
j
a b
c
e
f g
h i
1
23
1st level index
leafs
dnew data
x new data: x
Initial data:{a,b,…,h,i}
Legend
R+ Tree
j
a b
c
e
f g
h i
1
23
1st level index
leafs
dnew data
x new data: x
Initial data:{a,b,…,h,i}
Legend
R* Tree
j
a b
c
e
f g
h i
1
2
31st level index
leafs
dnew data
x new data: x
Initial data:{a,b,…,h,i}
Legend
Performance Improved split heuristic produces pages that are more
rectangular and thus better for many applications.
Reinsertion method optimizes the existing tree, but increases complexity.
Efficiently supports point and spatial data at the same time.
References
Encyclopedia of GIS: R*-tree, H. Kriegel, P. Kunath, page 987-992.
R-Trees: Theory and Applications, Yannis Manolopoulos, Alexandros Nanopoulos, Apostolos N. Papadopoulos and Yannis Theodoridis
Wikipedia - https://en.wikipedia.org/wiki/R*_tree
Thank you :)