### 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 non-convex, 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 O(mn log n) time, (r, 2)CN in O(r^{2}m log n) time (for r ≫), 3CN in O(m^{3}n log n) time, kCN in O(m^{2k}n^{k} log n) or O((mn)^{k+1}) time, and kNN in O((mn)^{2k+1}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 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.

Original language | English (US) |
---|---|

Pages (from-to) | 183-218 |

Number of pages | 36 |

Journal | Algorithmica (New York) |

Volume | 19 |

Issue number | 1 |

State | Published - 1997 |

### Fingerprint

### Keywords

- Computational geometry
- Containment
- Layout
- Marker making
- Nesting

### ASJC Scopus subject areas

- Computer Graphics and Computer-Aided Design
- Software
- Safety, Risk, Reliability and Quality
- Applied Mathematics

### Cite this

*Algorithmica (New York)*,

*19*(1), 183-218.

**Multiple translational containment part II : Exact algorithms.** / Milenkovic, Victor.

Research output: Contribution to journal › Article

*Algorithmica (New York)*, vol. 19, no. 1, pp. 183-218.

}

TY - JOUR

T1 - Multiple translational containment part II

T2 - Exact algorithms

AU - Milenkovic, Victor

PY - 1997

Y1 - 1997

N2 - 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 non-convex, 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 O(mn log n) time, (r, 2)CN in O(r2m log n) time (for r ≫), 3CN in O(m3n log n) time, kCN in O(m2knk log n) or O((mn)k+1) time, and kNN in O((mn)2k+1LP(2k, 2k(2k + 1)mn + k(k - 1)m2)) 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 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.

AB - 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 non-convex, 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 O(mn log n) time, (r, 2)CN in O(r2m log n) time (for r ≫), 3CN in O(m3n log n) time, kCN in O(m2knk log n) or O((mn)k+1) time, and kNN in O((mn)2k+1LP(2k, 2k(2k + 1)mn + k(k - 1)m2)) 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 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.

KW - Computational geometry

KW - Containment

KW - Layout

KW - Marker making

KW - Nesting

UR - http://www.scopus.com/inward/record.url?scp=0003584809&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0003584809&partnerID=8YFLogxK

M3 - Article

AN - SCOPUS:0003584809

VL - 19

SP - 183

EP - 218

JO - Algorithmica

JF - Algorithmica

SN - 0178-4617

IS - 1

ER -