Multiple Translational Containment Part II: Exact Algorithms

Abstract. We present exact algorithms for finding a solution to the two-dimensional translational containment problem: find translations for k polygons which place them inside a polygonal container without overlapping. The term kCN denotes the version in which the polygons are convex and the container is nonconvex, and the term kNN denotes the version in which the polygons and the container are nonconvex. The notation (r,k)CN, (r,k)NN, and so forth refers to the problem of finding all subsets of size k out of r objects that can be placed in a container. The polygons have up to m vertices, and the container has n vertices, where n is usually much larger than m. We present exact algorithms for the following: 2CN in ${\it O}(mn\log n)$ time, (r,2)CN in ${\it O}(r^2m\log n)$ time (for $r\gg n$ ), 3CN in ${\it O}(m^3n\log n)$ time, kCN in ${\it O}(m^{2k}n^k\log n)$ or $O((mn)^{k+1})$ time, and kNN in $$ {\it O}((mn)^{2k+1}\mbox{LP}(2k,2k(2k+1)mn+k(k-1)m^2)) $$ time, where LP(a,b) is the time to solve a linear program with a variables and b constraints. All these results are improvements on previously known running times except for the last. The algorithm for kNN is slower asymptotically than the naive ${\it O}((mn)^{2k}\log n)$ algorithm, but is expected to be much faster in practice. The algorithm for 2CN is based on the use of separating line orientations as a means of characterizing the solution. The solution to 3CN also uses a separating line orientation characterization leading to a simple and robust ``carrousel'' algorithm. The kCN algorithm uses the idea of disassembling the layout to the left. Finally, the kNN algorithm uses the concept of subdivision trees and linear programming.

[1]  V. Milenkovic,et al.  Compaction and separation algorithms for non-convex polygons and their applications☆ , 1995 .

[2]  Victor J. Milenkovic,et al.  Multiple Translational Containment Part I: An Approximate Algorithm , 1997, Algorithmica.

[3]  Chee-Keng Yap,et al.  A geometric consistency theorem for a symbolic perturbation scheme , 1988, SCG '88.

[4]  Zhenyu Li,et al.  Multiple Containment Methods , 1994 .

[5]  Zhenyu Li,et al.  Compaction algorithms for non-convex polygons and their applications , 1995 .

[6]  Francis Avnaïm Placement et déplacement de formes rigides ou articulées , 1989 .

[7]  Herbert Edelsbrunner,et al.  Simulation of simplicity: a technique to cope with degenerate cases in geometric algorithms , 1988, SCG '88.

[8]  Jean Serra,et al.  Image Analysis and Mathematical Morphology , 1983 .

[9]  Leonidas J. Guibas,et al.  A kinetic framework for computational geometry , 1983, 24th Annual Symposium on Foundations of Computer Science (sfcs 1983).

[10]  Michael Ian Shamos,et al.  Computational geometry: an introduction , 1985 .

[11]  J. Davenport Editor , 1960 .

[12]  H. Minkowski Volumen und Oberfläche , 1903 .

[13]  Steven Fortune A Fast Algorithm for Polygon Containment by Translation (Extended Abstract) , 1985, ICALP.

[14]  Olivier Devillers Simultaneous containment of several polygons: analysis of the contact configurations , 1993, Int. J. Comput. Geom. Appl..

[15]  Wei Li Zhang,et al.  Placement and compaction of nonconvex polygons for clothing manufacture , 1992 .

[16]  Jean-Daniel Boissonnat,et al.  Simultaneous containment of several polygons , 1987, SCG '87.

[17]  H. Minkowski Volumen und Oberfläche , 1903 .