160 likes | 267 Views
Optimal Rectangular Partition of a Rectilinear Polygonal Region. Dagstuhl 2004. Hee-Kap Ahn, Tetsuo Asano Gabriel Valiente. smallest dimension or thinnest rectangle. Problem: Given a rectilinear polygon P possibly with holes, partition it into
E N D
Optimal Rectangular Partition of a Rectilinear Polygonal Region Dagstuhl 2004 Hee-Kap Ahn, Tetsuo Asano Gabriel Valiente
smallest dimension or thinnest rectangle Problem: Given a rectilinear polygon P possibly with holes, partition it into rectangles so that the smallest dimension of the resulting rectangles is maximized. chord flipping for improvement?
Problem: Given a rectilinear polygon P possibly with holes, partition it into rectangles so that the smallest dimension of the resulting rectangles is maximized. Define a basic grid by extending rays from vertices. Is any optimal solution always associated with the basic grid?
Some difficult examples Basic grid
not optimal optimal Some more examples differences: only vertex cuts are used in the left partition the middle cut is not associated with any vertex in the right partition. (middle line is not a vertex cut => floating cut)
Some more examples optimal solution using a floating cut incident to no vertex two cuts incident to a reflex vertex J. O'Rourke and G. Tewari, "The Structure of Optimal Partitions of Orthogonal Polygons into Fat Rectangles," Computational Geometry: Theory and Applications, pp.49-71, vol 28, 2004.
Some definitions vertex cuts: those incident to a polygon vertex anchored cuts: those touching on a point of the polygon's boundary (vertex cuts are special cases of anchored cuts) floating cuts: those which are strictly interior to the polygon floating cut anchored cut vertex cut anchored cuts are required for optimal solution floating cuts are required for optimal solution only vertex cuts suffice for optimal solution
Previous results (J. O'Rourke and G. Tewari) O(n42)-time algorithm for a rectilinear polygon without any hole when all of three types of cuts are allowed to use. O(n5)-time algorithm when no anchored or floating cuts are allowed. key idea: dynamic programming for a simple polygon. Conjecture: NP-complete if we allow holes. Our goal: To improve the O(n5)-time algorithm for the case no anchored or floating cuts are allowed. Holes are allowed. Key idea: formulation by 2SAT
Polynomial-time algorithm First define a basic grid by extending rays from each convex corner. Define a set of edges of increasing lengths from the starting corner. Assign a variable to each edge h(i,j) = 1 if a j-th horizontal edge from i-th corner is used for partition 0 otherwise v(i,j) = 1 if a j-th vertical edge v_j is used for partition 0 otherwise
h(i,1) h(i,2) h(i,3) h(i,4) We must choose at most one of them O(n2) 2SAT clauses for each corner A chord is called a partial chord if one of its endpoint does not touch the boundary. Otherwise, it is called a complete chord.
If two convex corners have the same coordinate, then each edge is doubled in each direction. vj h(i,1) h(i,2) vi h(i,3) h(i,4) conditions associated from the both corners more clauses (constraints)
If two convex corners have the same coordinate, then each edge is doubled in each direction. vj h(i,1) h(i,2) vi h(i,3) h(i,4) two chords from different corners cannot overlap. If the two corners are connected by a complete chord, then it must be divided into two chords from different corners.
Vertical chords: v(i,1), v(i,2), ... same for horizontal chords Constraint at each convex corner vi h(i,j) for each pair of chords incident to a corner vi v(i,k) constraint for parallel chords (one of them can be boundary edge) h(i,j) gap < q h(k,l) cannot choose both of them
constraint for a pair of partial chords v(k,l) If two partial chords meet in the interior of the region, they cannot stop there h(i,j) Theorem 1: Any optimal solution associated with the basic grid has a corresponding truth assignments to the boolean variables. Theorem 2: An optimal rectangular partition of a polygonal region with n corners can be found in O(n3log n) time and space by solving corresponding 2SAT problems O(log n) times.