1 / 29

Computing the Volume of the Union of Cubes in R 3

Computing the Volume of the Union of Cubes in R 3. Pankaj K. Agarwal Haim Kaplan Micha Sharir. Problem Statement. C : Set of n cubes in R 3 U ( C ): Union of cubes in C Compute Vol( U ( C )) U ( C ) has W ( n 2 ) vertices !.

elisa
Download Presentation

Computing the Volume of the Union of Cubes in R 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computing the Volume of the Union of Cubes in R3 Pankaj K. Agarwal Haim Kaplan Micha Sharir

  2. Problem Statement C: Set of n cubes in R3 U(C):Union of cubes inC Compute Vol(U(C)) U(C) hasW(n2) vertices! Cannot compute U(C)explicitly if looking for o(n2) algorithm!

  3. Related Work B: Set of n orthogonal boxes in Rd Compute Vol(U(B)). d=1: O(nlogn) [Klee, 1977] W(nlogn) [Fredman-Weide, 1978] d=2: O(nlogn) [Bentley,1977] d≥3: O(nd-1 logn)[Bentley,1977] O(nd/2 logn)[Overmars-Yap, 1988] Can one do better if B is a set of cubes?

  4. Our Result Theorem: Volume of the union of n cubes in R3 can be computed inO(n4/3log n)time. • Plane sweep algorithm (as Overmars-Yap algorithm) • Dynamic data structure to maintain the union of squares • O(n1/3log n) (amortized) time per insert/delete Conjecture: O(npolylog(n))algorithm

  5. Overmars-Yap Algorithm (d=3) • Sweep a plane in +z-direction • Maintain the area of the cross section of the union

  6. Union of Cross-Section R: Intersection rectangles of B & the sweep plane Maintain Area(U(R))

  7. B Maintaining theArea Project R on the x-y plane and bound in a box B Insert/Delete rectangles in R

  8. Data Structure B Partition B into slabs, n1/2vertical edges (& vertices) in a slab

  9. B Partition each slab into n1/2 cells; no vertex in a cell Maintain the union of rectangles within each cell

  10. A segment tree over each slab Maintains the union within slab Update segment tree when a rectangle intersecting the slab is inserted or deleted

  11. Back to cubes n1/3 slabs, n1/3cells in a slab, n1/3 points in a cell

  12. A square intersects a cell in a more complicated way

  13. Classification of Squares in a cell y1 y0 x1 x0

  14. Classification of Rectangles in a cell Pillars (long)

  15. lower rim (long)

  16. upper rim (long)

  17. corners (short), #corners = n1/3

  18. floaters (short), #floaters= n1/3

  19. Easy to maintain the area of the union of each class • Combining the area of different classes is difficult • Maintain the areas of disjoint regions • rims • pillars – rims • corners – pillars – rims • floaters – corners – pillars – rims • Update these areas as squares inserted/deleted • Insertion/deletion of a • Long square: O(log n) time • Short square: O(n1/3log n)

  20. Maintain a list of lower rim squares sorted by increasing y coordinate of the top edge floor lower rim (long)

  21. ceiling Area = [(y1-ceil)+(floor-y0)](x1-x0) + …

  22. Maintain the cross section of the pillars with the bottom edge π Area = [(y1-ceil)+(floor-y0)](x1-x0) + π(ceil-floor) + …

  23. Corners: Partition their union into disjoint rectangles

  24. ceiling floor # rectangles: n1/3 Combine corners wilth pillars & rims to maintain ψ : Area(corners-pillars-rims) Area = [(y1-ceil)+(floor-y0)](x1-x0) + π(ceil-floor) + ψ…

  25. Maintaining Floaters Decompose the portion of union of floaters outside corners into a set R of disjoint rectangles |R| = n1/3

  26. ceiling floor Combine R with pillars and rims to maintain φ:Area(R– pillars – rims) Area = [(y1-ceil)+(floor-y0)](x1-x0) + π(ceil-floor) + ψ + φ

  27. ceiling Updating the Area • Inserting/deleting a corner/floater • Recompute ψ, φ • Time: O(n1/3log n) • Inserting/deleting a pillar • Update ψ, π, φ • Time: O(log n) • Inserting/deleting a lower (upper) rim • Update area of rims, ψ, π, φ • Updating ψ, φis expensive floor Recompute ψ, φwhenever flr/ceiling crosses a floater boundary

  28. Fortunately: ceiling floor A bottom or top edge of a “floater” can be covered once Charge the time spent in updatingψ, φto the floater edge Amortized time to insert/delete rim: O(log n)

  29. Summary • lots of open questions remain: • Improve the bound for cubes ? • Improve the bound for general boxes ? • Higher dimensions

More Related