Fall 20051 Orthogonal Range Search deBerg et. al (Chap.5)

Preview:

Citation preview

Fall 2005 1

Orthogonal Range Search

deBerg et. al (Chap.5)

Fall 2005 2

1D Range SearchData stored in balanced binary search tree T Input: range tree T and range [x,x’]Output: all points in the range

Fall 2005 3

Idea

Find split nodeFrom split node, find path to , the node x; report all right subtree along the pathFrom split node, find path to ’, the node x’; report all left subtree along the pathCheck and ’

x x’

split-node

Fall 2005 4

Performance

T: O(n) storage, built in O(nlogn)Query: Worst case: (n) … sounds bad Refined analysis (output-sensitive)

Output k: ReportSubTree O(k) Traverse tree down to or ’: O(logn) Total: O(logn + k)

Fall 2005 5

2D Kd-tree for 2D range search

Kd-tree: special case of BSPInput: [x,x’][y,y’]Output: all points in range

Fall 2005 6

Build kd-tree

Break at median n/2 nodesLeft (and bottom) child stores the splitting line

)log()(

2/2)()(

nnOnT

nTnOnT

Fall 2005 7

Step-by-Step (left subtree)

5

8

10

9

6

7

2

3

4

1

1,2,3,4,5 6,7,8,9,10

Fall 2005 8

5

8

10

9

6

7

2

3

4

1

6,7,8,9,10

1,2,3 4,5

Fall 2005 9

5

8

10

9

6

7

2

3

4

1

6,7,8,9,10

4,5

1,2 3

Fall 2005 10

5

8

10

9

6

7

2

3

4

1

6,7,8,9,10

4,5

3

1 2

Fall 2005 11

5

8

10

9

6

7

2

3

4

1

6,7,8,9,10

3

1 2

4 5

Fall 2005 12

Range Search Kd-Tree

Idea: Traverse the kd-tree; visit only nodes wh

ose region intersected by query rectangle If region is fully contained, report the sub

tree If leaf is reached, query the point against

the range

Fall 2005 13

Algorithm v

lc(v) rc(v)

v

lc(v)

rc(v)

Fall 2005 14

Examplel1 l1

l2

l2 l3

l3

Fall 2005 15

Region Intersection & Containment

Each node in kd-tree implies a region in 2D (k-d in general): [xl,xh]×[yl,yh] Each region can be derived from the defining vert

ex and region of parent Note: the region can be unbounded

The query rectangle: [x, x’]×[y, y’]Containment: [xl,xh] [x, x’] [yl,yh] [y, y’]

Intersection test can be done in a similar way

Fall 2005 16

Example

2

3

4

1

1(-4,0)2(0,3)3(1,2)4(3,-3)

1 2

3 4

(-,0]×(-,)

(-,)×(-,)

Fall 2005 17

Example

2

3

4

1

1(-4,0)2(0,3)3(1,2)4(3,-3)

1 2

3 4

(-,0]×(-,)

(-,)×(-,)

(-,0]×(-,0]

Fall 2005 18

Example

2

3

4

1

1(-4,0)2(0,3)3(1,2)4(3,-3)

1 2

3 4

(-,)×(-,)

(0,)×(-,)

Fall 2005 19

Example

2

3

4

1

1(-4,0)2(0,3)3(1,2)4(3,-3)

1 2

3 4

(-,)×(-,)

(0,)×(-,)

(0,)×(-3,)

Fall 2005 20

Homework

Research on linear algorithm for median finding. Write a summary.

Build a kd-tree of the points on the following page. Do the range query according to the algorithm on p.13 Detail the region of each node and intersection/

containment check

Fall 2005 21

a

h

b

d

g

fc

e

Read off coordinate from the sketching layout, e.g., a=(-4,2)Query rectangle = [-2,4]×[-1,3]

Recommended