Advertisement

Journal of Global Optimization

, Volume 71, Issue 4, pp 935–955 | Cite as

A customized branch-and-bound approach for irregular shape nesting

  • Akang Wang
  • Christopher L. Hanselman
  • Chrysanthos E. Gounaris
Article

Abstract

We study the Nesting Problem, which aims to determine a configuration of a set of irregular shapes within a rectangular sheet of material of fixed width, such that no overlap among the shapes exists, and such that the length of the sheet is minimized. When both translation and rotation of the shapes are allowed, the problem can be formulated as a nonconvex quadratically constrained programming model that approximates each shape by a set of inscribed circles and enforces that circle pairs stemming from different shapes do not overlap. However, despite many recent advances in today’s global optimization solvers, solving this nonconvex model to guaranteed optimality remains extremely challenging even for the state-of-the-art codes. In this paper, we propose a customized branch-and-bound approach to address the Nesting Problem to guaranteed optimality. Our approach utilizes a novel branching scheme to deal with the reverse convex quadratic constraints in the quadratic model and incorporates a number of problem-specific algorithmic tweaks. Our computational studies on a suite of 64 benchmark instances demonstrate the customized algorithm’s effectiveness and competitiveness over the use of general-purpose global optimization solvers, including for the first time the ability to find global optimal nestings featuring five polygons under free rotation.

Keywords

Nesting Problem Irregular strip packing Global optimization Reverse convex quadratic constraints 

1 Introduction

“Nesting” refers to the task of finding a packing of two-dimensional shapes that minimizes the amount of material needed to carve them out of a stock. This minimization of waste can be of utmost economic importance in certain large industrial sectors, wherein a minuscule reduction in the amount of stock material used would result in significant monetary savings across the whole industry. For example, obtaining tight nesting solutions is of great practical importance when cutting metal parts for automobiles, airframes and other machinery, as well as cutting leather and fabrics for apparel and upholstery applications. In commercial settings, a human “nester” usually refines a packing solution by hand from the starting point of a computationally-identified solution [16], thereby necessitating the development of automated solutions.

This paper focuses on the Irregular Strip Packing Problem, also simply known as the Nesting Problem, which is is a rather general two-dimensional cutting and packing problem [22] where the shapes to be packed can be different to each other, irregular and nonconvex, and may possibly contain holes. The shapes, which are usually represented (approximated to arbitrary precision) by polygons, are to be packed in a stock that comes in the form of a fixed-width rectangular sheet, whose length is to be minimized. This problem has been studied extensively, with most of the focus being on the development of heuristics to obtain large-scale packings [2, 5, 6, 13]. However, while heuristic methods are practically valuable for the generation of good solutions, they can not rigorously quantify the quality of packings produced and therefore lack any guarantees of optimality. Additionally, heuristic methods often rely on the exact solution of smaller-scale problems as part of their search strategy, motivating the need to develop good exact solution strategies.

The key differences among exact, mathematical optimization-based approaches are the means by which the “non-overlapping” of shapes is satisfied. A traditional method for constraining shapes to not overlap involves constructing a “no-fit” polygon per each pair of shapes in the problem [4]. The no-fit polygon approach simplifies the task of algebraically encoding overlap between two shapes into the relatively easy task of identifying if a point lies in the interior of a polygon. In this way, one can enforce constraints that require a predefined point on a shape to lie outside the no-fit polygons of each of the other shapes. These no-fit polygons can be precomputed inputs to the optimization model, but are only applicable in the case of polygons with fixed orientation (i.e., no rotation allowed). Furthermore, many approaches leveraging the no-fit polygon concept also require the shapes to be convex. In Daniels and Milenkovic [9], the convexity of the polygons was exploited to formulate a linear programming (LP) model for solving the fixed-orientation version of the Nesting Problem. The algorithm identifies valid constraints that require the horizontal and vertical placement of polygons to shift so as to eliminate an identified overlap.

When nonconvex polygons are considered (still with no rotation), the no-fit polygon may also become nonconvex and the non-overlapping constraints may no longer be expressed in a simple linear form. An approach to handle the nonconvexity of the no-fit polygon was presented in Gomes and Oliveira [11], where the authors dynamically select which edges of the nonconvex no-fit polygon to enforce at a local configuration; however, the authors couple this idea with heuristic methods to guide the placement of shapes, resulting in an inexact, metaheuristic algorithm. Alvarez-Valdes et al. [3] build upon this approach by providing a rigorous branch-and-bound (BB) procedure to dynamically search over the sets of no-fit polygon edges. While the authors demonstrated provably optimal packing solutions for up to 12 polygons (5 of which nonconvex), the tractability of their algorithm was found to decrease dramatically with the number of nonconvex polygons considered in the placement.

In Fischetti and Luzzi [10], the authors adapt the prior approaches by utilizing binary variables to explicitly model the disjunctions between nonconvex parts of the no-fit polygon. This idea results in model formulations that are directly representable as mixed-integer linear programs. At the time, the authors were only able to solve instances with up to 7 pieces (5 of which nonconvex). Consequently, they focused on utilizing their mathematical optimization formulation in the context of a heuristic algorithm for solving the related Multiple Containment Problem. Cherri et al. [8] later improved upon this approach by representing pieces as combinations of convex polygons and formulating similar mixed-integer programming models.

When considering instances with the freedom to rotate the polygons to be nested, an additional level of nonlinearity is introduced and a geometric idea other than the no-fit polygon must be considered. In Milenkovic [16], the authors adapted their previous translation-only approach to work for continuous rotation by using a BB tree to search through the space of feasible rotations and by repeatedly solving relaxed translation-only problems. However, their algorithm was only practical for packings of 2 or 3 polygons unless further restrictions on angles of rotation were applied. Another idea is to approximate each polygon by a collection of circles, which can then be constrained to not overlap with sets of circles from other polygons. The key feature of such “circle-covering” approaches is the fact that each of the constraints to enforce no overlap between two circles can be readily written with rotation of the parent polygons taken into account. The computational downside, however, is that these non-overlapping constraints are reverse convex quadratic [12] and therefore require use of advanced global optimization (GO) techniques, such as those typically studied in circle packing problems [7]. Rocha et al. [19] compare several approaches for statically approximating the polygons via different circle-covering schemes. However, since their schemes over-approximate the true region of the polygons, this method constitutes an inexact, heuristic approach to the Nesting Problem that provides good, feasible packings but no rigorous bound on the best possible one. Furthermore, the authors observe that the tractability of the problem decreases dramatically as more accurate approximations are required. The current state-of-the-art framework for exact polygon nesting under free rotation comes from Jones [14], in an algorithm called QP-Nest. This approach uses inscribed circles to under-approximate the true region of the polygons and attempts to dynamically improve the quality of the approximation by introducing new circles where needed, managing also in this way the trade-off between approximation accuracy and numerical tractability. The QP-Nest algorithm was able to globally solve a Nesting Problem instance with four polygons by employing general-purpose GO solvers. A more detailed description of this algorithm is provided later in this paper.

This work also addresses the Nesting Problem with both nonconvex shapes and free rotation but proposes a tailored algorithm that takes advantage of the specific structure of the circle-covering approach. More specifically, the contributions of this paper can be summarized as follows:
  • We develop an exact approach to solve the Nesting Problem to global optimality that does not rely on the use of general-purpose global optimization solvers.

  • We identify a generic approach to dynamically satisfy reverse convex quadratic constraints commonly found in optimization models within the field of cutting and packing.

  • We conduct a comprehensive computational study that illustrates the competitiveness of our approach compared to the previous state-of-the-art.

  • We present, for the first time in the open literature, provably optimal solutions for Nesting Problem instances featuring five polygons under free rotation.

The final point above, i.e., the fact that no proven optimal solutions existed to-date for nesting more than four polygons with arbitrary rotation, alludes to the immense difficulty of solving problems of this nature to global optimality. It should be however highlighted that, while exact optimization methods may not be practical for solving industrially-relevant instances (potentially containing an excess of one hundred pieces) at present, the global solution of small instances is a capability utilized by many heuristic methods. To that end, a marginal improvement in the tractability (specifically, the number of polygons that can be accommodated) in an exact approach could provide sizable benefits in the ability of heuristic methods to explore better local solutions when constructing large-scale nestings.

The remainder of the paper is organized as follows. In Sect. 2, we present the standard quadratically constrained programming (QCP) formulation that models the Nesting Problem, and we discuss how a suitable linear relaxation of the latter can be used as the basis of our BB-based algorithm. Implementation details of the algorithm itself, including several model tightening procedures, are presented in Sect. 3. Finally, Sect. 4 presents results on the algorithm’s computational performance as well as a comprehensive comparison with the QP-Nest approach utilizing four different state-of-the-art GO solvers. For convenience, a table synopsizing notation is provided at the end of the manuscript.

2 Mathematical modeling

Let \(P = \left\{ 1, 2, 3\ldots \right\} \) denote a set of polygons. For each polygon \(p \in P\), let \(I_p\) denote the set of vertices, and let \(\left( x_{pi}, y_{pi}\right) \) denote the nominal coordinates of each vertex \(i \in I_p\). Since we allow for arbitrary rotation and translation, let \(\theta _p\), \(h_p\), and \(v_p\) denote the rotational angle, horizontal translation, and vertical translation for polygon \(p \in P\), respectively. Here, the rotational angle is defined with respect to point \(\left( 0,0\right) \), the origin of the coordinate system. We also use \(c_p\) and \(s_p\) to represent the cosine and sine of \(\theta _p\), respectively. Clearly, after being rotated by \(\theta _p\) and translated by \(h_p\) and \(v_p\), a vertex \(\left( x_{pi}, y_{pi}\right) \) will lie at new coordinates \(\left( c_p x_{pi} - s_p y_{pi} + h_p, s_p x_{pi} + c_p y_{pi} + v_p\right) \). The rectangular sheet has a fixed width of W and the objective is to minimize its length L such that all polygons can be placed within it in a way that no two polygons overlap.
Fig. 1

Approximation of a polygon’s area via a set of inscribed circles

2.1 Nonconvex QCP model

Every polygon \(p \in P\) is approximated by a set of inscribed circles, which we denote as \(C_p\) (Fig. 1). For each circle \(m \in C_p\), let \(\left( x_{pm}, y_{pm}\right) \) denote the coordinates of its center, and let \(R_{pm}\) denote its radius. Given such circle sets for each polygon \(p \in P\), the following nonconvex QCP formulation can be defined.
$$\begin{aligned}&\underset{c_p, s_p, h_p, v_p, L}{\text {min}}&\qquad L&&\end{aligned}$$
(1)
$$\begin{aligned}&\;\;\;\;\;\;\text {s.t.}&c_p^2 + s_p^2 = 1&\forall \; p \in P&\end{aligned}$$
(2)
$$\begin{aligned}&&0 \le c_p x_{pi} - s_p y_{pi} + h_p \le L&\forall \; i \in I_p, \; \forall \; p \in P&\end{aligned}$$
(3)
$$\begin{aligned}&&0 \le s_p x_{pi} + c_p y_{pi} + v_p \le W&\forall \; i \in I_p, \; \forall \; p \in P&\end{aligned}$$
(4)
$$\begin{aligned}&&\left[ \left( c_p x_{pm} - s_p y_{pm} + h_p\right) - \left( c_q x_{qn} - s_q y_{qn} + h_q\right) \right] ^2 +&&\nonumber \\&&\left[ \left( s_p x_{pm} + c_p y_{pm} + v_p\right) - \left( s_q x_{qn} + c_q y_{qn} + v_q\right) \right] ^2 \ge \left( R_{pm} + R_{qn}\right) ^2&\forall \; \left( m,n\right) \in C_p \times C_q,&\nonumber \\&&&\forall \; \left( p,q\right) \in \left\{ P {\times } P: q {>} p\right\}&\end{aligned}$$
(5)
$$\begin{aligned}&&-\,1 {\le } c_p, s_p \le 1&\forall \; p \in P&\end{aligned}$$
(6)
In the above formulation, the objective function (1) aims to minimize the length of the sheet. The rotational angle is implicitly encoded by its cosine and sine values, which are suitably defined through the trigonometric constraints (2). Constraints (3) and (4) ensure that all vertices of the polygon (and hence, the totality of the polygons) will lie within the sheet.1 Constraints (5) guarantee that there is no overlap between a circle \(m \in C_p\) and a circle \(n \in C_q\) by imposing that their centers are sufficiently far in terms of Euclidean distance. Finally, constraints (6) define the applicable bounds for variables \(c_p\) and \(s_p\). Note that the nonconvexity of this model stems from constraints (2) and (5).

We highlight that, although constraints (5) dictate that any circle inscribed in polygon p will not overlap with any circle inscribed in polygon q, the model does not prohibit the penetration of uncovered parts of polygon p into q. Therefore, this model technically constitutes a relaxation of the full Nesting Problem, and its optimal value is merely a lower bound for the latter. The approximation error can however be improved by considering additional circles in the sets \(C_p\) that increase the coverage areas of the polygons.

Based on this principle, Jones [14] proposed the QP-Nest approach to address the full problem. The circle sets \(\left\{ C_p\right\} _{p \in P}\) are initialized by inscribing \(N^{\text {init}}\) circles per polygon via a circle-covering procedure. After solving the resulting QCP (1)–(6) to global optimality, a penetration-computing procedure is applied to check whether there exists any penetration of one polygon into another. If some degree of overlap is identified between two polygons p and q, a suitable circle within the overlap area will be generated via a circle-adding procedure and appended to the circle sets \(C_p\) and \(C_q\) (Fig. 2). The QCP model is then resolved and the process is iterated until no significant (above tolerance) penetration is found. At that point, the problem is considered to have been solved to global optimality. The overall QP-Nest algorithm is illustrated in Fig. 3.
Fig. 2

Identifying the largest circle within the area where two polygons overlap

Fig. 3

The QP-Nest approach

2.2 Customized model relaxation

Although the QP-Nest approach is straightforward to implement, the resulting iterations of the QCP model quickly grow to the point where they become very hard to solve by even the most advanced of GO solvers. To that end, we develop in this paper a customized BB-based solver that can develop tighter approximations using smaller circle libraries and that can search through the space of feasible solutions more effectively. Unlike a traditional, general-purpose solver, which must generically handle each nonconvex constraint by relaxing it individually into its convex relaxation and tighten that relaxation via branching on the domains of the problem’s native variables, our customized approach recognizes the physical meaning of these constraints and proposes branching on domains of variables that are not explicitly defined in the model. Before we describe the algorithm in detail, we present a suitably parameterized LP relaxation of the QCP model and the main principles for tightening that relaxation.
Fig. 4

The trigonometric constraint and its dynamically tightened relaxation. a Full feasible space. b Convex relaxation of feasible space. c Initial tightening via 3 branches. d Subsequent tightening via 2 branches

First, we illustrate our strategy for relaxing the trigonometric constraints (2). Let \(\left[ \theta ^L_p, \theta ^U_p\right] \) denote the feasible interval of \(\theta _p\) (originally equal to \(\left[ 0, 2 \pi \right) \)). In the space of \(\left( c_p, s_p\right) \), the corresponding constraint (2) requires that all feasible points project exactly on the circumference of a unit circle (Fig. 4a). This constraint can be initially dropped from consideration, resulting in a convex relaxation defined by the box bounds \(\left[ -\,1,+\,1\right] \) (Fig. 4b). Feasibility of the nonconvex constraint can then be gradually enforced by branching on the implicit \(\theta _p\) variable domain and tightening the relaxation in the \(\left( c_p, s_p\right) \) space, as follows.

Let K denote a solution of the relaxed problem with coordinates \(\left( c^*_p, s^*_p\right) \) such that it violates the original constraint. Using this solution as a guide, one may dissect the \(\left[ 0, 2 \pi \right) \) interval into three parts (each representing an angle of \(2\pi /3\) radians) and define a set of three linear constraints (corresponding to two tangent lines and one secant) to form the convex relaxation of the original trigonometric constraint in each of the three resulting subdomains. If properly oriented with respect to K (Fig. 4c), it can be guaranteed that this parent solution is excluded in all of the three subdomains. In subsequent violations of the trigonometric constraint, one could further dissect the applicable \(\theta _p\) interval into two parts. If the solution K is used as the guide to define the branching point, one can again guarantee that this parent solution is excluded from both resulting subdomains, defining a proper branching strategy to be employed in the course of a BB search process. More specifically, we propose a domain split that aims to produce a BB tree that is as balanced as possible. Let N be the point with coordinates \(\left( \cos \left( \frac{\theta ^L_p + \theta ^U_p}{2} + \pi \right) , \sin \left( \frac{\theta ^L_p + \theta ^U_p}{2} + \pi \right) \right) \), and let \(\theta ^*_p\) denote the angle in radians between the positive \(c_p\)-axis and the point at which the unit circle intersects with the ray that starts at N and passes through K. The resulting proposed split is then \(\left[ \theta ^L_p, \theta ^*_p\right] \cup \left[ \theta ^*_p, \theta ^U_p\right] \) (Fig. 4d). Note that our branching scheme works also in the case when K resides outside the trigonometric circle.

With regards to relaxing the non-overlapping constraints (5), we follow a similar feasible space dissection strategy. Let us first define for convenience auxiliary variables \({\varDelta }x_{pmqn} :=\left( c_px_{pm} - s_py_{pm} + h_p\right) - \left( c_qx_{qn} - s_qy_{qn} + h_q\right) \) and \({\varDelta }y_{pmqn} :=\left( s_px_{pm} + c_py_{pm} +v_p\right) - \left( s_qx_{qn} + c_qy_{qn} + v_q\right) \) for each circle pair for which we have decided to enforce the corresponding non-overlapping constraint. The latter can now be written as:
$$\begin{aligned} {\varDelta }x^2_{pmqn} + {\varDelta }y^2_{pmqn} \ge \left( R_{pm} + R_{qn}\right) ^2 \end{aligned}$$
Let \(CC_{pmqn}\) denote the circle that is centered at the origin, \(\left( 0,0\right) \), and has a radius of \(\left( R_{pm} + R_{qn}\right) \). Furthermore, let \(\phi _{pmqn}\) be the angle between the positive \({\varDelta }x_{pmqn}\)-axis and the point given by the coordinates \(\left( {\varDelta }x_{pmqn}, {\varDelta }y_{pmqn}\right) \), and let \(\left[ \phi ^L_{pmqn}, \phi ^U_{pmqn}\right] \) represent its feasible interval (originally equal to \(\left[ 0, 2 \pi \right) \)). In the \(\left( {\varDelta }x_{pmqn}, {\varDelta }y_{pmqn}\right) \) space, the non-overlapping constraint (5) requires that all feasible points project either outside or exactly on the circumference of circle \(CC_{pmqn}\) (Fig. 5a). Dropping at first the constraint from consideration results in a convex relaxation that is defined by the full space (Fig. 5b). Feasibility of the nonconvex constraint can be then be gradually enforced by branching on the implicit \(\phi _{pmqn}\) variable domain and tightening the relaxation in the \(\left( {\varDelta }x_{pmqn}, {\varDelta }y_{pmqn}\right) \) space, as follows.
Fig. 5

The non-overlapping constraint and its dynamically tightened relaxation. a Full feasible space. b Convex relaxation of feasible space. c Initial tightening via 3 branches. d Subsequent tightening via 2 branches

Let K denote a solution of the relaxed problem with coordinates \(\left( {\varDelta }x^*_{pmqn}, {\varDelta }y^*_{pmqn}\right) \) such that it violates the original constraint. Using this solution as a guide, one may dissect the \(\left[ 0, 2 \pi \right) \) interval into three parts (each representing an arc of angle \(2\pi /3\) radians) and define a set of three linear constraints (corresponding to one secant and two boundary lines) to form the convex relaxation of the original non-overlapping constraint in each of the three resulting subdomains. If properly oriented with respect to K (Fig. 5c), it can be guaranteed that this parent solution is excluded in all of the three subdomains. In subsequent violations of the same constraint, one could further dissect the applicable \(\phi _{pmqn}\) interval into two parts. If the solution K is used as the guide to define the branching point, one can again guarantee that this parent solution is excluded from both resulting subdomains, defining a proper branching strategy to be employed in the course of a BB search process. More specifically, let N be the point with coordinates \(\left( \left( R_{pm}+R_{qn}\right) \cos \left( \frac{\phi ^L_{pmqn} + \phi ^U_{pmqn}}{2}+\pi \right) , \left( R_{pm}+R_{qn}\right) \sin \left( \frac{\phi ^L_{pmqn} + \phi ^U_{pmqn}}{2}+\pi \right) \right) \), and let \(\phi ^*_{pmqn}\) denote the angle in radians between the positive \({\varDelta }x_{pmqn}\)-axis and the point at which the circle \(CC_{pmqn}\) intersects the ray that starts at N and passes through K. The resulting proposed split is then \(\left[ \phi ^L_{pmqn}, \theta ^*_{pmqn}\right] \cup \left[ \phi ^*_{pmqn}, \phi ^U_{pmqn}\right] \) (Fig. 5d).
$$\begin{aligned}&\underset{c_p, s_p, h_p, v_p, L}{\text {min}}&\qquad L&&\end{aligned}$$
(7)
$$\begin{aligned}&\;\;\;\;\;\;\text {s.t.}&\hat{\alpha }_{pk}c_p + \hat{\beta }_{pk}s_p \ge \hat{\gamma }_{pk}&\forall \; k \in \left\{ 1, 2, 3\right\} , \forall \; p \in \hat{P}&\end{aligned}$$
(8)
$$\begin{aligned}&&0 \le c_p x_{pi} - s_p y_{pi} + h_p \le L&\forall \; i \in I_p, \; \forall \; p \in P&\end{aligned}$$
(9)
$$\begin{aligned}&&0 \le s_p x_{pi} + c_p y_{pi} + v_p \le W&\forall \; i \in I_p, \; \forall \; p \in P&\end{aligned}$$
(10)
$$\begin{aligned}&&\alpha _{pmqnk}\left[ \left( c_px_m - s_py_m + h_p\right) - \left( c_qx_n - s_qy_n + h_q\right) \right] +&&\nonumber \\&&\beta _{pmqnk}\left[ \left( s_px_m + c_py_m + v_p\right) - \left( s_qx_n + c_qy_n + v_q\right) \right] \ge \gamma _{pmqnk}&\forall \; k \in \left\{ 1, 2, 3\right\} ,&\nonumber \\&&&\forall \; \left( m,n\right) \in C^2_{pq},&\nonumber \\&&&\forall \; \left( p,q\right) \in \left\{ P \times P : q > p\right\}&\end{aligned}$$
(11)
$$\begin{aligned}&&-\,1 \le c_p, s_p \le 1&\forall \; p \in P&\end{aligned}$$
(12)
Given the above relaxation strategies, Eqs. (7)–(12) constitute a relaxed LP formulation to be solved at each node of our BB search process. In this model, the set \(\hat{P} \subseteq P\) is the subset of polygons whose rotational angle interval has been branched at least once, while the set \(C^2_{pq} \subseteq C_p \times C_q\) denotes the set of circle pairs for which the corresponding \(\phi _{pmqn}\) interval has been branched at least once. All sets \(\hat{P}\) and \(C^2_{pq}\) begin as empty sets and will be dynamically expanded and updated as the algorithm proceeds. The parameters \(\hat{\alpha }_{pk}\), \(\hat{\beta }_{pk}\), \(\hat{\gamma }_{pk}\), \(\alpha _{pmqnk}\), \(\beta _{pmqnk}\) and \(\gamma _{pmqnk}\) are suitably chosen in each case to define the linear inequalities that relax the original trigonometric and non-overlapping constraints discussed above.

3 The new algorithm

In this section, we discuss the details of our newly proposed algorithm for addressing the Nesting Problem to guaranteed optimality. As already discussed, the algorithm implements a BB search process that solves at each node LP relaxations of the type (7)–(12). The overall algorithm is illustrated in Fig. 6.

In our algorithm, a circle library \(\left\{ C_p\right\} _{p \in P}\) with \(N^{\text {lib}}\) initially inscribed circles per polygon is provided in the beginning, but unlike the QP-Nest approach, these circles will not be immediately considered in the context of the non-overlapping constraints (11). Instead, these circles will be stored in a repository of circles from which to dynamically separate and add such constraints when violated. We should highlight that the violation of non-overlapping constraints is checked repeatedly at every BB node. Hence, querying an off-line computed repository, as opposed to executing the circle-adding procedure each time, has the potential to amount to significant computational benefit. There is also a provision for the circle library to be expanded with new circles in order to improve the approximation in areas of polygon overlap that are not covered by the circles currently in the library. In fact, this ability to gradually incorporate more circles and improve the linear relaxations of the nonconvex constraints within the context of a single BB tree is a key feature of our approach, relieving us from having to resolve problems as in QP-Nest.
Fig. 6

A customized BB algorithm for solving the Nesting Problem

We remark that, at the root node, the LP relaxation model only includes constraints (9), (10), and (12). Consequently, it does not include any linear relaxation of trigonometric or non-overlapping constraints, since no branching has yet occurred towards enforcing their feasibility.

3.1 Feasibility checking

After solving an LP relaxation (7)–(12), we check whether its optimal solution is a feasible configuration for the Nesting Problem. A feasible configuration has to be insured against two conditions: (i) all rotational angles are correctly defined, that is, trigonometric constraints (2) are satisfied; (ii) there is no overlap among polygons. For the former condition, we utilize a parameter \(\varepsilon _{\theta }\) to denote what resolution of a rotational angle would be satisfactory to achieve. Consequently, we can declare that a trigonometric constraint is satisfied at a given \(\left( c^*_p, s^*_p\right) \) when the quantity \(\sqrt{c^{*^2}_p + s^{*^2}_p}-1\) is bounded from above by \(\varepsilon ^{\text {max}}_{\theta } = \frac{1}{\cos \left( \frac{\varepsilon _\theta }{2}\right) } - 1\) and from below by \(\varepsilon ^{\text {min}}_{\theta } = 1 - \cos \left( \frac{\varepsilon _\theta }{2}\right) \). For the latter condition, we first check whether all circle pairs covered by the circle library \(\left\{ C_p\right\} _{p \in P}\) satisfy a penetration tolerance \(\varepsilon _{\phi }\) at their applicable \(\left( {\varDelta }x^*_{pmqn}, {\varDelta }y^*_{pmqn}\right) \). Assuming this is the case, the penetration-computing procedure proposed in Jones [14] is then applied to check the solution also for possible overlaps not covered by the circle library. We highlight that assessing possible violations against the static library of circles is a step that is significantly faster computationally than the more expensive penetration-computing algorithm. To that end, our strategy ensures that invocation of the latter is only reserved for those cases when it is absolutely necessary. If both feasibility conditions are met, then a feasible configuration has been obtained; the solution can be considered as a possible new incumbent solution and the node is fathomed. Otherwise, the node must either be tightened or branched upon in order to eliminate the current solution.

3.2 Branching rule selection

As discussed earlier, our BB algorithm utilizes two types of branching rules, one aimed at enforcing the feasibility of the trigonometric constraints and one aimed at doing so for the non-overlapping constraints. In order to properly decide which of these two heterogeneous rules to implement each time branching is to be performed, we first provide a suitable way to normalize the violations of trigonometric constraints. More specifically, let \(R^{ch}_p\) denote the radius of a circle with the same area as the convex hull of polygon p. From a geometric point of view, the shortest distance between \(\left( c^*_p, s^*_p\right) \) and the corresponding trigonometric circle’s circumference, i.e., \(\left| \sqrt{c^{*^2}_p + s^{*^2}_p} - 1\right| \), indicates the extent to which the polygon \(p \in P\) is allowed to contract or expand as a result of the relaxation imposed on its rotational angle. Hence, the quantity \(V^{\theta }_p = R^{ch}_p \left| \sqrt{c^{*^2}_p + s^{*^2}_p} - 1\right| \) can be used as a suitable metric to express a trigonometric constraint’s violation in terms of magnitude of polygon overlap. This quantity is directly comparable with the extent to which two circles are overlapping, namely \(V^{\phi }_{pmqn} = R_{pm} + R_{qn} - \sqrt{{\varDelta }x^{*^2}_{pmqn} + {\varDelta }y^{*^2}_{pmqn}}\).

Let \(\hat{p} \in P\) be the polygon with the highest trigonometric constraint violation, and let \(\left( \bar{m},\bar{n}\right) \in C_{\bar{p}} \times C_{\bar{q}}\), where \(\left( \bar{p},\bar{q}\right) \in \left\{ P \times P : \bar{q} > \bar{p} \right\} \), be the circle pair with the highest non-overlapping constraint violation. We choose to branch based on the former if \(V^{\theta }_{\hat{p}} > \tau ^{\text {no-ov}} V^{\phi }_{\bar{p}\bar{m}\bar{q}\bar{n}}\), while we branch on the latter otherwise. Here, \(\tau ^{\text {no-ov}} < 1\) is a weighting factor to prioritize branching on trigonometric constraints before branching on non-overlapping ones, which our computational experience has determined as beneficial to do. Furthermore, since branching into two subdomains will produce fewer child nodes in the BB tree than the initial branching into three subdomains, the violations of currently unbranched non-overlapping constraints are further discounted by some factor \(\tau ^{\text {unbr}} < 1\).

3.3 Feasibility-based node tightening

Feasibility-based tightening of each BB node can be performed by utilizing the geometric interpretation of the non-overlapping constraints. Consider constraints (11) for some \(\left( m,n\right) \in C^2_{pq}\), where \(\left( p, q\right) \in \left\{ P \times P: q > p\right\} \), conveniently rewritten as
$$\begin{aligned} \alpha _{pmqnk} {\varDelta }x_{pmqn} + \beta _{pmqnk} {\varDelta }y_{pmqn} \ge \gamma _{pmqnk} \;\;\;\; \forall \; k \in \left\{ 1, 2, 3\right\} . \end{aligned}$$
(13)
For any given \(\left( \bar{m}, \bar{n}\right) \in C_p \times C_q\), \({\varDelta }x_{pmqn}\) and \({\varDelta }y_{pmqn}\) can be expressed in terms of \({\varDelta }x_{p\bar{m}q\bar{n}}\) and \({\varDelta }y_{p\bar{m}q\bar{n}}\) via relationships
$$\begin{aligned} {\varDelta }x_{pmqn}&= {\varDelta }x_{p\bar{m}q\bar{n}} + \left( c_p\delta x_{pm\bar{m}} - s_p\delta y_{pm\bar{m}}\right) - \left( c_q\delta x_{qn\bar{n}} - s_q \delta y_{qn\bar{n}}\right) \\ {\varDelta }y_{pmqn}&= {\varDelta }y_{p\bar{m}q\bar{n}} + \left( s_p\delta x_{pm\bar{m}} + c_p\delta y_{pm\bar{m}}\right) - \left( s_q\delta x_{qn\bar{n}} + c_q \delta y_{qn\bar{n}}\right) , \\ \text {where } \delta x_{pm\bar{m}}&:=x_{pm} - x_{p\bar{m}}, \; \delta y_{pm\bar{m}} :=y_{pm} - y_{p\bar{m}}, \\ \delta x_{qn\bar{n}}&:=x_{qn} - x_{q\bar{n}}, \; \delta y_{qn\bar{n}} :=y_{qn} - y_{q\bar{n}}. \end{aligned}$$
Combining these with (13), we have
$$\begin{aligned} \alpha _{pmqnk} {\varDelta }x_{p\bar{m}q\bar{n}} + \beta _{pmqnk} {\varDelta }y_{p\bar{m}q\bar{n}}&\ge RHS_k\left( \theta _p, \theta _q\right) \;\;\;\; \forall \; k \in \left\{ 1, 2, 3\right\} , \end{aligned}$$
$$\begin{aligned}&\text {where } { RHS}_k\left( \theta _p, \theta _q\right) :=\gamma _{pmqnk} - \alpha _{pmqnk}\big [\left( c_p\delta x_{pm\bar{m}} - s_p\delta y_{pm\bar{m}}\right) \\&\qquad - \left( c_q\delta x_{qn\bar{n}} - s_q \delta y_{qn\bar{n}}\right) \big ] {-} \beta _{pmqnk}\left[ \left( s_p\delta x_{pm\bar{m}} {+} c_p\delta y_{pm\bar{m}}\right) {-} \left( s_q\delta x_{qn\bar{n}} {+} c_q \delta y_{qn\bar{n}}\right) \right] . \end{aligned}$$
The end result is a set of valid constraints (14), which are implied by (13), but which can be further tightened as we shall show below.
$$\begin{aligned} \alpha _{pmqnk} {\varDelta }x_{p\bar{m}q\bar{n}} + \beta _{pmqnk} {\varDelta }y_{p\bar{m}q\bar{n}}&\ge \underset{\begin{array}{c} \theta _p \in [\theta ^L_p, \theta ^U_p],\\ \theta _q \in [\theta ^L_q, \theta ^U_q] \end{array}}{\text {max}} \quad { RHS}_k\left( \theta _p, \theta _q\right) \;\;\;\; \forall \; k \in \left\{ 1, 2, 3\right\} \end{aligned}$$
(14)
Let \(F_{pmqn}\) denote the feasible \(\left( {\varDelta }x_{pmqn}, {\varDelta }y_{pmqn}\right) \) space constrained by (13) (Fig. 7a), and let \(\bar{F}_{pmqn}\) denote the feasible \(\left( {\varDelta }x_{p\bar{m}q\bar{n}}, {\varDelta }y_{p\bar{m}q\bar{n}}\right) \) space constrained by (14) (Fig. 7b). Note how the above substitution amounts to projecting \(F_{pmqn}\) onto the \(\left( {\varDelta }x_{p\bar{m}q\bar{n}}, {\varDelta }y_{p\bar{m}q\bar{n}}\right) \) plane, forming \(\bar{F}_{pmqn}\). Since any point inside the circle \(CC_{p\bar{m}q\bar{n}}\) is essentially infeasible, \(\bar{F}_{pmqn}\) can be further tightened as Fig. 7c demonstrates. Clearly, the tightened space is not implied by constraints (13). For cases where the feasible space \(F_{p\bar{m}q\bar{n}}\) is already partially constrained (e.g., due to a previous branching decision associated with circle \(CC_{p\bar{m}q\bar{n}}\)), then \(\bar{F}_{pmqn}\) shall be intersected with the currently applicable space \(F_{p\bar{m}q\bar{n}}\) (Fig. 8b), and it is this intersection that may be further tightened (Fig. 8c).
Fig. 7

Feasibility-based tightening (special case when \(F_{p\bar{m}q\bar{n}} = \mathbb {R}^2\)). a Feasible space \(F_{pmqn}\). b Projection of \(F_{pmqn}\) onto \(F_{p\bar{m}q\bar{n}}\). c Feasible space \(F_{p\bar{m}q\bar{n}}\) after tightening

Fig. 8

Feasibility-based tightening (general case when \(F_{p\bar{m}q\bar{n}} \subset \mathbb {R}^2\)). a Feasible space \(F_{pqmn}\). b Projection of \(F_{pmqn}\) onto \(F_{p\bar{m}q\bar{n}}\). c Feasible space \(F_{p\bar{m}q\bar{n}}\) after tightening

We apply the above projection and tightening procedure every time an LP relaxation is solved. More specifically, we focus on the up to \(N^{\text {fbt}}\) polygon pairs \(\left( p, q\right) \in \left\{ P \times P: q > p\right\} \) that overlap the most, identify the pair of circles \(\left( \bar{m}, \bar{n}\right) \in C_p \times C_q\) that are responsible for these violations, and attempt to tighten the feasible spaces \(F_{p\bar{m}q\bar{n}}\) using information from any relevant space \(F_{pmqn}\). If the resulting linear cuts are strong enough to cut off the relaxed solution, these cuts are immediately added to the model (augmenting the set \(C^2_{pq}\), if necessary) and the latter is resolved. It is important to note, however, that even if these cuts do not strengthen the LP relaxation, they may prove useful in tightening the model at some later point during the course of the BB search. To take advantage of this fact, we save the linear cuts to node-specific libraries of previously identified cuts. Future node solutions are first checked for possible violations against these libraries before applying the full feasibility-based tightening process.

Finally, we remark that feasibility-based tightening can also be applied as soon as a branching step based on an implicit angle \(\phi _{pmqn}\) is taken, in order to strengthen the newly-formed children nodes. More specifically, the restricted feasible space \(F_{pmqn}\) in the child node’s domain that resulted from application of the branching disjunction can be projected so as to tighten any applicable spaces \(F_{p\bar{m}q\bar{n}}\).

3.4 Tighter variable bounds

Consider the largest circle that can be inscribed in the convex hull of a polygon \(p \in P\), and let \(R^{ch,in}_p\) denote its radius. Furthermore, assume (without loss of generality) that the coordinates of the polygon’s vertices have been adjusted such that this circle is centered at \(\left( 0,0\right) \). Since the polygon’s convex hull must also lie within the boundaries of the sheet, the following bounds apply for the translation variables.
$$\begin{aligned} R^{ch,in}_p \le&h_p \le L^{\text {BKS}} - R^{ch,in}_p\;\quad \forall \; p \in P \end{aligned}$$
(15)
$$\begin{aligned} R^{ch,in}_p \le&v_p \le W - R^{ch,in}_p \qquad \quad \forall \; p \in P \end{aligned}$$
(16)
Here, \(L^{\text {BKS}}\) denotes the “best-known solution” (best upper bound) that we may possess (e.g., by employing a heuristic algorithm) for the instance in question. Note that, each time a better incumbent is found during the BB process, the upper bound of \(h_p\) is updated according to the new (smaller) \(L^{\text {BKS}}\) value. From this perspective, constraints (15) can be viewed as globally-valid, optimality-based cuts.

3.5 Symmetry breaking constraints

As Jones [14] and Rodrigues et al. [20] have pointed out, several types of symmetry apply in the context of the Nesting Problem. To that end, we utilize appropriate symmetry-breaking constraints in our implementation.
  1. (i)

    Polygon rotational symmetry: For a polygon \(p \in P\) with a rotationally symmetric angle, \({\varTheta }_p\), relative to its center (e.g., for a perfect square, \({\varTheta }_p = \pi /4\)), one may break symmetry by imposing \(\theta _p \le {\varTheta }_p\).2

     
  2. (ii)

    Identical polygons: When two polygons p and q, such that \(q > p\), are identical, then \(h_p \le h_q\) can be added into the model to break this symmetry.3

     
  3. (iii)

    Sheet orientation: This symmetry arises due to the fact that an equivalent packing solution can always be obtained when rotating the entire configuration by 180 degrees. Hence, in all instances one can enforce \(\theta _{p^\star } \le \pi \), where \(p^\star \in P\) is a specific polygon that one chooses for purposes of defining this constraint.

     

4 Computational studies

We now test our customized BB approach and compare its performance with the QP-Nest approach. Our algorithm was implemented in C++ and the LP relaxation models were solved via CPLEX Optimization Studio 12.7.1 through the C application programming interface. All applicable algorithm tuning parameters are listed in Table 1. The QP-Nest approach was initialized with \(N^{\text {init}}=3\) circles per polygon,4 and solved within the GAMS 25.0.2 environment utilizing several state-of-the-art general purpose GO solvers, namely BARON 17.10.16 [21], GloMIQO 2.3 [17], LINDOGlobal 11.0 [15], and SCIP 5.0 [1]. For a fair comparison, applicable strengthening techniques such as symmetry-breaking and tighter variable bounds were also incorporated into the QP-Nest implementation. All computational experiments were conducted on an single thread of an Intel Xeon CPU E5-2687Wv3 @ 3.10GHz with 32GB of RAM.
Table 1

Parameters used in the new algorithm

Symbol

Parameter

Value

\(\varepsilon _{\theta }\)

Resolution of rotational angle

\(\frac{2\pi }{360}\)

\(\varepsilon _{\phi }\)

Tolerance for circle penetration checking

\(10^{-3}\)

\(\varepsilon ^{\text {opt}}\)

Optimality tolerance

\(10^{-3}\)

\(N^{\text {lib}}\)

Number of inscribed circles per polygon initially in library

30

\(N^{\text {fbt}}\)

Maximum number of circle pairs for which feasibility-based tightening is attempted

6

\(\tau ^{\text {no-ov}}\)

Weighting factor for violation of a non-overlapping constraint

0.1

\(\tau ^{\text {unbr}}\)

Weighting factor for violation of an unbranched non-overlapping constraint

0.3

Fig. 9

Polygon shapes used in our benchmark study

4.1 Instances

In order to generate our suite of benchmark testing instances, we use the data from the well-studied instance SHAPES2 [18], which features a total of seven different polygons shown in Fig. 9. Using all possible combinations of these polygons, we generated a total of 64 nesting instances, namely 35 four-polygon, 21 five-polygon, 7 six-polygon, and 1 seven-polygon instances. According to the dataset, the fixed width of the rectangular sheet is \(W = 15\).5

4.2 Fixed orientation case

Before we attempt to solve for nestings under free rotation, we first analyze our algorithm in the case where the orientation of the polygons is fixed at their nominal values (as shown in Fig. 9). In this setting, variables \(c_p\) and \(s_p\) are fixed for all \(p \in P\), and hence, no violation of the trigonometric constraints occurs. Solving the problem exclusively focuses on enforcing the non-overlapping restrictions. For our custom BB algorithm, we adopted the best-bound-first search node selection strategy. Both the new algorithm and the QP-Nest approach were provided with an initial upper bound. Given the wide variety of possible heuristics that could be available to obtain such an initial incumbent solution, we utilize the following two options: (i) a naive solution, wherein polygons are lined-up left to right (Fig. 10), and (ii) the optimal solution itself. Note how these two cases constitute the two extremes in terms of the performance of a heuristic scheme that one may employ in a real setting, and hence, the results obtained in this manner bound the performance of the nesting algorithms with respect to the effect of the quality of the initial incumbent provided.
Fig. 10

A naive solution

Table 2 presents the computational results for when QP-Nest and our custom BB approach are initialized with the naive incumbent. The table presents the number of test instances of a given input size, and the average number of nonconvex polygons in those instances. For those instances that were solved to provable optimality within the chosen time limit of 2 h, we present the average solution time, while for those instances that were not, we present the average residual gap, defined as \(\left( { UB} - { LB}\right) /{ UB}\) at the time limit. With respect to the results of QP-Nest, each instance is solved independently with each of the four GO solvers we consider in this study, and we adopt the best of those runs as the one to account for in the table (instance-wise “best-of-four”). Consequently, this column is to be interpreted as an upper bound on the performance of QP-Nest.
Table 2

Comparison between QP-Nest and the new algorithm for the case of fixed orientation, using a naive solution as incumbent

# of polygons

# of instances

Avg. # of nonconvex polygons

“Best-of-Four” QP-Nest approach

New BB-based approach

# of solved instances

Avg. time (s)

Avg. gap (%)

# of solved instances

Avg. time (s)

Avg. gap (%)

4

35

1.7

35

309

35

4

5

21

2.1

12

1517

67.9

21

94

6

7

2.6

1

2155

70.5

7

591

7

1

3.0

0

76.0

0

0.2

Table 3

Comparison between QP-Nest and the new algorithm for the case of fixed orientation, using an optimal solution as incumbent

# of polygons

# of instances

Avg. # of nonconvex polygons

“Best-of-Four” QP-Nest approach

New BB-based approach

# of solved instances

Avg. time (s)

Avg. gap (%)

# of solved instances

Avg. time (s)

Avg. gap (%)

4

35

1.7

35

116

35

2

5

21

2.1

16

1587

1.6

21

55

6

7

2.6

1

1398

3.1

7

406

7

1

3.0

0

6.6

1

4176

Table 2 reveals that, when the naive solution is passed as an initial upper bound, our custom BB approach can solve all test instances to optimality except the seven-polygon problem, which features a residual gap of 0.2%. At the same time, the QP-Nest approach could only solve 12 out of 21 five-polygon instances and only 1 out of 7 six-polygon instances, with approximately 70% residual gap for the unsolved instances. The solution time of our approach was also much less than that for the QP-Nest approach. Table 3 presents the numerical results when the optimal solution is provided as the initial solution. Under this setup, both approaches demonstrate improved performance over the case with a naive initialization. More specifically, the new BB algorithm can now solve all test instances (including the seven-polygon one) to global optimality within less computation time. Moreover, the average residual gap for the QP-Nest approach decreases dramatically, which is to be attributed to the better upper bound involved in the calculation of residual gaps. Figure 11 presents the optimal solutions for a representative six-polygon and the seven-polygon nesting instances.
Fig. 11

Optimal solutions for representative six-polygon (left) and seven-polygon (right) instances under fixed orientation

4.3 Free rotation case

Here, we consider the general case where the polygons are allowed to rotate arbitrarily in the interest of achieving better nesting configurations. These experiments were conducted with a increased time limit of 10 h. All algorithmic parameters were kept the same as in the fixed-orientation case, with the only exception being the node selection strategy for our BB-based algorithm, which was changed to depth-first search in order to alleviate memory limitations arising from large lists of unprocessed nodes during the search. With regards to choosing an initial upper bound, we again utilize the naive initial incumbent solutions as an example of a poor heuristic. However, since no optimal solutions were available for these (never before solved) instances, we utilize the optimal solutions we obtained for the case of fixed orientation (see Table 3) as a representative set of high-quality initial solutions.
Table 4

Comparison between QP-Nest and the new algorithm for the case of free rotation, using a naive solution as incumbent

# of polygons

# of instances

Avg. # of nonconvex polygons

“Best-of-Four” QP-Nest approach

New BB-based approach

# of solved instances

Avg. time (s)

Avg. gap (%)

# of solved instances

Avg. time (s)

Avg. gap (%)

4

35

1.7

22

6565

71.2

34

1646

58.3

5

21

2.1

0

80.1

2

18,938

54.3

6

7

2.6

0

94.6

0

66.9

7

1

3.0

0

*

0

61.5

*GO solvers could not complete the first iteration of the QP-Nest approach

Table 5

Comparison between QP-Nest and the new algorithm for the case of free rotation, using an optimal fixed-orientation solution as incumbent

# of polygons

# of instances

Avg. # of nonconvex polygons

“Best-of-Four” QP-Nest approach

New BB-based approach

# of solved instances

Avg. time (s)

Avg. gap (%)

# of solved instances

Avg. time (s)

Avg. gap (%)

4

35

1.7

23

6764

13.0

35

287

5

21

2.1

0

26.9

10

17,058

41.6

6

7

2.6

0

71.9

0

54.8

7

1

3.0

0

*

0

52.6

*GO solvers could not complete the first iteration of the QP-Nest approach

From an overall numerical tractability perspective, we observe that solving for nestings with free rotation is significantly more challenging compared to the case when the polygon orientation is fixed. As Tables 4 and 5 show, our customized BB approach could solve all four-polygon instances and approximately half of the five-polygon ones when the good incumbent was passed initially. In contrast, the QP-Nest approach could only solve about two-thirds of the four-polygon problems and none of the five-polygon ones. Figure 12 presents a handful of optimal five-polygon nestings under arbitrary rotation. We highlight that this is the first time in the open literature that these solutions are obtained.
Fig. 12

Optimal solutions for several five-polygon instances under free rotation

5 Conclusions

Nesting irregular shapes within rectangular sheets while allowing both translation and free rotation is an industrially important, yet notoriously hard, problem for which little effort has been devoted on how to solve to provable optimality. To the best of our knowledge, the QP-Nest approach proposed in Jones [14] was the only exact method that could obtain global optimal solutions for certain instances up to four polygons. This performance was confirmed also via the computational study we conducted in this paper, where we used the latest available versions of four different global optimization solvers as the basis for the QP-Nest method.

Our new approach adopts the circle-covering idea, but instead of solving quadratically constrained programming nesting model approximations iteratively, it proposes to tackle the full problem in a single branch and bound search, using a customized linear relaxation and a novel branching scheme. We also propose several model tightening techniques, which can be readily incorporated in the dynamic process of the search. Many of the proposed ideas can in fact have wider applicability, beyond the context of shape nesting, when addressing optimization models that feature reverse convex quadratic constraints. Our computational studies on a suite of 64 benchmark instances demonstrated the competitiveness of the new approach. Meanwhile, for the first time in the open literature, five-polygon nestings under free rotation were solved to global optimality.

6 List of symbols

7 Indices

pq

Polygon

ij

Vertex

mn

Circle

8 Sets

P

Set of polygons to nest

\(I_p\)

Set of vertices of polygon p

\(C_p\)

Set of circles inscribed in polygon p

\(\hat{P}\)

Subset of polygons whose rotational angle interval has been branched

\(C_{pq}^2\)

Set of circle pairs between polygon p and polygon q that have been branched

\(F_{pmqn}\)

Feasible space of relaxed non-overlapping constraints for circle m in polygon p and circle n in polygon q

9 Continuous variables

\(h_p\)

Horizontal translation of polygon p

\(v_p\)

Vertical translation of polygon p

\(\theta _p\)

Rotation of polygon p

\(c_p\)

Cosine of \(\theta _p\)

\(s_p\)

Sine of \(\theta _p\)

L

Length of sheet on which shapes are nested

\(({\varDelta }x_{pmqn},{\varDelta }y_{pmqn})\)

Displacement between circle m in polygon p and circle n in polygon q

\(\phi _{pmqn}\)

Angle between center of circle m in polygon p and circle n in polygon q

10 Parameters

\((x_{pi},y_{pi})\)

Nominal coordinates of vertex i on polygon p

\((x_{pm},y_{pm})\)

Nominal coordinates of center of circle m inscribed in polygon p

\(R_{pm}\)

Radius of circle m inscribed in polygon p

W

Width of sheet on which shapes are nested

\(L_{\text {BKS}}\)

Sheet length of best known nesting solution

\(N^{\text {init}}\)

Number of circles initially inscribed per polygon

\(N^{\text {lib}}\)

Number of circles initially present in a library of inscribed circles per polygon

\(\left( \theta _p^L,\theta _p^U\right) \)

Lower and upper bounds on the rotation of polygon p

\(\left( \phi _{pmqn}^L,\phi _{pmqn}^U\right) \)

Lower and upper bounds on the angle between center of circle m in polygon p and circle n in polygon q

\(\hat{\alpha }_{pk}, \hat{\beta }_{pk}, \hat{\gamma }_{pk}\)

Coefficients to define relaxed trigonometric constraint k for polygon p

\(\alpha _{pmqnk}, \beta _{pmqnk}, \gamma _{pmqnk}\)

Coefficients to define relaxed non-overlapping constraint k for circle m in polygon p and circle n in polygon q

\(\varepsilon _\theta \)

Resolution of rotational angles

\(\varepsilon _\phi \)

Tolerance on shape penetration

Footnotes

  1. 1.

    In fact, one needs only impose these constraints for the vertices that constitute the convex hull of polygon \(p \in P\).

  2. 2.

    For compatibility with constraints (15) and (16), the symmetry center must also be moved to point \(\left( 0,0\right) \).

  3. 3.

    We prefer to use \(h_p + v_p \le h_q + v_q\), because it is likely to break symmetry in more instances.

  4. 4.

    In the original implementation of Jones [14], the values 5 and 13 were proposed for parameter \(N^{\text {init}}\). However, in most instances used in this study, we found that using 5 or more circles per each and every polygon leads to initial QCP models that cannot be solved within the time limit, i.e., the GO solvers could not even complete the first (and also easiest) iteration. In contrast, using the setting \(N^{\text {init}}= 3\) and allowing the circle sets to grow more judiciously as overlaps are identified led to much better performance of the QP-Nest approach.

  5. 5.

    For the sake of better numerical stability, in our implementations the width was normalized down to the value of 1, and all coordinates were scaled correspondingly.

Notes

Acknowledgements

This work is dedicated to the memory of our academic father and grandfather, Professor Christodoulos A. Floudas. While his untimely passing has left us all with sorrow, his lasting impact on the field of Global Optimization shall remain a source of inspiration.

References

  1. 1.
    Achterberg, T.: SCIP: solving constraint integer programs. Math. Program. Comput. 1(1), 1–41 (2009)MathSciNetCrossRefMATHGoogle Scholar
  2. 2.
    Alvarez-Valdes, R., Parreño, F., Tamarit, J.M.: Reactive GRASP for the strip-packing problem. Comput. Oper. Res. 35(4), 1065–1083 (2008)CrossRefMATHGoogle Scholar
  3. 3.
    Alvarez-Valdes, R., Martinez, A., Tamarit, J.M.: A branch and bound algorithm for cutting and packing irregularly shaped pieces. Int. J. Prod. Econ. 145(2), 463–477 (2013)CrossRefGoogle Scholar
  4. 4.
    Bennell, J.A., Oliveira, J.F.: The geometry of nesting problems: a tutorial. Eur. J. Oper. Res. 184(2), 397–415 (2008)MathSciNetCrossRefMATHGoogle Scholar
  5. 5.
    Bortfeldt, A.: A genetic algorithm for the two-dimensional strip packing problem with rectangular pieces. Eur. J. Oper. Res. 172(3), 814–837 (2006)MathSciNetCrossRefMATHGoogle Scholar
  6. 6.
    Burke, E., Hellier, R., Kendall, G., Whitwell, G.: A new bottom-left-fill heuristic algorithm for the two-dimensional irregular packing problem. Oper. Res. 54(3), 587–601 (2006)MathSciNetCrossRefMATHGoogle Scholar
  7. 7.
    Castillo, I., Kampas, F.J., Pintér, J.D.: Solving circle packing problems by global optimization: numerical results and industrial applications. Eur. J. Oper. Res. 191(3), 786–802 (2008)MathSciNetCrossRefMATHGoogle Scholar
  8. 8.
    Cherri, L.H., Mundim, L.R., Andretta, M., Toledo, F.M., Oliveira, J.F., Carravilla, M.A.: Robust mixed-integer linear programming models for the irregular strip packing problem. Eur. J. Oper. Res. 253(3), 570–583 (2016)MathSciNetCrossRefMATHGoogle Scholar
  9. 9.
    Daniels, K., Milenkovic, V.J.: Multiple translational containment: approximate and exact algorithms. In: Clarkson, K. (ed.) Proceedings of the Sixth Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 205–214 (1995)Google Scholar
  10. 10.
    Fischetti, M., Luzzi, I.: Mixed-integer programming models for nesting problems. J. Heuristics. 15(3), 201–226 (2009)CrossRefMATHGoogle Scholar
  11. 11.
    Gomes, A.M., Oliveira, J.F.: Solving irregular strip packing problems by hybridising simulated annealing and linear programming. Eur. J. Oper. Res. 171(3), 811–829 (2006)CrossRefMATHGoogle Scholar
  12. 12.
    Hillestad, R.J., Jacobsen, S.E.: Reverse convex programming. Appl. Math. Optim. 6, 63–78 (1980)MathSciNetCrossRefMATHGoogle Scholar
  13. 13.
    Hopper, E., Turton, B.C.: A review of the application of meta-heuristic algorithms to 2D strip packing problems. Artif. Intell. Rev. 16(4), 257–300 (2001)CrossRefMATHGoogle Scholar
  14. 14.
    Jones, D.R.: A fully general, exact algorithm for nesting irregular shapes. J. Global Optim. 59, 367–404 (2014)MathSciNetCrossRefMATHGoogle Scholar
  15. 15.
    Lindo Systems Inc.: LINDOGlobal 11.0 (2017)Google Scholar
  16. 16.
    Milenkovic, V.J.: Rotational polygon containment and minimum enclosure using only robust 2D constructions. Comput. Geometry 13, 3–19 (1999)MathSciNetCrossRefMATHGoogle Scholar
  17. 17.
    Misener, R., Floudas, C.A.: GloMIQO: global mixed-integer quadratic optimizer. J. Global Optim. 57(1), 3–50 (2013)MathSciNetCrossRefMATHGoogle Scholar
  18. 18.
    Oliveira, J.F., Gomes, A.M., Ferreira, J.S.: TOPOS: a new constructive algorithm for nesting problems. OR Spektrum 22(2), 263–284 (2000)MathSciNetCrossRefMATHGoogle Scholar
  19. 19.
    Rocha, P., Rodrigues, R., Gomes, A.M., Toledo, F.M.B., Andretta, M.: Circle covering representation for nesting problems with continuous rotations. IFAC Proc. Vol. 47(3), 5235–5240 (2014)CrossRefGoogle Scholar
  20. 20.
    Rodrigues, M.O., Cherri, L.H., Mundim, L.R.: MIP models for the irregular strip packing problem: new symmetry breaking constraints. ITM Web Conf. 14, 00005 (2017)CrossRefGoogle Scholar
  21. 21.
    Tawarmalani, M., Sahinidis, N.V.: A polyhedral branch-and-cut approach to global optimization. Math. Program. 103(2), 225–249 (2005)MathSciNetCrossRefMATHGoogle Scholar
  22. 22.
    Wäscher, G., Haußner, H., Schumann, H.: An improved typology of cutting and packing problems. Eur. J. Oper. Res. 183(3), 1109–1130 (2007)CrossRefMATHGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Department of Chemical EngineeringCarnegie Mellon UniversityPittsburghUSA

Personalised recommendations