Column Generation Technique for Solving Two-dimensional Cutting Stock Problems: Method of Stripe Approach

We consider two-dimensional cutting stock problems where single rectangular stocks have to be cut into some smaller rectangular so that the number of stocks needed to satisfy the demands is minimum. In this paper we focus our study to the problem where the stocks have to be cut with guillotine cutting type and fixed orientation of finals. We formulate the problem as an integer programming, where the relaxation problem is solved by column generation technique. New pattern generation is formulated based on method of stripe. In obtaining the integer solution, we round down the optimal solution of the relaxation problem and then we derive an extra mix integer programming for satisfying the unmet demands. The optimal solution of the original problem is the combination of the round-down solution and the optimal solution of the extra mix integer programming.A numerical example of the problem is given in the end of this paper.DOI : http://dx.doi.org/10.22342/jims.13.2.65.161-172


INTRODUCTION
We consider two-dimensional cutting stock problem where stock sheets have to be cut into a set of smaller pieces finals so that the finals demand is satisfied. We need to determine a number of cutting patterns so that the number of stock sheets that is used minimum. The problem is a well known problem appears in many industries, such as flat glass industries, aircraft industries, ship builder, steel industries, and leather industries. The problem also appears in land development, facilities layout, and electrical circuit layout.
In practice, there are two cutting types: guillotine type and non-guillotine type. The guillotine cutting type is a cutting type where any cut must run from one edge of a stock sheet to the opposite edge in a straight line, which is illustrated by figure 1(a). Meanwhile in non-guillotine cutting type, a cut does not have to run from end to end of the stock sheet, which is illustrated in figure 1(b). We focus our study to the problem where we have single stock sheets, and both stock sheets and finals are of rectangular forms. The stock sheets have to be cut in guillotine cutting type and the orientation of finals is fixed. Fixed orientation of finals means that a final of length l and width w can not be cut as a final of length w and width l.
In solving the problem, we apply the column generation technique to the LP relaxation of the problem. The column generation technique for solving the twodimensional cutting stock problem is actually has been studied in Alvarez-Valdes, et.al [1]. In this paper we propose an alternative sub problem for generating a new column, which is based on the stripe method proposed by Hifi [8].
Alternative exact solution techniques for solving the two-dimensional cutting stock problem are proposed by Vanderbeck [9] and Hifi [8]. The technique in [9] is based on the combination of depth-first search using hill-climbing strategic and dynamic programming, meanwhile in [8] the combination of dynamic programming and hill-climbing technique is used to find the optimal solution. Some heuristic methods are proposed by Amaral & Wright [2] and Claire & Remila [4]. Our solution technique is simpler, and with help of AIMMS (see Bisschop [3]) the optimal solution of the relaxation problem can be obtained easily.
To obtain an integer optimal solution, we round down the optimal solution of the relaxation problem. The unmet demands can be satisfied by applying some heuristic algorithms for generating new extra patterns. An example of these algorithm is the Largest In Least Empty (LILE) algorithm, which we discuss in section 4. In this paper we propose an exact algorithm that we call the Extra Mix Integer Programming (MIP), so that we can be sure that we obtain an optimal extra cutting patterns. A complete algorithm for solving the problem then can be obtained from the column generation, the round-down process, and the extra MIP.
We give an example of the problem and its optimal solution we obtain from the implementation of our complete algorithm. An open problem on the determination of initial basis matrix is discussed in the end of this paper. This paper is organized as follow. After introduction, in section 2 we derive a mathematical model of the problem and the column generation technique we use for solving the problem. In section 3 we discuss the sub problem for generating a new column, and in section 4 we discuss two algorithms for solving the unmet demands. A complete algorithm for solving the problem is given in section 5. A numerical example is given in section 6. We end this paper by giving a summary and open problem in section 7.

MATHEMATICAL MODEL AND THE COLUMN GENERATION TECHNIQUE
Suppose that the stock sheets are of length L and width W, and suppose that there are m finals f i of size l i ×w i with demand d i , i = 1, 2, · · · m. Let p be a cutting pattern, and define a ip as the number of final f i that will be obtained if a stock sheet is cut with cutting pattern p. By defining x p as the number of stock sheets that are cut with cutting pattern p, the two-dimensional cutting stock problem can be formulated as the linear programming x p non-negative integer, ∀p. (1) Since it is not easy to determine all possible cutting patterns, we can not directly apply a conventional solution method to the linear programming (1). We then apply the column generation technique to the relaxation of (1), and in the rest of paper we call the problem (1) as the master problem.
The column generation technique, which is pioneered by Gilmore and Gomory [6,7] for solving one-dimensional cutting stock problem, is an effective solution technique for solving a linear programming where its constraint matrix is not easy to be determined. The idea of this technique is based on the revised simplex method (see Chvátal [5]) where we can obtain a basic feasible solution from a m×mdimensional nonsingular sub-matrix of the coefficient matrix, which is called a basis matrix. In our problem, a basis matrix B represents m different cutting patterns, which is not so difficult to be found. As an example, we can choose a diagonal matrix where the value of its ith diagonal element is the maximum number of final i that can be placed on a stock sheet. A basic feasible solution x B can be obtained To identify whether the current solution is optimal or not, we generate a new column y with elements y i , i = 1, 2, · · · , m, where the reduced cost associated to the current basis matrix B, is minimum. Notice that the shadow price vector λ with elements λ i , i = 1, 2, · · · , m, of our problem is given by where 1 m is the m-dimensional row vector with elements 1. If the minimum reduced cost is positive, then the current solution x B is an optimal solution of the master problem. Otherwise, the new column y enter the basis. This column generation is performed until we find an optimal solution for the master problem (1).

THE SUB PROBLEM FOR GENERATING A NEW COLUMN
The new column y that can improve the current basic feasible solution x B is generated by solving an integer problem, where its optimal solution gives us a feasible cutting pattern that gives the minimum reduced cost associated to the current solution x B . More precisely, the reduced cost 1 − m i=1 λ i y i becomes the objective function and the constraints are constructed so that the new column y represents a feasible cutting pattern.
To construct a mathematical formulation for the feasible cutting pattern, inspired by the technique proposed in Hifi [8], we define a stripe, associated to the final f i , of length L and width w i that can be obtained by cutting the stock sheet vertically. On this stripe we than can place some final f i and also some final f j where w fj <= w fi . In other word, as soon as we obtain a stripe, we deal with one dimensional cutting stock problem for placing the appropriate finals.
On a stock sheet we can obtain ⌊ L li ⌋ stripes of widthw i . Since we have m finals, we then have K, the maximum number of possible stripes, which is given by For k = 1, 2, · · · , K, 1. letw k be the width of the stripe k, 2. define the variable z k where z k = 1 if the stripe k is selected in the new cutting pattern, 0 otherwise, 3. define θ k = {i|i = 1, 2, · · · , m, w i ≤w k }, 4. for i ∈ θ k , define the variable y k i as number of finals f i in stripe k.
By definition, the number of final f i in the new column y is given by y i = K k=1 y k i . Since minimizing the reduced cost 1 − m i=1 λ i y i is equivalent to maximizing m i=1 λ i y i , then the sub problem for generating a new cutting pattern then can be written as The first constraint of (2) ensures that the sum of widths of the selected stripes must be less than or equal to the width of the sheet. Meanwhile the second one ensures that for each selected stripe k, the total length of finals in stripe k must be less than or equal to the length of the sheet. The integer programming (2) is a much smaller scale problem compare to (1), and can be solved by applying any solution technique for integer programming.

GETTING AN INTEGER SOLUTION
It should be noticed that the column generation we discuss in section is applied to the relaxation problem of (1). The optimal solution of the relaxation problem can be non integer, and we need to obtain an integer solution from this non-integer solution.
A simple and useful heuristic algorithm for satisfying the unmet demands is Largest In least Empty (LILE) algorithm. The algorithm is described in the following steps.
1. Round down the non-integer solution value, and determine the unmet demands.
2. Sort the finals in order of the unmet demands, from largest to smallest.

Place a final with the largest unmet demand in an empty stock sheet that still can contain this final. If it is not possible, place it in an extra sheet.
This algorithm is simple, but it should be noticed that this heuristic algorithm will not always give an optimal solution. In the following, we derive an extra Mix Integer Program (MIP) for solving the unmet demands.
Let F be the set of finals that its demand is not satisfied yet. The set F contains d f of final f if the unmet demand of a final f is d f . The number of extra stock sheets for satisfying the unmet demands must be greater than or equal We define S as the set of the extra sheets, where card(S) = min extra . Based on F, with the same procedure as in section we can define K, the set of possible stripes. Denote a stripe by k, and let w k be the width. For s ∈ S, k ∈ K, and i ∈ θ k define the variables The first and the second constraints of (3) are similar to ones in (2), but here we impose the variables S L s and S W s for measuring the wastes on the extra sheet s. The third constraint ensures that each element of F will be placed exactly once on a stripe on an extra sheet. If the extra MIP (3) is not feasible, we then increase the value of min extra by one and we update the set S so that card(S) = min extra . We continue solving the problem (3) with the new value of min extra until the problem is feasible and the optimal solution is obtained.

COMPLETE ALGORITHM FOR SOLVING TWO-DIMENSIONAL CUTTING STOCK PROBLEM
From the discussion in sections 2, 3 and 4, we have a complete algorithm for solving two-dimensional guillotine cutting stock problem, which is summarized in figure 2.

EXAMPLE
In this section, we give an example of the problem and its optimal solution that is obtained by applying the algorithm in figure 2. The initial basis matrix we use is diagonal matrix where the value of its ith diagonal element is the maximum number of final f i that can be placed on a stock sheet. We use the extra MIP (3) for solving the unmet demands, and the complete algorithm is then implemented in AIMMS 3.4. Table 3 shows all cutting patterns that are used in searching the optimal solution. The first ten cutting patterns are obtained from the initial basis matrix, and the remaining cutting patterns are generated by the column generation sub problem.  The optimal solution of the relaxation problem of (1) is given in the table 4. The round-down solution is given in the most right column of 4. The unmet demands caused by the round-down process are given in table 5. To satisfy the unmet demands, we solve the extra MIP (3) in which in the first iteration we use In other word, we guess that we need five extra sheets to satisfy the unmet demand. The extra MIP (3), indeed, is feasible with card(S) = 5, and the optimal extra cutting patterns are given as the last five columns in table 5. From the LP relaxation of the master problem we obtain the optimal number of stock sheets needed is 60.44, which tell us that the optimal number of the master problem must be greater than or equal 61. From the round-down solution and the extra cutting patterns we know that the number of stock sheets needed is 61, so that this is must be the optimal solution of the master problem (1). The visualization of the selected cutting patterns and the extra cutting patterns can be seen in figures 3 and 4.

SUMMARY AND OPEN PROBLEM
In this paper we consider two-dimensional cutting stock problem with guillotine cutting type and fixed orientation. The column generation technique is applied for solving the LP relaxation of the problem, where the sub problem for generating a new column is constructed based on the method of stripe. The integer solution is obtained by round down the LP relaxation optimal solution, and we propose an extra MIP for solving the unmet demands.
The rate of convergence of the column generation technique depends on the initial basis matrix. In our example, for simplicity we use a diagonal matrix. From our experience, the diagonal basis matrix is not good initial basis matrix since, mostly, none of its columns was selected in the optimal solution. It is still an open problem to determine a better initial basis matrix, and further we can investigate the efficiency we get if we use the better initial basis matrix.