R* Tree By Rohan Sadale Akshay Kulkarni. Motivation Optimization criteria for R* Tree High level...

Preview:

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 :)