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,\ldots,a_k$ such that the sum $\sum_{i=1}^k a_i$ equals the area of $P$. The goal is to partition $P$ into exactly $k$ pieces $Q_1,\ldots,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(n\log 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 $\Omega(n)$ pieces for polygons where a partition consisting of just $2$ pieces exists when Steiner points are allowed.
翻译:我们研究将给定的简单多边方元P$分割成一个最小数的多边形块的问题, 每种多边方元的大小都存在。 我们给出了7个“ 限制大小” 概念的算法, 即每块的界限区域、 周界、 直径直线直径、 或每块必须包含在单位盘中, 轴对齐的单位方形或任意旋转的单位方形中。 已经研究了一个更普遍的区域问题版本 。 除了美元外, 我们这里还有正值 $_ 1,\ ldots, a_k$, a... 我们给出了正数的正数 $ 1, 美元=k a 。 目标是要将美元分割成正数 $ 1,\\\\ doldots, 美元区域的面积区域区域区域是 $_a_ 。 这种分区总是存在, 而一个算得时间的算法, 美元是至少是 $ 美元 。 因此, 我们用一个极数的硬数算算算 。