I imagine this must be an introductory computational geometry question, but I'm not sure of the best search phrases, and I'm interested in variations of the question, also, so I'm hoping for pointers to useful references. I'm interested in feasible algorithms for the following problem.

Input: A connected set of points (shape) in $\mathbb{Z} \times \mathbb{Z}$.
Output: A partition of the shape into rectangles, such that the rectangles do not overlap one another, and they cover only the shape, no "empty" space.

I'm interested in finding the minimum number of rectangles, the "best" set of rectangles for any notion of best, whether this problem becomes easier or harder for different classes of shapes.

Thank you. :-)

  • 3
    $\begingroup$ Look at this MathOverflow question $\endgroup$ Commented Jan 20, 2011 at 2:13
  • $\begingroup$ @Peter Shor: Thanks very much. That looks like exactly what I need. $\endgroup$ Commented Jan 20, 2011 at 2:35
  • 3
    $\begingroup$ So should this be an answer ? or should the question be closed ? $\endgroup$ Commented Jan 20, 2011 at 4:12
  • 4
    $\begingroup$ @Suresh: I think it resolves my question, though perhaps someone else might have something to add about variants of the problem. I would prefer the question remain open in case anyone else has anything to add. I would be happy to accept it as an answer if @Peter Shor posted it as such. $\endgroup$ Commented Jan 20, 2011 at 20:04
  • $\begingroup$ I guess I can post it as an answer, even though it seems like I did very little work. You should wait to accept it until you're sure nobody else has anything to add. $\endgroup$ Commented Jan 21, 2011 at 4:34

1 Answer 1


David Eppstein gave an excellent answer for this question here on MathOverflow (responding to a question for which it is not quite as good an answer). To summarize, there is a polynomial-time algorithm for finding the minimum number of rectangles.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.