Search Strategies for Rectangle Packing

  • Helmut Simonis
  • Barry O’Sullivan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5202)


Rectangle (square) packing problems involve packing all squares with sizes 1 ×1 to n ×n into the minimum area enclosing rectangle (respectively, square). Rectangle packing is a variant of an important problem in a variety of real-world settings. For example, in electronic design automation, the packing of blocks into a circuit layout is essentially a rectangle packing problem. Rectangle packing problems are also motivated by applications in scheduling. In this paper we demonstrate that an “off-the-shelf” constraint programming system, SICStus Prolog, outperforms recently developed ad-hoc approaches by over three orders of magnitude. We adopt the standard CP model for these problems, and study a variety of search strategies and improvements to solve large rectangle packing problems. As well as being over three orders of magnitude faster than the current state-of-the-art, we close eight open problems: two rectangle packing problems and six square packing problems. Our approach has other advantages over the state-of-the-art, such as being trivially modifiable to exploit multi-core computing platforms to parallelise search, although we use only a single-core in our experiments. We argue that rectangle packing is a domain where constraint programming significantly outperforms hand-crafted ad-hoc systems developed for this problem. This provides the CP community with a convincing success story.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aggoun, A., Beldiceanu, N.: Extending CHIP in order to solve complex scheduling problems. Journal of Mathematical and Computer Modelling 17(7), 57–73 (1993)CrossRefGoogle Scholar
  2. 2.
    Beldiceanu, N., Bourreau, E., Simonis, H.: A note on perfect square placement. In: Prob009 in CSPLIB (1999)Google Scholar
  3. 3.
    Beldiceanu, N., Carlsson, M.: Sweep as a generic pruning technique applied to the non-overlapping rectangles constraint. In: Walsh [16], pp. 377–391Google Scholar
  4. 4.
    Beldiceanu, N., Carlsson, M., Poder, E.: New filtering for the cumulative constraint in the context of non-overlapping. In: Perron, L., Trick, M.A. (eds.) CPAIOR 2008. LNCS, vol. 5015, pp. 21–35. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. 5.
    Beldiceanu, N., Carlsson, M., Poder, E., Sadek, R., Truchet, C.: A generic geometrical constraint kernel in space and time for handling polymorphic -dimensional objects. In: Bessière, C. (ed.) CP 2007. LNCS, vol. 4741, pp. 180–194. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  6. 6.
    Beldiceanu, N., Contejean, E.: Introducing global constraints in CHIP. Journal of Mathematical and Computer Modelling 20(12), 97–123 (1994)MATHCrossRefGoogle Scholar
  7. 7.
    Beldiceanu, N., Guo, Q., Thiel, S.: Non-overlapping constraints between convex polytopes. In: Walsh [16], pp. 392–407.Google Scholar
  8. 8.
    Carlsson, M., et al.: SICStus Prolog User’s Manual, 4th edn. Swedish Institute of Computer Science (2007) ISBN 91-630-3648-7Google Scholar
  9. 9.
    Gent, I., Petrie, K., Puget, J.F.: Symmetry in constraint programming. In: Rossi, F., van Beek, P., Walsh, T. (eds.) Handbook of Constraint Programming, ch. 10. Elsevier, Amsterdam (2006)Google Scholar
  10. 10.
    Korf, R.E.: Optimal rectangle packing: Initial results. In: Giunchiglia, E., Muscettola, N., Nau, D.S. (eds.) ICAPS, pp. 287–295. AAAI, Menlo Park (2003)Google Scholar
  11. 11.
    Korf, R.E.: Optimal rectangle packing: New results. In: Zilberstein, S., Koehler, J., Koenig, S. (eds.) ICAPS, pp. 142–149. AAAI, Menlo Park (2004)Google Scholar
  12. 12.
    Moffitt, M.D., Ng, A.N., Markov, I.L., Pollack, M.E.: Constraint-driven floorplan repair. In: Sentovich, E. (ed.) DAC, pp. 1103–1108. ACM, New York (2006)Google Scholar
  13. 13.
    Moffitt, M.D., Pollack, M.E.: Optimal rectangle packing: A meta-CSP approach. In: Long, D., Smith, S.F., Borrajo, D., McCluskey, L. (eds.) ICAPS, pp. 93–102. AAAI, Menlo Park (2006)Google Scholar
  14. 14.
    Roy, J.A., Markov, I.L.: Eco-system: Embracing the change in placement. In: ASP-DAC, pp. 147–152. IEEE, Los Alamitos (2007)Google Scholar
  15. 15.
    Van Hentenryck, P.: Scheduling and packing in the constraint language cc(FD). In: Zweben, M., Fox, M. (eds.) Intelligent Scheduling. Morgan Kaufmann Publishers, San Francisco (1994)Google Scholar
  16. 16.
    Walsh, T. (ed.): Principles and Practice of Constraint Programming - CP 2001. LNCS, vol. 2239. Springer, Heidelberg (2001)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Helmut Simonis
    • 1
  • Barry O’Sullivan
    • 1
  1. 1.Cork Constraint Computation Centre Department of Computer ScienceUniversity College CorkIreland

Personalised recommendations