A combined approach to the solution to the general one-dimensional cutting stock problem

A combined approach to the solution to the general one-dimensional cutting stock problem

Computers & Operations Research 32 (2005) 1793 – 1807 www.elsevier.com/locate/dsw A combined approach to the solution to the general one-dimensional...

220KB Sizes 4 Downloads 45 Views

Computers & Operations Research 32 (2005) 1793 – 1807

www.elsevier.com/locate/dsw

A combined approach to the solution to the general one-dimensional cutting stock problem Miro Gradisar∗ , Peter Trkman Faculty of Economics, University of Ljubljana, Kardeljeva ploscad 17, Ljubljana 1000, Slovenia

Abstract In this article a combined method for the solution to the general one-dimensional cutting stock problem (G1D-CSP) is proposed. The main characteristic of G1D-CSP lies in that all stock lengths can be di1erent. The new approach combines two existing methods: sequential heuristic procedure (SHP) and branch-and-bound. The algorithm based on the proposed method leads to almost optimal solutions, which are substantially better than the solutions of known methods at the expense of slightly increased time complexity, which is still low. So, the new method is suitable for all sizes of the problem. A comparison with the SHP is presented. ? 2004 Elsevier Ltd. All rights reserved. Keywords: Cutting; Optimization; Heuristics; Branch-and-bound

1. Introduction It is known that stock-cutting problems are in general NP-complete and a solution can be found mostly by using approximate methods and heuristics [1]. The use of exact methods is limited to the problems of very small size. Due to fast development of computers, the importance of exact methods is growing and the number of practical situations, where they can be used, is increasing [2–4]. The purpose of this paper is to propose how the existing methods for the solution to general one-dimensional cutting stock problem (G1D-CSP) [5–7] can be improved by using a combination of the exact method and sequential heuristic procedure. G1D-CSP di1ers from the



Corresponding author. Tel.: +386-1-5892-400; fax: +386-1-5892-698. E-mail address: [email protected] (M. Gradisar).

0305-0548/$ - see front matter ? 2004 Elsevier Ltd. All rights reserved. doi:10.1016/j.cor.2003.11.028

1794

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

standard one-dimensional cutting stock problem (S1D-CSP) [6,8,9] in that it satisEes three general conditions: 1. All stock lengths can be di1erent. (In S1D-CSP, the stock is of the same length or of a few groups of standard lengths, which means that all objects within the same group are identical.) 2. If there is an abundance of material, order lengths are cut in exactly the required number of pieces. (In S1D-CSP this number can be greater than demanded.) 3. Only one stock length is not cut to the end. The result is a residual length that could be used later. (In S1D-CSP all used stock lengths are cut to the end.) G1D-CSP potentially exists in all practical situations where the beneEts of getting the exact required number of pieces and of returning the residual length back into stock outweigh the cost. Solutions to the one-dimensional (1D) cutting stock problem can be classiEed into two groups: pattern-oriented and item-oriented [10]. Solutions to S1D-CSP are pattern-oriented. At Erst, order lengths are combined into cutting patterns, for which the frequencies that are necessary to satisfy the demands are then determined [11–14]. In G1D-CSP, all stock lengths can be di1erent. Therefore, frequencies of cutting patterns other than 1 and 0 cannot be determined and only an item-oriented solution is possible [5,7]. G1D-CSP can be solved with exact methods (branch-and-bound, dynamic programming) or approximation algorithms (sequential heuristic procedure—SHP). Generally, time complexity of SHP is low, but it may generate a solution that has a greatly increased trim loss due to the so-called ending conditions. This means that cutting of a few stock lengths at the end contributes to the major part of the overall trim loss. To minimize the inGuence of ending conditions, we decided to combine both methods: sequential heuristic procedure for solving the majority of G1D-CSP and branch-and-bound for the rest of it. The objectives of the combined method are lower trim loss and acceptable time complexity. While most methods consider trim loss as the main objective, several methods also include other factors. An approach that can be used to the problem deEned in this paper is presented in [15], while other methods for multi-criteria cutting stock problems are presented in [16–18]. Many item-oriented approaches and methods are described in literature [5,7], but we have not found any similar method for a solution to G1D-CSP so far. In the following sections a deEnition of the cutting problem and the solution algorithm named C-CUT is given. Numerous examples of practical implementation of C-CUT are presented. Comparison with sequential heuristic procedure is added.

2. Problem denition The G1D-CSP is deEned in a very similar way as in [6,7,19]. For every customer order a limited number of di1erent stock lengths is available. Those stock lengths must be cut into a required number of pieces of di1erent order lengths. All lengths are integers. If they are not, we assume that it is always possible to multiply them with a factor and transform them into integers. The following

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

1795

notation is used: si order lengths; i = 1; : : : ; n. bi required number of pieces of order length si . dj stock lengths; j = 1; : : : ; m. xij number of pieces of order length si having been cut from stock length j. UB upper bound for trim loss. yj indicates whether the stock length j is used in the cutting plan. (yj = 0 if stock length j is used in the cutting plan). j indicates the remainder of stock length j. uj indicates whether the remainder of stock length j does not count as trim loss (uj = 1, if remainder is greater than UB and does not count as trim loss). tj indicates the extent of trim loss relating to stock length j: tj is equal to j for all used stock lengths, except for one that is longer than UB and can be returned to the stock and used in later cutting stock plans. tj equals 0 for all unused stock lengths and the one stock length that is returned to the stock. Two cases are possible: Case 1: an order can be fulElled because an abundance of material is in stock. m  (1) min tj (minimize trim loss) j=1

s.t. (2) (3)

n  i=1 m 

si ∗ xij + j = dj (1 − yj ); j = 1; : : : ; m xij = bi ; i = 1; : : : ; n

(knapsack constraints)

(demand constraints—the numbers of pieces are all Exed):

j=1

(4) j − UB ∗ uj ¿ 0; j = 1; : : : ; m

(uj can equal 1; only if the remainder of stock length j is longer than UB):

(5)

m  j=1

(6) tj =

uj 6 1 

(maximum number of residual lengths that can be returned to the stock):

j

if yj = 0 ∧ uj = 0;

0

otherwise:

(7) UB 6 max si xij ¿ 0; integer;

i = 1; : : : ; n; j = 1; : : : ; m;

tj ¿ 0;

j = 1; : : : ; m;

j ¿ 0;

j = 1; : : : ; m;

1796

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

uj ∈ {0; 1}; yj ∈ {0; 1}: As suLcient stock lengths are available, there would be cutting plans with “no trim loss” but ever-growing stocks. Condition (5) prevents this, because a maximum of one stock length can be returned to the stock. Unutilized stock length larger than UB, can be used further and is not considered as waste. UB can be set optionally between 0 and max si . UB = min si is found in practice [5]. Case 2: an order cannot be entirely fulElled due to the shortage of material (distribution of uncut order lengths is not important). n  (1) min j (minimize sum of trim losses); i=1

s.t. (2) (3)

n  i=1 m 

si ∗ xij + j = dj ; j = 1; : : : ; m xij 6 bi ; i = 1; : : : ; n

(knapsack constraints);

(demand constraints);

j=1

(4) xi ¿ 0; integer j ¿ 0;

i = 1; : : : ; n; j = 1; : : : ; m;

j = 1; : : : ; m:

In this case UB is not included in the model. If UB were reduced to min si , this would lead to the following problem; as the aim of the algorithm is minimization of the overall trim loss, this could lead to unfulElled requirements for the longest order lengths, even if the overall trim loss were small, and if the aims were achieved according to the logic of the algorithm. The trim losses, which would be longer than UB but shorter than the longest order lengths, could remain unutilized. For that reason, UB should not be less than max si . If UB were set to max si , any trim loss longer than max si could certainly be used to cut an additional order length; so, UB equal or longer than max si would not have any inGuence on the solution. 3. Method To the best of our knowledge, three-solution methods for an equal or a very similar problem as described above can be found in the literature. The Erst method [5] is heuristic and adapted to the situation in clothing industry. The second method [7] in the form of an algorithm named CUT is an improved and generalized version of the Erst one, and the third is the exact method [19] suitable only if the size of a problem is small. The proposed method in this paper is a combination of the second and third methods. The CUT algorithm [7] is a sequential heuristic procedure based on item-oriented treating of all stock lengths. It pays special consideration to order and stock lengths that should be cut in each

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

1797

phase of the algorithm. In every phase of the algorithm, a cutting plan for one stock length is found. In earlier phases, preferences are given to longer order lengths, order lengths with larger average demand per order length and shorter stock lengths. In such a way, it minimizes the inGuence of the so-called ending conditions. The basic idea of the new method named C-CUT (Combined cutting) is to End a temporary solution with CUT and then improve it by solving a small, critical part of the problem (sub-problem) again with the exact method. There is a question of how small the sub-problem should be. In our previous research [20], we found that the exact method gives better results as CUT in acceptable time limits (less than 1 min) only if the problem comprised less than 10 di1erent stock and order lengths. So, we expect substantially better results at the expense of slightly increased time complexity. Therefore, the proposed method would still be suitable for all sizes of the problem. The following new variables are introduced: p f g bi

number number number number

of of of of

stock lengths used in the cutting plan generated by the CUT algorithm used stock lengths included in the sub-problem unused stock lengths included in the sub-problem pieces of order length si included in the sub-problem.

The algorithm of the proposed C-CUT method has the following steps: Step 1: Obtain a preliminary solution with CUT and save it. Step 2: If the solution certainly is optimal, then stop. The solution is considered optimal if any of the following conditions are fulElled: (1)

m 

tj = 0

(for cases with an abundance of material):

j = 0

(for cases with a lack of material):

j=1

(2)

m  j=1

 (3) 0 6 

m  j=1

dj −

n  i=1

 (s ∗ bi ) ¡ UB ∧

m  j=1

tj =

m  j=1

dj −

n 

(si ∗ bi ):

i=1

The conditions listed above are suLcient but not necessary for an optimal solution. It is possible that a solution is optimal, even if it does not fulEll any of them. Since the CUT algorithm o1ers no indication as to whether the obtained solution is optimal and since there is no method to prove the optimality of such a solution, all solutions not fulElling any of those conditions are considered sub-optimal and are entered into the third step. Step 3: Form a sub-problem Stock and order lengths of a sub-problem are selected with respect to the results of Step 1. The procedure is slightly di1erent in the case of a surplus or a lack of material. The procedure is as

1798

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

follows: Case 1: surplus of material • Sort all used stock lengths (yj = 0) by decreasing j (j = 1; : : : ; p). As all stock lengths can be di1erent and therefore the cutting order is not important, the sorting of stock lengths does not have any inGuence on the solution. It is necessary to sort them by decreasing j to assure that the stock length where uj = 1; j ¿ 0 and tj = 0 is also included in the subset. Otherwise it would be possible to have two stock lengths with uj = 1 at the end, which would violate the constraint (5). • Sort all unused stock lengths (yj = 1) by decreasing dj (j = p + 1; : : : ; m). Unused stock lengths by descending stock length to increase the ratio between m n are sorted  ) as well as the ratio between the average d and average s . If d and (s ∗ b j i i j=p+1 j i=1 i both ratios are higher the cutting problem is easier to solve and lower trim loss can be expected [7]. • Select a subset of stock lengths. In the subset Erst f used and Erst g unused stock lengths are included. • Select a subset of order lengths and identify the required number of pieces. 

bi =

f 

xij ;

i = 1; : : : ; n

j=1

Order lengths with bi = 0 are not included in the subset. Case 2: lack of material • Sort stock lengths by decreasing j (j = 1; : : : ; m). Obviously there are no unused stock lengths, therefore g = 0. • Select a subset of Erst f stock lengths from the sorted lists. • Select a subset of order lengths and identify the required number of pieces. bi =

f  j=1

 xij + bi −

m 

 xij  ;

i = 1; : : : ; n

j=1

The second part of the above expression presents the missing number of pieces in the cutting plan of step 1 due to the shortage of material. Order lengths with bi = 0 are not included in the subset. Step 4: Find a solution to the sub-problem using the branch-and-bound exact method. In both cases, the sub-problem can be solved by any of the available solutions for integer linear programming. Step 5: Replace a corresponding part of the cutting plan from step 1 with a solution to the sub-problem. Compare the new solution with the solution of CUT. Select the best one as the Enal solution and stop.

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

1799

Fig. 1 shows a Gowchart of C-CUT. If the sub-problem is solved optimally, the new solution is at least equal and, in general, better than the solution of CUT. The solution to the sub-problem depends on f and g. Greater f and g mean greater complexity of the sub-problem. Therefore, f and g should be selected in such a way that an optimal solution to the sub-problem can be found within reasonable time limit; otherwise, the solution canbe worse than that of CUT. An increased f also decreases the ratio between  m n  j=p+1 dj and i=1 (si ∗ bi ). On the other hand, low values for f and g mean that the solution to the sub-problem cannot be much better than the solution to CUT. Obviously, setting f = g = 0 means that the entire problem is solved by CUT, while setting f = p and g = m − p means that the entire problem is solved by an exact method. Selection of f and g depends on: • characteristics of the problem (ratio between dj and average si ), • computing power, • time limit for exact method, and • quality of integer linear programming solver.

m

j=1

dj and

n

i=1

(si ∗ bi ); ratio between average

Extensive experiments with branch-and-bound method for solving G1D-CSP were described in [19,20]. The results were statistically tested, and showed that for the described conditions (these experiments were made on the same computer with the same integer programming solver) f + g should be set between 5 and 10. In cases where the number of stock lengths exceeds 8, the complexity of the problem grows quickly and consequently, a solution to the sub-problem found in 1 min is far from the optimum. As shown in [19], it is even considerably worse than the solution obtained by CUT. On the other hand, it would not be reasonable to set f + g to a number lower than 6, because this would mean that a solution to the sub-problem could not be much better than the solution already found by CUT. The practical experiment presented in the next section showed that, in our case, the setting of f and g was appropriate and resulted in a considerably reduced trim loss. The computer runtime for C-CUT can increase by 1 min at the most compared to CUT because the Erst phase of the algorithm is identical to CUT. The time limit for the solution with an exact method is set to 1 min and cannot exceed this limit. The time spent for other phases of the algorithm i.e., forming a sub-problem is negligible. In most cases, the di1erence is even less than 1 min. Average times needed for the examples in this paper are shown in Table 1. As the size of the sub-problem remains unchanged regardless of the size of the whole problem, total time complexity depends solely on time complexity of CUT. As shown in [7], where time complexity of CUT was studied, the method is suitable for larger problems as well. Therefore, C-CUT can also be used for larger problems.

4. Results The proposed method for a solution to the G1D-CSP was tested by solving problems described in the literature. In [9], 270 problem instances were generated with a problem generator algorithm PGEN

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807 START READ INPUT DATA SOLVE PROBLEM W ITH CUT

CALCULATE OVERALL TRIM LOSS (TL1) AND SAVE THE OBTAINED SOLUTION (S1)

OPTIMAL SOLUTION?

NO SORT USED STOCK LENGTHS BY

δJ

SURPLUS OF MATERIAL?

SORT UNUSED ST OCK LENGTHS BY DECREASING d J

NO

INCLUDE F USED STOCK LENGTHS IN THE SUBPROBLEM

INCLUDE F USED AND G UNUSED STOCK LENGTHS IN THE SUBPROBLEM

YES

DECREASING

YES

1800

SOLVE SUBPROBLEM WITH B& B REPLACE CORRESPONDI NG P ART OF THE CUTTING PLAN WITH THE SOLUTION OF SUBPROBLEM (S2) AND CALCULATE OVERALL TRIM LOSS

TL2< TL1?

NO

YE S DISPL AY S2

ST OP

Fig. 1. A Gowchart of C-CUT algorithm.

DISPL AY S1

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

1801

Table 1 Comparison between CUT and C-CUT (r = 10) No. n

v1

v2

d

m

u1

u2

Seed

Trim loss CUT (cm) (%)

Trim loss C-CUT Av. sol. time C-CUT (s) (cm) (%)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

100 100 100 200 200 200 300 300 300 100 100 100 200 200 200 300 300 300 100 100 100 200 200 200 300 300 300

300 300 300 600 600 600 900 900 900 300 300 300 600 600 600 900 900 900 300 300 300 600 600 600 900 900 900

10 20 30 10 20 30 10 20 30 10 20 30 10 20 30 10 20 30 10 20 30 10 20 30 10 20 30

10 10 10 20 20 20 30 30 30 20 20 20 40 40 40 60 60 60 30 30 30 60 60 60 90 90 90

1000 1000 1000 2000 2000 2000 3000 3000 3000 1000 1000 1000 2000 2000 2000 3000 3000 3000 1000 1000 1000 2000 2000 2000 3000 3000 3000

3000 3000 3000 6000 6000 6000 9000 9000 9000 3000 3000 3000 6000 6000 6000 9000 9000 9000 3000 3000 3000 6000 6000 6000 9000 9000 9000

510301010 510302010 510303010 520601020 520602020 520603020 530901030 530902030 530903030 1010301020 1010302020 1010303020 1020601040 1020602040 1020603040 1030901060 1030902060 1030903060 1510301030 1510302030 1510303030 1520601060 1520602060 1520603060 1530901090 1530902090 1530903090

12 248 86 20 105 571 16 166 365 8 303 52 10 18 350 5 18 324 19 276 47 13 45 126 9 11 37

9 129 35 14 84 523 7 118 332 0 212 0 1 6 292 0 10 238 0 96 12 0 11 83 2 0 22

5 5 5 5 5 5 5 5 5 10 10 10 10 10 10 10 10 10 15 15 15 15 15 15 15 15 15

0.0161 0.1424 0.0427 0.0126 0.0287 0.1121 0.0070 0.0313 0.0482 0.0044 0.0795 0.0125 0.0029 0.0024 0.0313 0.0009 0.0015 0.0185 0.0070 0.0487 0.0077 0.0024 0.0039 0.0071 0.0011 0.0006 0.0014

0.0121 0.0741 0.0174 0.0088 0.0230 0.1026 0.0031 0.0223 0.0438 0.0000 0.0556 0.0000 0.0003 0.0008 0.0261 0.0000 0.0009 0.0136 0.0000 0.0169 0.0020 0.0000 0.0009 0.0047 0.0003 0.0000 0.0008

6.1 43.1 4.3 14.8 28.8 35.4 4.5 13.5 47.4 0.0 21.1 8.3 7.0 17.0 35.6 0.2 18.8 28.0 0.2 22.2 9.4 2.7 17.1 30.8 0.4 0.5 21.8

and solved with CUT and COLA algorithms. The details about generation of problem descriptors and determination of seed for sequences of test problems are shown in the dynamic programming scheme of the procedure PROGEN. The following variables are used in the procedure: n v1 ; v2 d m u1 ; u2 r

number of di1erent order lengths lower and upper bounds for order length average demand per order length number of non-standard order lengths lower and upper bounds for non-standard stock lengths the number of test instances for each problem (in our case r = 10).

1802

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

Procedure PROGEN for i = 1 to 3, for j = 1 to 3, for k = 1 to 3. n←i·5 v1 ← j · 100 v2 ← j · 300 d ← k · 10 m ← i · j · 10 u1 ← j · 500 u2 ← j · 1500 seed ← n · 100000000 seed ← seed + v1 ∗ 100000 seed ← seed + v2 ∗ 1000 seed ← seed + d ∗ 100 seed ← seed + m r ← 10 call PGEN (n; v1 ; v2 ; d; m; u1 ; u2 , seed, r) next next next The PGEN procedure used to generate the test data is described in [9]. There are a few details. Random variables are generated using a uniform random number generator. All lengths are determined by the following two-step procedure: • generating a realization yi of random variable Y uniformly distributed on (b1 ; b2 + 1), where b1 represents lower bound and b2 upper bound: yi = b1 + (b2 − b1 ) · rand i (0; 1) + rand i (0; 1), • and rounding it down to the next integer. If two identical order lengths are generated, then the second-order length is deleted after adding its demand to the demand of the Erst one. All lengths and the number of pieces generated with PGEN procedure are integers, and their values cannot exceed 32,767. As noted in [20], the optimal solution using branch-and-bound can be expected within 60 s when the total number of stock lengths is less than 10. Therefore, for our experiment, f was set to 6, while g was set to 2, in cases with a surplus of material. If the number of stock lengths with j ¿ 0 is less than 6, f was decreased to equal the number of such stock lengths. Consequently g was increased to min (8-f, number of unused stock lengths). This only happens in smaller cases, where the number of stock lengths is below 20. In cases with the lack of material g = 0 and f = 8. The CUT algorithm is written in FORTRAN. The FORTRAN program reads the results of the Erst phase. Then, the sub-problem was written in Visual Basic for Applications, and Step 4 of the

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807 DETAILS ABOUT ORDER LENGTHS order length length 1 144 2 194 3 249 4 157 5 129

1803

pieces 2 3 18 15 12

DETAILS ABOUT STOCK LENGTHS stock length length 1 2663 2 1862 3 1805 4 1963 5 2461 6 1963 7 2196 8 1532 9 1954 10 1158 RESULTS ARRANGED ACCORDING TO ORDER LENGTHS order length stock length pieces 1 9 1 1 1 1 2 7 2 2 1 1 3 7 6 3 8 3 3 9 6 3 1 3 4 2 2 4 7 2 4 8 5 4 9 2 4 1 4 5 2 12 TRIM LOSS stock length 1 2 7 8 9

δj 950 0 0 0 2

tj 0 0 0 0 2

overall trim loss = 2

Fig. 2. Initial solution obtained with CUT algorithm.

algorithm was solved with the MPL/CPLEX solver. All computations were carried on a PC (AMD, 1:3 GHz). The Erst generated test instance was already solved optimally in the Erst phase. The solution to the second generated test instance is shown in Figs. 2–4. Fig. 2 shows the solution to the Erst phase (Step 1 and Step 2) obtained with CUT; Fig. 3 shows the solution to the second phase (Step 3 and Step 4) obtained with branch-and-bound; and Fig. 4 shows the Enal, combined solution to C-CUT.

1804

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807 DETAILS ABOUT ORDER LENGTHS order length length 1 144 2 194 3 249 4 157

pieces 2 1 9 6

DETAILS ABOUT STOCK LENGTHS stock length length 1 2663 3 1805 4 1963 5 2461 6 1963 9 1954 10 1158 RESULTS ARRANGED ACCORDING TO ORDER LENGTHS order length stock length pieces 1 3 1 1 5 1 2 3 1 3 3 4 3 5 5 4 3 3 4 5 3 stock length 3 5

δj 0 601

tj 0 0

overall trim loss = 0

Fig. 3. Solution to the sub-problem.

RESULTS ARRANGED ACCORDING TO ORDER LENGTHS order length stock length pieces 1 3 1 1 5 1 2 7 2 2 3 1 3 7 6 3 8 3 3 3 4 3 5 5 4 2 2 4 7 2 4 8 5 4 3 3 4 5 3 5 2 12 overall trim loss = 0

Fig. 4. The Enal C-CUT solution.

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

1805

According to the results in Fig. 3, f = 2 and g = 5, the stock lengths 1,3,4,5,6,9, and 10 are cut in phase 2. This example also emphasizes the importance of sorting using stock lengths by j and not by tj . If stock lengths were sorted by tj , the stock length 1 (j = 950; tj = 0) would not be included in the sub-problem and the Enal C-CUT solution could violate the constraint (5) in the problem deEnition. The solution to the second phase was found in 0:17 s. Remark. The remainder of stock length 5 is 601 and is not considered as waste because it is longer than UB and u5 = 1. This stock length is returned to the stock and can be used in later cutting plans. Overall trim loss equals 0, so we have found an optimal solution. The exact solution of the sub-problem uses stock lengths 3 and 5, while CUT uses stock lengths 1 and 9 with higher trim loss. The results obtained by solving all 270 problem instances with CUT and C-CUT are shown in Table 1. In every row of the table there is the sum of 10 overall trim losses and the average percent of trim loss calculated with respect to the total length of all stock used in the cutting plan. In the last column, average solution time for the second phase (solving the sub-problem) is shown. This average is calculated as the average of solution times for 10 problem instances. Solution time for the second phase is set to 0 if the problem instance was already solved optimally with CUT. The solution time for the Erst phase (CUT algorithm) can be neglected, because it never exceeded 0:5 s. To sum up, out of 270 problem instances CUT found an optimal solution in 70 instances. So, 200 instances entered the second phase of the algorithm, where a better solution was found in 155 cases (91 of them were solved optimally). In total, 161 instances were solved optimally. In comparison with CUT, the total trim loss is decreased by 31.4% (from 3260 to 2236), which means considerable improvement, while still keeping time complexity of the proposed algorithm low. A better solution was found in more than 75% of all cases and the number of optimally solved cases has more than doubled. Therefore, C-CUT is clearly superior to CUT. The Enal trim loss is extremely low, as it never exceeds 0.1% of used material. The trim loss is higher in cases where the ratio between total available material and total needs is close to 1. For example, three cases with highest trim loss are cases No. 6, 2 and 11, where this ratio is 1.3, 1.0 and 1.0, respectively. This is due to the fact that in those cases CUT, and consequently C-CUT, have a smaller number of possible solutions to select from, because the vast majority of both stock and order lengths has to be utilized. More detailed statistical analysis of the factors inGuencing the eLciency of CUT algorithm can be found in [7]. C-CUT is also clearly superior to the exact method alone. As shown in [20], the exact method is only suitable for problems, where the number of stock lengths is 8 or less, with a similar number of order lengths and an average order per order length. Solutions produced by CPLEX with tolerance in the optimality gap or with a Exed acceptable time limit are worse for larger problems. A detailed comparison between CUT and CPLEX when applied to the original problem can be found in [20]. As shown, C-CUT is better than other methods for solving G1D-CSP. C-CUT cannot be directly compared with any method known from the literature beside the three already mentioned ones. Some methods [21,4] are based on similar ideas, but deEnition of the problem varies signiEcantly. Schilling [4] for instance deals with stock lengths of equal length or in the best instance with two groups of identical stock lengths, while in this paper we deal with problems where stock lengths do not belong to a few groups of standard lengths, but they all can be di1erent.

1806

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

5. Conclusion This article examines a new method for solving the G1D-CSP, which leads to almost optimal solutions, while keeping low time complexity. The proposed method can be used in cases with both surplus and lack of material and for solving G1D-CSP of all sizes. With the combination of the heuristic and the exact method, where the exact method was used for the solution of a smaller sub-problem, the inGuence of ending conditions was minimized. The algorithm C-CUT was developed, based on the proposed method. A considerable improvement over the previously published method CUT is obtained. Future research in this area could include possible reEnements of the objective function, such as inclusion of storage costs and costs of changes in cutting patterns, or explore a possible special structure of the integer model in order to improve the performance of the branch-and-bound method. References [1] Bischo1 EE, Wascher G. Cutting and Packing. European Journal of Operational Research 1995;84(3):503–5. [2] HiE M. Exact algorithms for the guillotine strip cutting/packing problem. Computers & Operations Research 1998;25(11):925–40. [3] Carvalho V. LP models for bin packing and cutting stock problem. European Journal of Operational Research 2002;141(2):253–73. [4] Schilling G, Georgiadis M. An algorithm for the determination of optimal cutting patterns. Computers & Operations Research 2002;29(8):1041–58. [5] Gradisar M, Jesenko J, Resinovic G. Optimization of roll cutting in clothing industry. Computers and Operations Research 1997;24(10):945–53. [6] Gradisar M, Kljajic M, Resinovic G. A hybrid approach for optimization of one-dimensional cutting. European Journal of Operational Research 1999;119(3):165–74. [7] Gradisar M, Resinovic G, Jesenko J, Kljajic M. A sequential heuristic procedure for one-dimensional cutting. European Journal of Operational Research 1999;114(3):557–68. [8] Gau T, Wascher G. CUTGEN1: A problem generator for the standard one-dimensional cutting stock problem. European Journal of Operational Research 1995;84(3):572–9. [9] Gradisar M, Resinovic G, Kljajic M. Evaluation of algorithms for one-dimensional cutting. Computers & Operations Research 2000;29(9):1207–20. [10] Dyckho1 H. A typology of cutting and packing problems. European Journal of Operational Research 1990;44(2): 145–59. [11] Belov G, Scheithauer G. A cutting plane algorithm for the one-dimensional cutting stock problem with multiple stock lengths. European Journal of Operational Research 2002;141(2):274–94. [12] Belov G, Scheithauer G. A branch-and-cut-and-price algorithm for one- and two-dimensional two-staged cutting (stock) problems. Preprint MATH-NM-03-2003. [13] Gilmore PC, Gomory RE. A linear programming approach to the cutting stock problem. Operations Research 1961;9:849–59. [14] Gilmore PC, Gomory RE. A linear programming approach to the cutting stock problem, Part II. Operations Research 1963;11:863–88. [15] Trkman P, Gradisar M. Optimization of cutting stock process. Journal of Mechanical Engineering 2003;49(9). [16] WSascher G. An LP-based approach to cutting stock problems with multiple objectives. European Journal of Operational Research 1990;44(2):175–84. [17] Zak E. Row and column generation technique for a multistage cutting stock problem. Computers & Operations Research 2002;29(9):1143–56. [18] Liang K, Yao X, Newton C, Ho1man D. A new evolutionary approach to cutting stock problems with and without contiguity. Computers & Operations Research 2002;29(12):1641–59.

M. Gradisar, P. Trkman / Computers & Operations Research 32 (2005) 1793 – 1807

1807

[19] Gradisar M, Trkman P, Indihar Stemberger M. Exact solution of general one-dimensional cutting stock problem. Working paper No. 123, Faculty of Economics, University of Ljubljana, 2002. [20] Trkman P, Gradisar M. A comparison between exact and approximate method for solution of general one-dimensional cutting stock problem. Informatica—Journal of Computing and Informatics. In print. [21] Westerlund T, Harjunkoski I, Isaksson J. Solving a production optimization problem in a paper-converting mill with MILP. Computers & Chemical Engineering 1998;22:563–70.