DOC PREVIEW
UF COP 5536 - Priority Search Trees

This preview shows page 1-2-3-24-25-26 out of 26 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 26 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Priority Search TreesminXinRectangle(xL,xR,yT)maxXinRectangle(xL,xR,yT)minYinXrange(xL,xR)enumerateRectangle(xL,xR,yT)ComplexityApplications – VisibilityTranslucent LinesOpaque LinesBin PackingCombined First And Best FitFirst FitBest FitOnline Intersection Of Linear IntervalsExampleSlide 16Interval ContainmentSlide 19Intersecting Rectangle PairsAlgorithmSlide 22IP Router TableSlide 24Slide 25Slide 26Slide 27Priority 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.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 <= xR, 0 <= yT.•I.e., return element with min x such that xL <= x <= xR and 0 <= y <= yT.xLxRyTmaxXinRectangle(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 <= xR, 0 <= yT.•I.e., return element with max x such that xL <= x <= xR and 0 <= y <= yT.xLxRyTminYinXrange(xL,xR)•Return element with min y-coordinate in the rectangle defined by the lines, x= xL, x= xR, y = 0, y = infinity, xL <= xR.•I.e., return element with min y such that xL <= x <= xR.xLxRenumerateRectangle(xL,xR,yT)•Return all elements in the rectangle defined by the lines, x= xL, x= xR, y = 0, y = yT, xL <= xR, 0 <= yT.•I.e., return all elements such that xL <= x <= xR and 0 <= y <= yT.xLxRyTComplexity•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.Applications – Visibility •Dynamic set of semi-infinite vertical line segments.Vertical lines with end points (xi,infinity) and (xi,yi).(2,1)(3,4)(4,2)(5,6)(6,3)Opaque/translucent lines.Translucent Lines•Eye is at (x,y).•Priority search tree of line end points.•enumerateRectangle(x, infinity, y).(2,1)(3,4)(4,2)(5,6)(6,3)0yxinfinityOpaque Lines•Eye is at (x,y).•Priority search tree of line end points.•minXinRectangle(x, infinity, y).(2,1)(3,4)(4,2)(5,6)(6,3)0yxinfinityBin Packing•First fit.•Best fit.•Combination.Some items packed using first fit.Others packed using best fit.•Memory allocation.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 <= j < n.First Fit•minYinXrange(neededSize, infinity)bin indexavailable capacityneededSizeBest Fit•minXinRectangle(neededSize, infinity, infinity)bin indexavailable capacityneededSizeOnline Intersection Of Linear Intervals•Intervals are of the form [i,j], i < 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 < v. List all machines that are busy at any time between u and v.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].1e1 3a2 4c4 6b3 6f5 7d2Example•Interval [i,j] corresponds to the pair (x,y), where x = j and y = i.1e1 3a2 4c4 6b3 6f5 7d2aefbcd•enumerateRectangle(u, infinity, v).•enumerateRectangle(2, infinity, 4).Interval Containment•List all intervals [i,j] that contain the interval [u,v].[i,j] contains [u,v] iff i <= u <= v <= j.1e1 3a2 4c4 6b3 6f5 7d2[u,v] = [5,6]Interval Containment•Interval [i,j] corresponds to the pair (x,y), where x = j and y = i.1e1 3a2 4c4 6b3 6f5 7d2aefbcd•enumerateRectangle(v, infinity, u).•enumerateRectangle(6, infinity, 5).Intersecting Rectangle Pairs•(A,B), (A,C), (D, G), (E,F) •Online interval intersection.AFCDEBGAlgorithm•Examine horizontal edges in sorted y order.Bottom edge => insert interval into a priority search tree.Top edge => report intersecting segments and delete the top edge’s corresponding bottom edge.AFCDEBGComplexity•Examine edges in sorted order.Bottom edge => insert interval into a priority search tree.Top edge => report intersecting segments and delete the top edge’s 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).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 => 101* = [10100, 10111] = [20,23]•2 prefixes may nest but may not have a proper intersectionIP Router Table•p(d) = prefixes that match d.•Use online interval intersection mapping.•p(d) = enumerateRectangle(d,infinity,d)dIP Router Table•lmp(d) = [maxStart(p(d)), minFinish(p(d))]•minXinRectangle(d,infinity,d) finds lmp(d) except when >1 prefixes have same finish point.dIP 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 biggerdIP Router Table•Complexity is O(log n) for insert, delete, and find longest


View Full Document

UF COP 5536 - Priority Search Trees

Download Priority Search Trees
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Priority Search Trees and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Priority Search Trees 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?