English

Tiling with Squares and Packing Dominos in Polynomial Time

Computational Geometry 2021-08-10 v2 Data Structures and Algorithms

Abstract

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 PP. We give two polynomial time algorithms, one for deciding if PP can be tiled with k×kk\times k squares for any fixed kk which can be part of the input (that is, deciding if PP is the union of a set of non-overlapping k×kk\times k squares) and one for packing PP with a maximum number of non-overlapping and axis-parallel 2×12\times 1 dominos, allowing rotations by 9090^\circ. As packing is more general than tiling, the latter algorithm can also be used to decide if PP can be tiled by 2×12\times 1 dominos. These are classical problems with important applications in VLSI design, and the related problem of finding a maximum packing of 2×22\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 PP. 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(nlogn)O(n\log n) algorithm for tiling with squares, and a more involved O(n3polylogn)O(n^3\,\text{polylog}\, n) algorithm for packing and tiling with dominos, where nn is the number of corners of PP.

Keywords

Cite

@article{arxiv.2011.10983,
  title  = {Tiling with Squares and Packing Dominos in Polynomial Time},
  author = {Anders Aamand and Mikkel Abrahamsen and Thomas D. Ahle and Peter M. R. Rasmussen},
  journal= {arXiv preprint arXiv:2011.10983},
  year   = {2021}
}

Comments

Compared to the first version, running times for domino packing have been improved and a simpler algorithm has been described

R2 v1 2026-06-23T20:25:27.364Z