DeepAI AI Chat
Log In Sign Up

Tiling with Squares and Packing Dominos in Polynomial Time

by   Anders Aamand, et al.

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× 2 squares (that is, deciding if P is the union of a set of non-overlapping copies of the 2× 2 square) and one for packing P with a maximum number of non-overlapping and axis-parallel 2× 1 dominos, allowing rotations of 90^∘. As packing is more general than tiling, the latter algorithm can also be used to decide if P can be tiled by 2× 1 dominos. These are classical problems with important applications in VLSI design, and the related problem of finding a maximum packing of 2× 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(nlog n) algorithm for tiling with squares, and a more involved O(n^4) algorithm for packing and tiling with dominos.


page 1

page 2

page 3

page 4


Tight Approximation Algorithms for Two Dimensional Guillotine Strip Packing

In the Strip Packing problem (SP), we are given a vertical half-strip [0...

Optimal Rectangle Packing: An Absolute Placement Approach

We consider the problem of finding all enclosing rectangles of minimum a...

On data reduction for dynamic vector bin packing

We study a dynamic vector bin packing (DVBP) problem. We show hardness f...

Framework for ∃ℝ-Completeness of Two-Dimensional Packing Problems

We show that many natural two-dimensional packing problems are algorithm...

Rectangle Blanket Problem: Binary integer linear programming formulation and solution algorithms

A rectangle blanket is a set of non-overlapping axis-aligned rectangles,...

Orthogonal dissection into few rectangles

We describe a polynomial time algorithm that takes as input a polygon wi...

Enumerating All Convex Polyhedra Glued from Squares in Polynomial Time

We present an algorithm that enumerates and classifies all edge-to-edge ...