Title: Optimal Rectangular Partition of a Rectilinear Polygonal Region
1Optimal Rectangular Partition of a Rectilinear
Polygonal Region
Dagstuhl 2004
- Hee-Kap Ahn,
- Tetsuo Asano
- Gabriel Valiente
2Problem 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?
3Problem 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?
4Some difficult examples
Basic grid
5Some difficult examples
6Some 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 gt floating cut)
7Some 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.
8Some 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
9Previous 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
10Polynomial-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
11h(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.
12If 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)
13If 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.
14Vertical 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 lt q
h(k,l)
cannot choose both of them
15constraint 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.