OPTIMIZATION OF ONE DIMENSIONAL CUTTING

advertisement

Evaluation of algorithms for one-dimensional cutting

Vrednotenje algoritmov za enodimenzionalni razrez

Miro Gradišar

#*

, Gortan Resinovič

*

#

Faculty of Organisational Sciences, University of Maribor,

4000 Kranj, Prešernova ulica 11, Slovenia

* Faculty of Economics,University of Ljubljana,

1000 Ljubljana, Kardeljeva ploščad 17, Slovenia

Abstract

The paper deals with the problem of evaluation and comparison of different one-dimensional stock cutting algorithms regarding trim loss. Three possible types of problems are identified. Evaluation method is developed which enables a comparison of solutions of all three types of problems. A practical example of method implementation for comparison of two algorithms is presented.

Povzetek

Članek obravnava problem vrednotenja in primerjave različnih algoritmov enodimenzionalnega razreza glede na ostanke. Opredeljeni so trije možni tipi problemov. Razvita je bila metoda vrednotenja, ki omogoča primerjavo rešitev vseh treh tipov problemov. Podan je tudi praktičen primer uporabe te metode za primerjavo dveh algoritmov.

Keywords: Cutting; Heuristics; Optimisation; Evaluation

1. Introduction

The problem of one-dimensional stock cutting occurs in many industrial processes [3,7,8,11,12] and during the past few years it has attracted an increasing attention of researchers from all over the world [1,13]. Most standard problems related to one-dimensional stock cutting are known to be NP-complete. However, in many cases the problems can be modelled by means of mathematical programming and a solution can be found by using approximate methods and heuristics.

The cutting problems can be classified according to Dyckhoff

2

. He developed a classification scheme for cutting stock problems through a large variety of applications reported in the literature. He classified problems using four characteristics: Dimensionality , Kind of assignment , Assortment of large objects and

Assortment of small items .

Dyckhoff classifies the solution of cutting stock problems into two groups: item-oriented and pattern oriented approach. Item-oriented approach is characterised by individual treatment of every item to be cut. In the pattern-oriented approach, at first, order lengths are combined into cutting patterns, for which - in a succeeding step - the frequencies are determined that are necessary to satisfy the demands. In pattern-oriented approach the classic LP-based Gilmore and Gomory’s “delayed pattern generation” [5,6] or any other LP-

based Method (LPM) is mostly used [14,15,16]. LPM is possible only when the stock is of the same length

5

 or of few groups of standard lengths which means that all objects within the same group are identical

6

. In cases when all stock lengths are different frequencies can not be determined and therefore only an itemoriented solution can be found [8,9]. That means that in cases when the stock is of different lengths there are two different situations and two different solution approaches. One if there are few groups of standard lengths and other when all stock lengths are different. This important distinction is not taken into account by the

Dyckhoff’s classification scheme since the distinguishes Assortment of large objects only three possibilities:

(O) One large object.

(I) Many identical large objects.

(V) Different large objects.

Therefore we suggest additional possibility:

(G) Few groups of identical large objects.

The enlarged Dyckhoff’s classification scheme is as follows:

1. Dimensionality

(N) Number of dimensions

2. Kind of assignment

(B) All large objects and a selection of small items.

(V) A selection of large objects and all small items.

3. Assortment of large objects

(O) One large object.

(I) Many identical large objects.

(G) Few groups of identical large objects.

(V) Different large objects.

4 . Assortment of small items

(F) Few items of different dimensions.

(M) Many items of many different dimensions.

(R ) Many items of relatively few dimensions.

(C) Many identical items.

In both approaches the pattern-oriented and item-oriented one there are many algorithms and methods for one dimensional stock cutting with different factors which are taken into account. Therefore the general comparison between them is very difficult if not impossible. But if we assume that the trim loss is the most important common factor we can overcome this problem by limiting the comparison only on trim loss. We decided to develop the evaluation method for one-dimensional stock cutting algorithms regarding trim loss. In the literature a description of such a method hasn’t been found so far. In 

4

is described the problem generator which only enables a comparison between pattern-oriented methods.

In the article a definition of trim loss in different approaches and different types of cutting stock problem is given. Problem parameters are identified. The evaluation method that takes into account those parameters is developed. At the end practical implementation of the method is presented.

2. Trim loss definition

In different cutting stock problems and in different approaches to them the trim loss is defined differently.

If we want to compare different solution methods regarding trim loss we must first introduce the trim loss definition which will be the same for all types of problems. Such a general definition of trim loss is possible when we introduce General One-Dimensional Cutting Stock Problem (G1D-CSP). (G1D-CSP) is defined as follows:

For every customer order a sufficiently large stock of material is available with any assortment (O or I or G or V). It is necessary to cut a certain number of order lengths into required number of pieces. If there is shortage of material it is always possible, automatically or manually, to adapt the required number of pieces of some order lengths to the available amount of material

9

. We consider the lengths as integers. If they are not originally integers we assume that it is always possible to multiply them with a factor and transform them to integers. The following notation is used: l i

order lengths; i

1,..., n , d

U i

required number of pieces of order length l j

stock lengths; j

1,..., m , i

, p ij

number of pieces of order length l i having been cut from stock length j .

The following integer programming model can be formulated

9

: m

(1) min

 t j

j

1

(minimise trim loss which is smaller or equal than max l i

) s.t. n

(2) U j

 i

1

m

 l i

 p ij

  j

 j (knapsack constraints)

(3)

 p ij

 d i

 i (demand constraints - order lengths are cut in exactly demanded number of pieces) j

1 m

(4)

 w j

1 (maximum number of residual lengths which are larger than max l i

) j

1 p ij

0, integer

 i, j t j j

0

j

0, integer

j , where the following functions are used:

0 if p

  ij

0

 i z j

1 otherwise to indicate whether stock length j is used in the cutting plan,

1 if z j

1

 w j

0 otherwise

 j

max l i

  to indicate whether the trim loss relating to stock length j is greater than the longest order length,

  j if z j

1

  j

max l i

t j

 

0 otherwise. t j

indicates the extent of the trim loss relating to stock length j .

Upper bound ( UB ) for the trim loss can be set between 0 and max l i

(condition (4)). Max l i is chosen as UB to ensure that all residual stock lengths as a result of condition (3) are taken into account in optimisation.

Residual stock length that is larger than max l i

could be used furthers and is not considered as waste. If there are more residual stock lengths larger than max l i

it is always possible to recombine the pieces of order lengths in such a way that only one residual stock length is left larger than max l i

[Gradisar 1,2]. To ensure this the condition (4) has to be set. Without a condition (4), in case of sufficiently large stock, there will be cutting plans with "no trim loss" but ever growing stocks [8].

To solve G1D-CSP we need the item-oriented method because all stock lengths can be different. There are two possibilities: exact methods (branch and bound, dynamic programming) or approximation algorithms in form of Sequential Heuristic Procedure (SHP). SHP seems to be better regarding robustness and potential usefulness in a wide range of cases.

If the stock is of the same length or of a few groups of standard lengths, we get the Standard One-

Dimensional Cutting Stock Problem (S1D-CSP) where the pattern oriented approach is possible [4,10]. S1D-

CSP can be described as follows: l i

order lengths; i

1,..., n , d

L i

required number of pieces of order length l i

, k

stock lengths; k

1,..., p , where p is the number of different standard stock lengths in a sufficiently large stock.

The cutting plan consists of cutting patterns having been cut from different stock lengths and of the corresponding frequencies necessary to satisfy all orders. Cutting pattern c, having been cut from standard stock length k, may be expressed by a vector

( a

1ck

, a

2ck

, a

3ck

,..., a nck

) (5) that satisfies n

 l i i

1

 a ick

L k

, (6) a ick

0 and integer, (7) in which a ick

represents the number of times order length l i

appears in this particular pattern. Let’s denote: x ck

frequency of cutting pattern c having been cut from stock length k , t k

total number of cutting patterns (5) having been cut from stock length k satisfying (6) and (7).

The following integer programming model can be formulated:

p t k min

  x k

1 c

1 ck

L k

(minimise sum of stock lengths to be cut) (8)

p t k

s.t.

  a k

1 c

 ick

 x ck

 d i i = 1,..., n (number of pieces can be greater than demanded) (9)

1 x ck

0 and integer, c = 1,..., t k

; k = 1,..., p . (10)

S1D-CSP can be solved using the classic LP-based Gilmore and Gomory’s “delayed pattern generation” or any other LP-based Method (LPM).

In pattern oriented methods the object of optimisation is not the trim loss but the sum of stock lengths to be cut (8). That means that there are two differences regarding trim loss between G1D-CSP and S1D-CSP:

1.

In G1D-CSP order lengths are cut in exactly required number of pieces. In S1D-CSP this number can be greater than demanded (condition 9).

2.

The last stock length in G1D-CSP is in general not cut to the end. The result is residual length that could be used later. In S1D-CSP all used stock lengths are cut to the end.

Because of those two differences the direct comparison between G1D-CSP and S1D-CSP regarding trim loss is not possible. In order to overcome them we must change either G1D-CSP or S1D-CSP. The differences can be seen also as a result of the limitation of LPM, which is the most frequently used solution method for

S1D-CSP. If G1D-CSP is changed then LPM in general still can’t be used because all stock lengths can be different. Therefore we decided to change S1D-CSP. If we introduce both differences as additional constraints in S1D-CSP we get the new type of problem which can’t be solved with pure pattern-oriented approach but with some combination of item- and pattern-oriented approach. Therefore this new problem can be named

Hybrid 1-Dimensional Cutting Stock Problem (H1D-CSP). The purpose of introducing H1D-CSP is not only a definition of trim loss which enables comparison with G1D-CSP, but also a new quality which we get with its solution:

1.

ability to cut order lengths in exactly required number of pieces

2.

ability to cumulate consecutive residual lengths in one piece which could be used later

3.

ability to use non -standard stock lengths.

We believe that these additional characteristics can be useful in many practical situations. An example of a method based on hybrid approach for solution of H1D-CSP is described in

10

.

3. Method

In literature we don’t find a method for evaluation G1D-CSP or H1D-CSP. Gau and Waesher 

4

have developed a problem generator for S1D-CSP with I-type of assortment of large objects . They identify five problem parameters: m - problem size

L - standard stock length v1,v2 - lower and upper bound for order lengths đ

- average demand per order length.

Our goal is to generalise their method for any type of problem regarding assortment of large objects .

Therefore we need five more problem parameters which will enable us to determine also different standard and non-standard stock lengths. They are presented in Table 1:

n number of different order lengths v

1

, v

2

lower and upper bound for order lengths, i.e. v

1

l i

v

2

( i

1,..., n ) average demand per order length p number of standard stock lengths s

1

, s

2

lower and upper bound for standard stock length, i.e. s

1

L k

s

2

( k

1,..., p ) m number of non-standard stock length u

1

, u

2

lower and upper bound for non-standard stock length, i.e. u

1

U j

u

2

( j

1,..., m )

5.

Table 1: Problem descriptors for the G1D-CSP

The method has the following main steps:

1.

Test problems are generated:

 determination of order lengths and demands

 determination of standard stock lengths

 determination of non-standard stock lengths

2.

If the algorithm is the solution of S1D-CSP then it needs to be transformed to H1D-CSP

10

S1D-CSP’s are solved applying LPM

 frequencies of the patterns with order lengths cut in more pieces than demanded are reduced by one

 the missing number of pieces is then cut from the rest of the stock applying SHP else

 test problems are solved

3.

Results are analysed.

3.1 Generation of test problems

The testing of algorithms requires input data which can be generated according to problem descriptors as random sample of one or more test problems. In our case a single test problem is possible to describe as a

2 n + p + m –dimensional random variable

( l

1

,…, l n

, d

1

,…, d n

, L

1

,…, L p

, U

1

,…, U m

). (11)

Random variables are generated through uniform random number generator. With permission we used pseudorandom number generator, described in

4

because of its properties which are beside simplicity and randomness also portability and reproducibility. The seed of generator is not fixed in advance. Therefore, in testing algorithms the results must always contain information on the seed which was used in a particular test case enabling others to reproduce the test data.

All lengths (order, standard and non-standard) which are integers are determined through the following two step procedure:

generating a realisation y i

of random variable Y uniformly distributed on ( b

1

, b

2

+1) where b

1

represents lower and b

2

upper bound: y i

= b

1

+ ( b

2

- b

1

)

rand i

(0, 1) + rand i

(0, 1), (12)

and rounding it down to the next integer.

If two identical order lengths are generated then the second order length is deleted after demand of it is summed up to the demand of the first one.

Demands d i for the different order lengths l i

( i =1,…, n ) are determined in the way that the total demand D = n

is uniformly distributed between order lengths according to the following rules

 

: d i

= max

1,

đ’ i

+ 0.5

 

, (13) đ’ i

rand i

(0, 1)

= —————— ∙ D i

1,..., n – 1, (14)

n

Σ rand k

(0, 1) k =1 d n

= max

n -1

1, D – Σ d i

. (15)

k =1

The demands đ’ i

except the demand đ’ n

are corrected by adding 0.5 in order to prevent systematically under-estimation of demands d i

except d n

. Otherwise the residual demand d n

would be systematically overestimated.

4. Practical example

As a practical example of proposed method and using a problem generator a comparison of two cutting algorithms is made. With a problem generator it is possible to generate test data for all three types of onedimensional cutting problems. As we have seen in previous sections the comparison between various methods regarding trim loss is possible only if the problem is defined as G1D-CSP or H1D-CSP. If the problem is defined as S1D-CSP then it must be transformed to H1D-CSP. Therefore we decided to compare two itemoriented solutions of G1D-CSP. First one is named COLA and is specialised for use in clothing industry

8

.

The second one is CUT

9

and is a generalised and improved version of COLA.

Test problems have been generated with following values of parameters:

determination of order lengths and demands:

By assigning different values to the problem parameters n ( n = 5, 10, 15), v

1

and v

2

( v

1

= 100 and v

2

=

200, v

1

= 200 and v

2

= 600, v

1

= 300 and v

2

= 900) and đ ( đ = 10, 20, 30) and combining them with each other 27 problems have been generated.

determination of standard stock lengths:

In our case there have been no standard stock lengths and all three parameters p , s

1

and s

2

have been

determination of non-standard stock lengths:

Number of non-standard stock lengths m is varying from 10 to 90, lower bound s

1 from 500 to

1500 and upper bound s

2

from 1500 to 4500.

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 .

Procedure PROGEN:

for i

1 to 3 do

for j

1 to 3 do for k

1 to 3 do n

i

5 v

1 v

2

j

100

j

300 s

1 s

2

0

0

0

k

10 u u r

1

i

j

10

 seed seed seed seed seed

j

1

500

2

j

1500

n

seed + v

1

100000

seed + v

2

seed + đ

seed + m

1000

100

call PGEN (n, v

1

, v

2

, p, s

1

, s

2

, đ, m, u

1

, u

2

, seed, r)

endfor

endfor

endfor

Parameter r in procedure PGEN determines how many times generation of test problems should repeat. In our case r was set to 1 because we want to compare both solutions of each single problem.

The data of the first and the last test problem of 27 generated with procedure PGEN called from PROGEN is in the table 2.

TEST 1

ORDER LENGTHS

No Length Demand

1 261 13

2 211 2

3 169 9

4 128 14

5 115 12

UNSTANDARD STOCK LENGTHS

No Length

1 1420

2

3

4

10

1330

1156

1056

5 980

6 896

7 859

8 816

9 777

698

TEST 27

ORDER LENGTHS

No. Length Demand No. Length Demand No. Length Demand

1 898 36

2 861 45

3 801 3

4 748 24

5 733 46

6 658 16

7 641 23

8 570 23

9 548 39

10 498 16

11 492 39

12 471 21

13 414 47

14 327 40

15 303 32

UNSTANDARD STOCK LENGTHS

No. Length No. Length No. Length No. Length No. Length No. Length

2 4445

3 4441

4 4398

5 4396

6 4365

7 4347

8 4335

9 4332

10 4330

11 4280

12 4265

13 4259

14 4245

15 4232

17 4227

18 4212

19 4207

20 4171

21 4166

22 4153

23 4144

24 4066

25 4056

26 4028

27 3959

28 3917

29 3880

30 3835

31 3783

32 3721

33 3643

34 3601

35 3600

36 3578

37 3439

38 3379

39 3370

40 3314

41 3300

42 3299

43 3212

44 3204

45 3175

46 3166

47 3161

48 3141

49 3118

50 3008

51 2982

52 2963

53 2948

54 2926

55 2898

56 2867

57 2811

58 2807

59 2797

60 2785

61 2777

62 2767

63 2717

64 2468

65 2447

66 2402

67 2364

68 2348

69 2348

70 2320

71 2309

72 2278

73 2275

74 2254

75 2237

76 2231

77 2226

78 2210

79 2175

80 2115

81 2059

82 1939

83 1909

84 1882

85 1675

86 1602

87 1578

88 1552

89 1537

90 1520

Table 2: Two test problems generated with PGEN

The results of comparing both algorithms are presented in table 3. n,, v

1

, v

2

, đ, m, u

1

, u

2 and seed are in columns (1)-(8). Seed is generated in procedure PROGEN . All lengths are expressed in cm. Columns (9), (10) contain planned overall trim loss as a result of algorithm COLA and columns (11), (12) as a result of algorithm

CUT. In columns (9), (11) trim loss is expressed in cm and in columns (10), (12) in percentage. Despite of the same overall trim loss we got with COLA and CUT expressed in cm in the first case (36 cm), the values expressed in percentage are different. The reasons for that are different stock lengths used in both cases. With both programs in 19 out of 27 cases the overall trim loss was lower than the shortest generated order length. In case 24 the shortest order length was 221 cm. This means that we have certainly found an optimal

Overall trim loss n v

1 v

2 đ m u

1

u

2

seed (cm)

COLA CUT

(%) (cm) (%)

No. (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)

1 5 100 300 10 10 500 1500 510301010 36 0.4158004 36 0.3875135

2 5 100 300 20 10 500 1500 510302010 34 0.3382075 9 0.0895255

3 5 100 300 30 10 500 1500 510303010 61 0.7232630 61 0.7232630

4 5 200 600 10 20 1000 3000 520601020 161 0.9202104 161 0.9202104

5 5 200 600 20 20 1000 3000 520602020 302 0.8522166 322 0.8981869

6 5 200 600 30 20 1000 3000 520603020 353 0.8407364 244 0.5811322

7 5 300 900 10 30 1500 4500 530901030 7 0.0323593 3 0.0136668

8 5 300 900 20 30 1500 4500 530902030 277 0.5168200 277 0.5168200

9 5 300 900 30 30 1500 4500 530903030 739 1.0310860 408 0.6125298

10 10 100 300 10 20 500 1500 1010301020 9 0.0491051 10 0.0543242

11 10 100 300 20 20 500 1500 1010302020 26 0.1305876 18 0.0904068

12 10 100 300 30 20 500 1500 1010303020 22 0.1051123 20 0.0955566

13 10 200 600 10 40 1000 3000 1020601040 8 0.0245126 14 0.0417374

14 10 200 600 20 40 1000 3000 1020602040 771 1.1070910 847 1.2452770

15 10 200 600 30 40 1000 3000 1020603040 120 0.1547389 128 0.1650548

16 10 300 900 10 60 1500 4500 1030901060 6 0.0115826 7 0.0128414

17 10 300 900 20 60 1500 4500 1030902060 1292 0.9982693 422 0.3266734

18 10 300 900 30 60 1500 4500 1030903060 1881 1.1487160 1516 0.9231125

19 15 100 300 10 30 500 1500 1510301030 43 0.1671136 75 0.2955083

20 15 100 300 20 30 500 1500 1510302030 10 0.0337860 12 0.0405432

21 15 100 300 30 30 500 1500 1510303030 9 0.0284126 8 0.0252557

22 15 200 600 10 60 1000 3000 1520601060 35 0.0545239 12 0.0190669

23 15 200 600 20 60 1000 3000 1520602060 320 0.2910784 271 0.243766

24 15 200 600 30 60 1000 3000 1520603060 110 0.0888565 203 0.1639808

25 15 300 900 10 90 1500 4500 1530901090 2 0.0027623 14 0.0194820

26 15 300 900 20 90 1500 4500 1530902090 847 0.4018217 433 0.2066826

27 15 300 900 30 90 1500 4500 1530903090 219 0.0876708 176 0.0705244

Sum 7700 5707

Table 3: Comparison of COLA and CUT solution. But other characteristics of both programs are different. The worst case of COLA was 1881 cm

(1.1487160 %) and of the CUT 1516 cm (0.9231125 %). The average overall trim loss of COLA was 285.19 cm and of CUT 211.37 cm. The sum of all 27 overall trim losses was in case of CUT by 1993 cm lower than in

case of COLA. According to those results of generated test problems program CUT can be evaluated as being better than COLA. But from the viewpoint of speed the program COLA is approximately 30 % faster. Program

CUT spends 15 s on a personal computer (Pentium II, 233 MHz) for solution of all 27 problems and COLA only 10 s.

5. Conclusion

The article examines the evaluation method for one-dimensional stock cutting algorithms. There are many algorithms and methods for one-dimensional stock cutting with different factors that are taken into account.

But the most important common factor is the trim loss. We decided to develop the method for comparisons of different algorithms for one-dimensional stock cutting regarding trim loss. In different types of problems the trim loss is differently defined. According to assortment of large objects we identified three types of problems.

Beside S1D-CSP and H1D-CSP, which are known from the literature, also G1D-CSP is introduced. The evaluation method is proposed which enables the comparison of solutions of all three possible types of problems. A problem generator for the G1D-CSP is developed. An example of comparison of two itemoriented algorithms COLA and CUT is presented.

References

[1] Bishoff E. E, Waesher G., “Cutting and Packing”, European Journal of Operational Research 84

(1995) 503-505.

[2] Dyckhoff H., “A typology of cutting and packing problems”, European Journal of Operational

Research 44 (1990) 145-159.

[3] Ferreira J. S., Neves M. A. and Fonseca P., “A two-phase roll cutting problem”, European Journal of

Operational Research 44 (1990) 185-196.

[4] Gau T., Waesher G., “CUTGEN1: A problem generator for the Standard One-dimensional Cutting Stock

Problem”, European Journal of Operational Research 84 (1995) 572-579.

[5] Gilmore P. C. and Gomory R. E., “A linear programming approach to the cutting stock problem”,

Operations Research 9 (1961) 849-859.

[6] Gilmore P. C. and Gomory R. E., “A linear programming approach to the cutting stock problem, Part

II”, Operations Research 11 (1963) 863-888.

[7] Goulimis C., “ Optimal solutions for the cutting stock problem”, European Journal of Operational

Research 44 (1990) 197-208.

[8] Gradišar M., Jesenko J., Resinovič G., “Optimization of roll cutting in clothing industry”, Computers

& Operations Research 24 (1997) 945-953 .

[9] Gradišar M., Resinovič G., Jesenko J., Kljajić M.: “An algorithm for optimization of one-

dimensional cutting”, European Journal of Operational Research 114 (1999) 557-568.

[10] Gradišar M., Kljajić M., Resinovič G.: “A hybrid approach for optimization of one dimensional

cutting”, European Journal of Operational Research 119 (1999) 165-174.

[11] Haessler R. W., Vonderembse M. A., “A procedure for solving the master slab cutting stock problem

in the steel industry”, AIIE Transactions 11 (1979) 160-165.

[12] Stadtler H., “A one-dimensional cutting stock problem in the aluminium industry and its solution”,

European Journal of Operational Research 44 (1990) 209-223.

[13] Sweeney P. E. and Paternoster E. R., “Cutting and packing problems: A Categorised, Application-

Orientated Research Bibliography”, Journal of the Operational Research Society 43 (1992) 691-706.

[14] Vance P.H., “Branch-and-Price Algorithms for the One-Dimensional Cutting Stock Problem”,

Computational Optimization and Applications 9 (1998) 211-228.

[15] Vanderbeck F., “Computational Study of a Column Generation Algorithm for Bin Packing and

Cutting Stock Problems”, Research Papers in Management Studies, No 14, University of

Cambridge, 1996.

[16] Waesher G., Gau T., “Generating Almost Optimal Solutions for the Integer One-dimensional Cutting

Stock Problem”, Working Paper No. 94/06, Institut fur Wirtschaftswissenshaften, Technische

Universität Braunschweig, 1994.

Download