A polyomino is a polygonal region with axis parallel edges and corners of integral coordinates, which may have holes. In this paper, we consider planar tiling and packing problems with polyomino pieces and a polyomino container $P$. We give two polynomial time algorithms, one for deciding if $P$ can be tiled with $k\times k$ squares for any fixed $k$ which can be part of the input (that is, deciding if $P$ is the union of a set of non-overlapping $k\times k$ squares) and one for packing $P$ with a maximum number of non-overlapping and axis-parallel $2\times 1$ dominos, allowing rotations by $90^\circ$. As packing is more general than tiling, the latter algorithm can also be used to decide if $P$ can be tiled by $2\times 1$ dominos. These are classical problems with important applications in VLSI design, and the related problem of finding a maximum packing of $2\times 2$ squares is known to be NP-Hard [J. Algorithms 1990]. For our three problems there are known pseudo-polynomial time algorithms, that is, algorithms with running times polynomial in the area of $P$. However, the standard, compact way to represent a polygon is by listing the coordinates of the corners in binary. We use this representation, and thus present the first polynomial time algorithms for the problems. Concretely, we give a simple $O(n\log n)$ algorithm for tiling with squares, and a more involved $O(n^3\,\text{polylog}\, n)$ algorithm for packing and tiling with dominos, where $n$ is the number of corners of $P$.
翻译:多明度是一个多角区域, 其轴平行边缘和整体坐标角是一个圆形区域 。 在本文中, 我们考虑的是多明度和多明度容器的平面和包装问题 $P$。 我们给出了两个多明度时间算法, 一个用于决定$P$是否可以用$k\times kqums 来拼凑任何固定的美元( 也就是说, 确定$P$是一组非重叠 pol potile $k\time k平方块的组合 ) 。 在 VLSI 设计中, 这些是一组非重叠的 poler3 polar 和 $ $ 美元 的拼贴问题 。 在1990 美元 的平面计算中, 我们的平面的平面运算法是 $ 2\ 美元 。 在1990 中, 我们的平面的平面的平面运算法是 。