Partitioning a Polygon Into Small Pieces

11/02/2022
by   Mikkel Abrahamsen, et al.
0

We study the problem of partitioning a given simple polygon P into a minimum number of polygonal pieces, each of which has bounded size. We give algorithms for seven notions of `bounded size,' namely that each piece has bounded area, perimeter, straight-line diameter, geodesic diameter, or that each piece must be contained in a unit disk, an axis-aligned unit square or an arbitrarily rotated unit square. A more general version of the area problem has already been studied. Here we are, in addition to P, given positive real values a_1,…,a_k such that the sum ∑_i=1^k a_i equals the area of P. The goal is to partition P into exactly k pieces Q_1,…,Q_k such that the area of Q_i is a_i. Such a partition always exists, and an algorithm with running time O(nk) has previously been described, where n is the number of corners of P. We give an algorithm with optimal running time O(n+k). For polygons with holes, we get running time O(nlog n+k). For the other problems, it seems out of reach to compute optimal partitions for simple polygons; for most of them, even in extremely restricted cases such as when P is a square. We therefore develop O(1)-approximation algorithms for these problems, which means that the number of pieces in the produced partition is at most a constant factor larger than the cardinality of a minimum partition. Existing algorithms do not allow Steiner points, which means that all corners of the produced pieces must also be corners of P. This has the disappointing consequence that a partition does often not exist, whereas our algorithms always produce useful partitions. Furthermore, an optimal partition without Steiner points may require Ω(n) pieces for polygons where a partition consisting of just 2 pieces exists when Steiner points are allowed.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset
Success!
Error Icon An error occurred

Sign in with Google

×

Use your Google Account to sign in to DeepAI

×

Consider DeepAI Pro