Tiling with Squares and Packing Dominos in Polynomial Time

Anders Aamand, Mikkel Abrahamsen, Thomas D. Ahle, Peter M. R. Rasmussen

We consider planar tiling and packing problems with polyomino pieces and a polyomino container $P$. A polyomino is a polygonal region with axis parallel edges and corners of integral coordinates, which may have holes. We give two polynomial time algorithms, one for deciding if $P$ can be tiled with $2\times 2$ squares (that is, deciding if $P$ is the union of a set of non-overlapping copies of the $2\times 2$ square) and one for packing $P$ with a maximum number of non-overlapping and axis-parallel $2\times 1$ dominos, allowing rotations of $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 \emph{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^4)$ algorithm for packing and tiling with dominos.

Knowledge Graph



Sign up or login to leave a comment