150 likes | 287 Views
Dynamic Ham-Sandwich Cuts of Convex Polygons in the Plane. Jelani Nelson Vincent Yeung. (Based on paper co-authored with Timothy Abbott, Erik D. Demaine, Martin L. Demaine, Daniel Kane, Stefan Langerman). Ham-Sandwich Cuts. Sets of red points R and green points G .
E N D
Dynamic Ham-Sandwich Cuts of Convex Polygons in the Plane Jelani Nelson Vincent Yeung (Based on paper co-authored with Timothy Abbott, Erik D. Demaine, Martin L. Demaine, Daniel Kane, Stefan Langerman)
Ham-Sandwich Cuts • Sets of red points R and green points G. • Ham-sandwich cut simultaneously bisects measure (e.g. area, perimeter, vertex count) of both. • For us, R and G are vertices of non-overlapping convex polygons.
Dynamic Version • Can insert/delete points from R and G. • Assumes invariant that points of R and G are in convex position. • O(lg n) update; O(lg3 n) query. • Two-line partition queries in O(lg3 n).
Data Structure • Maintain upper and lower hulls of each set. • Maintain signed trapezoidal area under each edge and partial sums of these areas (augmented BST). (Maintain edge length or just the number “1” if doing perimeter or vertex count).
Strategy • Find line S separating R and G • Search for the four edges cut passes through one at a time • Binary search for the correct edge • The bisector of R through a point p on S decreases slope monotonically as p goes down along S; slope of G’s bisector increases – use this for direction in binary search
Necessary Methods • FIND-EDGES(l) – Return edges of R intersected by l - O(lg n) • FIND-AREA(l) – Return area of R under l - O(lg n) • FIND-BISECTOR(p) – Return bisector of R through p - O(lg2 n)
FIND-EDGES • Endpoints of upper chain on opposites sides of l iff one edge in upper chain and one in lower. Binary search in each chain. • Else, find vertex u of upper chain on opposites side of l from chain endpoint (absolute difference between slope of l and edge is unimodal along upper chain – Fibonacci or ternary search) • Binary search through edges between u and chain endpoint to find one intersection edge. Recurse on two subchains made by removing edge.
FIND-AREA • Find edges e1 and e2 of R intersected by l and points of intersection • Compute sum of areas under edges in interval between e1 and e2 • Subtract off area under line segment defined by points of intersection. Also, subtract area under e1 and e2 below l.
FIND-BISECTOR • Given a point p, find bisector l of R through p. • Find right edge intersected by l by binary searching on the vertices of R. • Given vertex u, decide which way to go in the search by finding the area in R to the left of the line through u and p. • Do the same for left edge. • Find exact intersections of l on the edges by simple algebra.
Ham-Sandwich Cut • Binary search over right edge of R that cut passes through. • For each edge (u,v), find bisectors of R and G through u and through v. Use slopes to guide direction of binary search. • lg n iterations of binary search, and each bisector calculation takes lg2 n. Total: O(lg3 n) • Can find exact points of intersection once we know the four edges (algebra calculations).
Two-line Partition • Find pair of lines splitting plane into four regions each containing equal polygonal measure • Use our ham-sandwich data structure • A version of this problem first looked at by Megiddo in static case • Points first bisected, then colored based on side of bisecting line • Find ham-sandwich cut of the two colors
Two-line Partition (Sketch) • First find ham-sandwich cut H • Then find second line O • O either intersects neither polygon, or intersects Q1 or Q2 • View H much as the line separating two convex polygons from before (two regions split – above H and below it) • See if S can be used as O, else try to find edge on Q1 O passes through (binary search + some case analysis)
Future Directions • Dynamically maintain point of maximum Tukey depth (Tukey median) • depth(p) = min { h∩P | h a hyperplane containing p } • Intersection of lines in two-line partition gives “approximate Tukey median” (point of depth n/4) • Dynamic ham-sandwich in higher dimension • Point sets not in convex position