# Multiple translational containment part II: Exact algorithms

Research output: Contribution to journalArticle

17 Citations (Scopus)

### 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(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.

Original language English (US) 183-218 36 Algorithmica (New York) 19 1 Published - 1997

### Fingerprint

Exact Algorithms
Container
Containers
Polygon
Denote
Line
Robust Algorithm
Term
Subdivision
Linear Program
Notation
Overlapping
Layout
Linear programming
Subset

### 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

In: Algorithmica (New York), Vol. 19, No. 1, 1997, p. 183-218.

Research output: Contribution to journalArticle

@article{4d9374552b5446bd8e4ba5bfe6a6ab57,
title = "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 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.",
keywords = "Computational geometry, Containment, Layout, Marker making, Nesting",
author = "Victor Milenkovic",
year = "1997",
language = "English (US)",
volume = "19",
pages = "183--218",
journal = "Algorithmica",
issn = "0178-4617",
publisher = "Springer New York",
number = "1",

}

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 -