Priority Search Trees - PowerPoint PPT Presentation

About This Presentation
Title:

Priority Search Trees

Description:

Priority Search Trees. Keys are distinct ordered pairs (xi, yi). Basic ... delete and return element whose key is ... translucent lines. Translucent Lines ... – PowerPoint PPT presentation

Number of Views:278
Avg rating:3.0/5.0
Slides: 27
Provided by: cise8
Learn more at: https://www.cise.ufl.edu
Category:

less

Transcript and Presenter's Notes

Title: Priority Search Trees


1
Priority Search Trees
  • Keys are distinct ordered pairs (xi, yi).
  • Basic operations.
  • get(x,y) return element whose key is (x,y).
  • delete(x,y) delete and return element whose key
    is (x,y).
  • insert(x,y,e) insert element e, whose key is
    (x,y).
  • Rectangle operations.

2
minXinRectangle(xL,xR,yT)
  • Return element with min x-coordinate in the
    rectangle defined by the lines, x xL, x xR, y
    0, y yT, xL lt xR, 0 lt yT.
  • I.e., return element with min x such that
  • xL lt x lt xR and 0 lt y lt yT.

3
maxXinRectangle(xL,xR,yT)
  • Return element with max x-coordinate in the
    rectangle defined by the lines, x xL, x xR, y
    0, y yT, xL lt xR, 0 lt yT.
  • I.e., return element with max x such that
  • xL lt x lt xR and 0 lt y lt yT.

4
minYinXrange(xL,xR)
  • Return element with min y-coordinate in the
    rectangle defined by the lines, x xL, x xR, y
    0, y infinity, xL lt xR.
  • I.e., return element with min y such that
  • xL lt x lt xR.

5
enumerateRectangle(xL,xR,yT)
  • Return all elements in the rectangle defined by
    the lines, x xL, x xR, y 0, y yT, xL lt xR,
    0 lt yT.
  • I.e., return all elements such that
  • xL lt x lt xR and 0 lt y lt yT.

6
Complexity
  • O(log n) for each operation except for
    enumerateRectangle, where n is the number of
    elements in the tree.
  • Complexity of enumerateRectangle is O(log n
    s), where s is the number of elements in the
    rectangle.

7
Applications Visibility
  • Dynamic set of semi-infinite vertical line
    segments.
  • Vertical lines with end points (xi,infinity) and
    (xi,yi).

Opaque/translucent lines.
8
Translucent Lines
  • Eye is at (x,y).
  • Priority search tree of line end points.
  • enumerateRectangle(x, infinity, y).

9
Opaque Lines
  • Eye is at (x,y).
  • Priority search tree of line end points.
  • minXinRectangle(x, infinity, y).

10
Bin Packing
  • First fit.
  • Best fit.
  • Combination.
  • Some items packed using first fit.
  • Others packed using best fit.
  • Memory allocation.

11
Combined First And Best Fit
  • Bins are numbered 0, 1, , n 1.
  • Capacity of each is c.
  • Initialize priority search tree with the pairs
    (c, j), 0 lt j lt n.

12
First Fit
  • minYinXrange(neededSize, infinity)

13
Best Fit
  • minXinRectangle(neededSize, infinity, infinity)

14
Online Intersection Of Line Intervals
  • Intervals are of the form i,j, i lt j.
  • i,j may, for example represent the fact that a
    machine is busy from time i to time j.
  • Answer queries of the form which intervals
    intersect/overlap with a given interval u,v,
    u lt v.
  • List all machines that are busy at any time
    between u and v.

15
Example
  • Machine a is busy from time 1 to time 3.
  • Interval is 1,3.
  • Machines a, b, c, e, and f are busy at some time
    in the interval 2,4.

16
Example
  • Interval i,j corresponds to the pair (x,y),
    where x j and y i.
  • enumerateRectangle(u, infinity, v).
  • enumerateRectangle(2, infinity, 4).

17
Compare With Segment Tree
  • Min and max interval end points must be known in
    advance to define the root range of the segment
    tree.
  • Search interval size is 1.
  • Must break larger search intervals into unit
    intervals and remove duplicate responses.

18
Interval Containment
  • List all intervals i,j that contain the
    interval u,v.
  • i,j contains u,v iff i lt u lt v lt j.

u,v 5,6
19
Interval Containment
  • Interval i,j corresponds to the pair (x,y),
    where x j and y i.
  • enumerateRectangle(v, infinity, u).
  • enumerateRectangle(6, infinity, 5).

20
Intersecting Rectangle Pairs
  • (A,B), (A,C), (D, G), (E,F)
  • Online interval intersection.

21
Algorithm
  • Examine horizontal edges in sorted y order.
  • Bottom edge gt insert interval into a priority
    search tree.
  • Top edge gt report intersecting segments and
    delete the top edges corresponding bottom edge.

22
Complexity
  • Examine edges in sorted order.
  • Bottom edge gt insert interval into a priority
    search tree.
  • Top edge gt report intersecting segments and
    delete the top edges corresponding bottom edge.
  • O(n log n) to sort edges by y, where n is of
    rectangles.
  • Insert n intervals O(n log n).
  • Report intersecting segments O(n log n s).
  • Delete n intervals O(n log n).

23
IP Router Table
  • Longest-prefix matching
  • 10, 101, 1001
  • Destination address d 10100
  • Longest matching-prefix is 101
  • Prefix is an interval
  • d is 5 bits gt 101 10100, 10111 20,23
  • 2 prefixes may nest but may not have a proper
    intersection

24
IP Router Table
  • p(d) prefixes that match d.
  • Use online interval intersection mapping.
  • p(d) enumerateRectangle(d,infinity,d)

25
IP Router Table
  • lmp(d) maxStart(p(d)), minFinish(p(d))
  • minXinRectangle(d,infinity,d) finds lmp(d) except
    when gt1 prefixes have same finish point.

26
IP Router Table
  • Remap finish points so that all prefixes have
    different finish point.
  • f 2wf s 2w 1 , w length of d
  • f is smaller when s is bigger

27
IP Router Table
  • Complexity is O(log n) for insert, delete, and
    find longest matching-prefix.
Write a Comment
User Comments (0)
About PowerShow.com