Hardness of Packing, Covering and Partitioning Simple Polygons with Unit Squares
<|reference_start|>Hardness of Packing, Covering and Partitioning Simple Polygons with Unit Squares: We show that packing axis-aligned unit squares into a simple polygon $P$ is NP-hard, even when $P$ is an orthogonal and orthogonally convex polygon with half-integer coordinates. It has been known since the early 80s that packing unit squares into a polygon with holes is NP-hard~[Fowler, Paterson, Tanimoto, Inf. Process. Lett., 1981], but the version without holes was conjectured to be polynomial-time solvable more than two decades ago~[Baur and Fekete, Algorithmica, 2001].   Our reduction relies on a new way of reducing from \textsc{Planar-3SAT}. Interestingly, our geometric realization of a planar formula is non-planar. Vertices become rows and edges become columns, with crossings being allowed. The planarity ensures that all endpoints of rows and columns are incident to the outer face of the resulting drawing. We can then construct a polygon following the outer face that realizes all the logic of the formula geometrically, without the need of any holes.   This new reduction technique proves to be general enough to also show hardness of two natural covering and partitioning problems, even when the input polygon is simple. We say that a polygon $Q$ is \emph{small} if $Q$ is contained in a unit square. We prove that it is NP-hard to find a minimum number of small polygons whose union is $P$ (covering) and to find a minimum number of pairwise interior-disjoint small polygons whose union is $P$ (partitioning), when $P$ is an orthogonal simple polygon with half-integer coordinates. This is the first partitioning problem known to be NP-hard for polygons without holes, with the usual objective of minimizing the number of pieces.<|reference_end|>
@article{abrahamsen2024hardness,
    title={Hardness of Packing, Covering and Partitioning Simple Polygons with Unit
  Squares},
    author={Mikkel Abrahamsen, Jack Stade},
    journal={arXiv preprint arXiv:2404.09835},
    year={2024},
    archivePrefix={arXiv},
    eprint={2404.09835},
    primaryClass={cs.CG}
}