Processing math: 100%
Research article

A method for demand-accurate one-dimensional cutting problems with pattern reduction


  • Received: 27 October 2022 Revised: 19 January 2023 Accepted: 29 January 2023 Published: 15 February 2023
  • The main objective in the one-dimensional cutting stock problem (1D-CSP) is to minimize material costs. In practice, it is useful to focus on auxiliary objectives, one of which is to reduce the number of different cutting patterns. This paper discusses the classical integer IDCSP, where only one type of stock object is included. Meanwhile, the demands of various items must be precisely satisfied in the constraints. In other words, no overproduction or underproduction is allowed. Therefore, to solve this issue, a variable-to-constant method based on a new mathematical model is proposed. In addition, we integrate the approach with two other representative methods to demonstrate its effectiveness. Both benchmark instances and real instances are used in the experiments, and the results show that the methodology is effective in reducing patterns. In particular, in terms of the solutions to the real-life instances, the proposed approach presents a 31.93 to 37.6% pattern reduction compared to other similar methods (including commercial software).

    Citation: Haihua Xiao, Qiaokang Liang, Dan Zhang, Suhua Xiao, Gangzhuo Nie. A method for demand-accurate one-dimensional cutting problems with pattern reduction[J]. Mathematical Biosciences and Engineering, 2023, 20(4): 7453-7486. doi: 10.3934/mbe.2023323

    Related Papers:

    [1] Wei Lin, Fengshuang Yang . Computational analysis of cutting parameters based on gradient Voronoi model of cancellous bone. Mathematical Biosciences and Engineering, 2022, 19(11): 11657-11674. doi: 10.3934/mbe.2022542
    [2] Ming Zhu, Kai Wu, Yuanzhen Zhou, Zeyu Wang, Junfeng Qiao, Yong Wang, Xing Fan, Yonghong Nong, Wenhua Zi . Prediction of cooling moisture content after cut tobacco drying process based on a particle swarm optimization-extreme learning machine algorithm. Mathematical Biosciences and Engineering, 2021, 18(3): 2496-2507. doi: 10.3934/mbe.2021127
    [3] Xiaoyue Xie, Jian Shi . A distributed quantile estimation algorithm of heavy-tailed distribution with massive datasets. Mathematical Biosciences and Engineering, 2021, 18(1): 214-230. doi: 10.3934/mbe.2021011
    [4] Xiangfen Song, Yinong Wang, Qianjin Feng, Qing Wang . Improved graph cut model with features of superpixels and neighborhood patches for myocardium segmentation from ultrasound image. Mathematical Biosciences and Engineering, 2019, 16(3): 1115-1137. doi: 10.3934/mbe.2019053
    [5] P. Vafeas, A. Skarlatos, P. K. Papadopoulos, P. Svarnas, N. Sarmas . A boundary value problem of heat transfer within DBD-based plasma jet setups. Mathematical Biosciences and Engineering, 2023, 20(10): 18345-18367. doi: 10.3934/mbe.2023815
    [6] Kwabena Owusu-Agyemang, Zhen Qin, Appiah Benjamin, Hu Xiong, Zhiguang Qin . Guaranteed distributed machine learning: Privacy-preserving empirical risk minimization. Mathematical Biosciences and Engineering, 2021, 18(4): 4772-4796. doi: 10.3934/mbe.2021243
    [7] Xueyuan Li, MiaoYu, Xiaoling Zhou, Yi Li, Hong Chen, Liping Wang, Jianghui Dong . A method of ultrasound diagnosis for unilateral peripheral entrapment neuropathy based on multilevel side-to-side image contrast. Mathematical Biosciences and Engineering, 2019, 16(4): 2250-2265. doi: 10.3934/mbe.2019111
    [8] Liwei Yang, Lixia Fu, Ping Li, Jianlin Mao, Ning Guo, Linghao Du . LF-ACO: an effective formation path planning for multi-mobile robot. Mathematical Biosciences and Engineering, 2022, 19(1): 225-252. doi: 10.3934/mbe.2022012
    [9] Yuriy Stoyan, Georgiy Yaskov, Tatiana Romanova, Igor Litvinchev, Sergey Yakovlev, José Manuel Velarde Cantú . Optimized packing multidimensional hyperspheres: a unified approach. Mathematical Biosciences and Engineering, 2020, 17(6): 6601-6630. doi: 10.3934/mbe.2020344
    [10] Chichia Chiu, Jui-Ling Yu . An optimal adaptive time-stepping scheme for solving reaction-diffusion-chemotaxis systems. Mathematical Biosciences and Engineering, 2007, 4(2): 187-203. doi: 10.3934/mbe.2007.4.187
  • The main objective in the one-dimensional cutting stock problem (1D-CSP) is to minimize material costs. In practice, it is useful to focus on auxiliary objectives, one of which is to reduce the number of different cutting patterns. This paper discusses the classical integer IDCSP, where only one type of stock object is included. Meanwhile, the demands of various items must be precisely satisfied in the constraints. In other words, no overproduction or underproduction is allowed. Therefore, to solve this issue, a variable-to-constant method based on a new mathematical model is proposed. In addition, we integrate the approach with two other representative methods to demonstrate its effectiveness. Both benchmark instances and real instances are used in the experiments, and the results show that the methodology is effective in reducing patterns. In particular, in terms of the solutions to the real-life instances, the proposed approach presents a 31.93 to 37.6% pattern reduction compared to other similar methods (including commercial software).



    The classical one-dimensional cutting stock problem (1D-CSP) is a typical combinatorial optimization problem. In the 1D-CSP, there are m items with lengths (l1..., lm) and demands (d1, d2..., dm) that are cut from the stock objects of length L to minimize the material cost. The first notable research result in solving the 1D-CSP was based on the simplex column generation method [1]. In most of the existing studies, it is challenging to optimize the material cost and setup cost simultaneously, and fewer patterns lead to higher material costs [2,3,4,5].

    In practice, the position of the cutting tool in the cutter must be adjusted every time before another cutting pattern is switched. Therefore, the time cost of adjusting the position of the cutting tool in the machine equipment cannot be ignored [6,7,8].

    The algorithm proposed to solve the 1D-CSP model is called the variable-to-constant (VTC) algorithm. The demands of the items in the model must be precisely satisfied. It solves the 1D-CSP in two stages. In the first stage, it uses a column generation method to obtain the lower bound (LB), which is the minimum value of the number of stock objects used (material cost). In the second stage, VTC is used to generate the cutting patterns and to obtain a new objective function value. If the objective function value is less than or equal to the LB, the calculation is stopped. Otherwise, the calculation is continued by iterating m times or 2m times (each new cutting pattern generated is considered one iteration) to obtain a feasible initial solution. In parallel, the new method is fused with two authoritative methods in the literature to verify the validity of the methodology proposed in this paper.

    For cutting problems, López de Lacalle et al. [9] proposed a technical model to estimate the value of cutting forces, providing manufacturers with the opportunity to reduce production and delivery times. Approaches for determining the integer solution to the 1D-CSP (the demand is met exactly) fall into two main categories: heuristic approaches construct a good cutting pattern and use it as much as possible (constructive heuristics) and heuristic approaches round the relaxation solution (residual heuristic). Hinxman et al. [10] provided a detailed description of constructive heuristics, such as the first-fit decreasing (FFD) algorithm. The core of FFD is to first place the largest item into the pattern with the highest possible number of cutting patterns and no more than the demand. If the largest item no longer fits that cutting pattern, the second largest item is selected, and so on. The greedy heuristic follows the same philosophy as the FFD heuristic, but without prioritizing the largest items to construct the new cutting pattern. Later, Ongkunaruk et al. [11] modified the FFD heuristic to solve the bin packing problem (BPP). In 2009, the FFD and greedy heuristics were further modified to allow the redesign of cutting patterns with undesirable residues [12]. Specifically, such cutting patterns are not large enough to continue to be used or not small enough to be accepted as waste. In the same year, Poldi and Arenales [13] proposed three versions of greed-based residual heuristic rounding techniques, namely, GRH1, GRH2 and GRH3. Their core ideology is also based on using the relaxation solution to obtain the approximate integer solutions. In contrast, Cui et al. [14] solved the one-dimensional cutting problem for multiple stock objects in two stages. The first stage uses a pattern-set generation algorithm to generate patterns and combine them with column generation techniques to solve the residual problems. In the second stage, to further reduce the material cost indicator, the ILP model is solved using the CPLEX solver as a way to obtain a solution for stage two. The best solution for both phases is selected. In their second-stage solution method, overproduction occurs.

    Recently, new research has been conducted to advance the development in this field. For example, a modified greedy heuristic (MGH) was proposed to optimize material cost [15]. It shows more promising integer solutions than other methods but does not obtain the best cutting pattern (losing to the GRH algorithm in terms of pattern reduction). One thing in common among these methods is that they are all based on the slack solution of the column generation method to perform rounding to obtain the integer solution.

    Here, we also give an overview of the literature on the cutting stock problem with setup cost (CSP-S). The sequential heuristic procedure of Haessler [16] was one of the first methods to deal with the CSP-S. It is essential to address the CSP-S in order to find the optimal trade-off between the numbers of objects and patterns [17,18,19,20]. Other SHP-based approaches can be found; for example, Mobasher and Ekici [21] proposed two local search algorithms and a column generation-based heuristic algorithm for CSP-S in order to minimize the total production cost, including material and setup costs. Cui et al. [4] presented a heuristic algorithm to deal with the CSP-S in two stages. In the first stage, they first used the heuristic to generate cutting patterns. In the second stage, based on the optimizer solver, a bi-objective optimization model of material and setup costs was developed to further reduce the setup cost. Martin et al. [22] modified Haessler's sequential heuristic procedure, but only individual instances were tested better than the other methods, and most instances were tested to perform poorly. Lately, Martin et al. [5] proposed a pattern-based pseudo-polynomial ILP formulation to solve the CSP-S, which depends on an upper bound on the maximum frequency of each pattern in the cutting scheme. We must emphasize one point: The current research works for solving the CSP-S allow for overproduction (Axd) in their models. In contrast, in the mathematical model developed in this study, the demand must be exactly satisfied (Ax = d).

    A problem associated with pattern reduction is the pattern minimization problem (PMP). This is a problem of minimizing the number of patterns with a finite number of objects, and it is a nonlinear integer programming problem. It is well known that the PMP was proven to be a hard NP problem by McDiarmid [23]. Some exact methods for solving the PMP exist in the literature, and the solutions of these algorithms have met the demand exactly without overproduction [24,25,26,27,28]. Vanderbeck [24] reformulated the PMP model by using the Dantzig-Wolfe decomposition principle and adapted it to integer programming. The authors did this by dualizing the relevant nonlinear constraints in a Lagrangian fashion, and the problem was decomposed into K identical subproblems. They solved these subproblems to generate new columns. The experiments indicated that this exact algorithm reduced the number of setups by an average of 63% compared to the initial solution to the standard cutting problem. Alves and de Carvalho [26] further improved the model proposed by Vanderbeck [24] by adding a constraint on the total waste to the subproblem. This allows the number of column-generated subproblems (knapsack problems) to be solved to be significantly reduced. They treated the LP-optimal solution as an arc-flow formulation with an integer variable and used the branch-and-price-and-cut algorithm to solve the master problem. However, because of the branching constraint and the fact that the demand is exactly satisfied, the solution is forced to exceed the maximum waste of the optimal 1D-CSP solution. In Alves et al. [27], the authors developed a CP model to derive two tighter LBs for the PMP. They also used the CP model to derive some efficient inequalities to deal with the hard constraints. From the experimental results of the 16 tested real-life cases, only three had worse LBs than those of Vanderbeck [24]. Three others had tighter LBs, while the remaining 10 cases had the same LBs. The above-mentioned developers of the three exact algorithms for solving the PMP did not report material usage cost in the experiments they conducted. Afterward, Mobasher and Ekici [8] briefly stated that the main drawback of the PMP model (Vanderbeck's model) is the weak LP relaxation bound. In addition, this compact model has to meet the demand exactly without allowing overproduction. This may increase the amount of material used and the number of different patterns used.

    In conclusion, several of the above-mentioned exact methods for solving PMP models that have appeared thus far are computationally time-consuming (2 h per instance). In particular, their solution accuracy is very low for larger demands or problems with dimensionality greater than 20. However, the current literature shows that several residual heuristics can solve the 1D-CSP model with a single objective of material cost very well and with a short computational time. In their models, the demands are precisely satisfied. The shortcoming of the current solutions for such a 1D-CSP is that the cutting pattern cannot be reduced [15].

    In this paper, the solution algorithm (VTC) for the 1D-CSP is developed by considering the requirements of item production in practical applications (the demands for the items must be met precisely). The authors provide important contributions in this domain. They rely on a mathematical model that is built to obtain the solution. In our approach, the feasible solution for the 1D-CSP is obtained by updating the established mathematical model once for each generated cutting pattern. Our approach attempts to form a linear relationship between the patterns and the variables by fixing one of the decision variables as a constant. Meeting the demand precisely is not conducive to the reduction of cutting patterns and minimization of material cost [8]. Two sets of well-known benchmark examples from the literature and a set of real instances are used to evaluate the advantages or disadvantages of the algorithms. The results indicate that the implementation of the new approach using a generic ILP solver (Gurobi) is able to obtain the optimal solution for the 1D-CSP in some instances and to acquire fewer cutting patterns.

    In this section, we formally describe the 1D-CSP define some necessary notations and solve its relaxation solution by using the column generation approach.

    A 1D-CSP in which the demands are precisely met consists of the following parts: given an unlimited number of identical stock objects of length L (e.g., lengths of wood, aluminum alloy, rolls of paper), the mission is to cut di pieces of items of length li for iI = {1..., m} to meet the quantities produced for the various items, keeping the number of stock objects used to a minimum. To simplify the model, we use p to define a pattern and its index. We also use P to denote a set of patterns and the indices of the patterns. In the 1D-CSP, a pattern p is represented by a column vector ap=(a1p,,aip,,amp)t, where aip denotes the number of items i in the cutting pattern p. The pattern p is required to fulfill

    mi=1aipliL, (1)
    0aipdi,andintegeri=(1,,m). (2)

    We define an integer decision variable by xp with each pP, referring to the number of cutting patterns p used. di represents the quantity corresponding to item i. Therefore, the main objective of the classic 1D-CSP is generally to minimize material cost (the number of objects used), and its mathematical model can be formulated as

    MinimizepPxp (3)
    s.t. S.t. pPaipxp=di(i=1,m) (4)
    xp0 and integer (pP). (5)

    Let us briefly describe the relaxed solution model for Eqs (3)–(5), where we simply remove the integer constraints. Furthermore, an initial feasible solution ¯pP can be easily achieved by initialization (e.g., through the use of heuristics to obtain this solution). Equations (3)–(5) then become

    MinimizepˉPxp (6)
    s.t.pˉPaipxp=di(i=1,,m) (7)
    xp0,andˉpP. (8)

    The optimization problem described by Eqs (6)–(8) is called the restricted master problem (RMP). The RMP can provide the basis matrix B of the current iteration to update B1 in the objective function of the subproblem. The computation stops when the objective function value in Eq (9) is greater than zero. Otherwise, a new column p¯p can be generated iteratively to reduce the objective function value in Eq (6), and it is added to the RMP. The resulting basis matrix B is updated. The subproblem thus solved is as follows:

    Minimize1cBB1apcB=(1,,1) (9)
    s.t.mi=1aipliL (10)
    0aipdi,anintegeri=(1,,m). (11)

    In (9), cB is a row vector with m columns and all its elements are one. B is a matrix with m rows and m columns. ap=(a1p,,a1p,amp)t denotes a variable cutting pattern, expressed as a column vector. In (10), aip indicates the number of items i in a cutting pattern p, and li refers to the length of item i. L is expressed as the length of the stock object. Constraint (11) prevents the number of items i in the cutting pattern p from exceeding the total number demanded.

    In this section, we first build a new mathematical model and then solve it by using a new method called VTC. The new model for the 1D-CSP instances is built by fixing one of the decision variables as a constant. This enables a linear relationship between the decision variables and the columns (cutting patterns), which facilitates cutting pattern reduction. The main features of VTC are as follows.

    1) In terms of pattern reduction, the solution quality of the method for some instances is much better than the solution quality of the standard 1D-CSP model. The demands di(i = 1..., m) in (4) are exactly satisfied.

    2) In terms of constraints, the number of constraints is forced to increase after fixing one of the decision variables. Obtaining the solution is more time-consuming, which is not true for low-demand problems.

    3) After fixing a decision variable as a constant, all decision variables x=(x1,,xm) and the new column ap=(a1p,,aip,,amp)t form a linear relationship. The objective function is transformed into a linear objective function related to the variable vector ap.

    To conveniently describe the solution process of the method in this paper, we first represent (1)–(5) in matrix form.

    Minimizef(x)=cx (12)
    s.t.Ax=d (13)
    lapL (14)
    0aipdi,i=(1,,m),aninteger (15)
    x0,aninteger. (16)

    In (12), x=(x1,xn)t indicates the column vector of decision variables, and c = (1..., 1) is a row vector containing n columns, where all elements are equal to one. The column vector ap is a vector of variables, which we denote as ap=(a1p,,aip,,amp)t. Constraint (16) enables all decision variables to be nonnegative integers. Constraint (13) enables the quantity of all items to be precisely as required (i.e., demands are met exactly). A represents an m × n matrix in which each column is a cutting pattern. Its right end is a demand vector d=(d1,,dm)t, expressing the number of different items produced. l = (l1..., lm) represents a row vector, where li denotes the size of the ith item. L designates the length of the stock object. Constraints (14) and (15) indicate that the elements in the cutting pattern ap have to satisfy a1pl1++amplmL, and 0aipdi,i=(1,,m), an integer.

    To solve the optimization problem described in Section 3.1, we reconstruct the model of the 1D-CSP. We consider only m decision variables, i.e., their number is equal to the number of item types. Each iteration, which generates a new column, also represents the generation of a new cutting pattern p. Let us introduce a vector of integer column variables ap which, for each pP, gives the number of items cut for each type of item in the cutting pattern p. Furthermore, we assume that the 1D-CSP for the kth iteration with m decision variables and m items is established by generating the kth column. Consequently, we express the mathematical model at each iteration in terms of the matrix and the vector.

    The following notations are used to describe it:

    f(x) objective value (total number of stock objects used)

    xG decision variable, which is currently fixed as a constant

    dk column vector obtained by performing the elementary row transformation of a matrix on the demand vector dk - 1

    ¯dk column vector obtained by forcing the kth element of dk to be 0

    sk1 matrix obtained by performing the elementary row transformation of a matrix on matrix sk2

    ¯sk1 vector obtained by forcing all elements of the kth row of the matrix sk - 1 to 0

    ss row vector constructed from the kth row of sk

    l row vector representing the dimensions of the m items

    ap cutting pattern p currently being solved

    t row vector with m columns and element values equal to one

    m number of item types

    K objective optimal LB, which can be obtained from the column generation algorithm

    Ak cutting scheme corresponding to the generation of the kth column

    The 1D-CSP model described is remodeled as

    Minimizef(x)=x1+x2++xm=xG+t¯dkt(¯sk - 1ap)×xG (17)
    s.t.¯dk¯sk - 1ap×xG0 (18)
    lapL (19)
    ssap=1 (20)
    ap=(a1p,,aip,amp)t,0aipdi,aninteger (21)
    k(0,1,,m,m+1,n),f(1,,m)
    s0=(11),d0=(d1dm),A0=(11) (22)

    In the above model, the number of iterations k = 1, 2, 3..., n, where each iteration produces a new column and an objective function value. ¯dk and ¯sk - 1 are distinct from the previous iterations at each iteration. That is, the objective function and constraints need to be updated for each iteration. Equation (17) indicates that the objective is to minimize the material cost (the number of objects used), where xG is equal to the value of the decision variable corresponding to column k at the previous iteration. Constraint (18) means that all decision variables are constrained to be greater than or equal to zero, except for the decision variable corresponding to column k. Constraint (19) limits the size of the space where the item is placed in the pattern ap. Equation (20) is an equation constraint that arises after fixing a decision variable corresponding to the kth column as a constant xG. Equation (22) gives the initial matrices s0, A0 and d0 created at the beginning iteration.

    In an effort to determine an efficient solution to the above optimization problem, we present below the computational procedure that implements the new mathematical model constructed. The solution procedure is shown below.

    Step 1: Input the initialization matrix for s0,d0,A0 and set k = 1. Additionally, sort the items, i.e., l1>l2>,,>lm or l1<l2<,,<lm.

    Step 2: Update the objective function and constraints by ss,¯sk - 1 and ¯dk. ss can be obtained by forcing the elements in row one to zero in matrix sk - 1.

    Step 3: Let the decision variable xk be a constant xG.

    Step 4: Use the Gurobi solver to solve the kth mathematical model to obtain ap.

    Step 5: Go to Step 6 if f(x)>Kandk<βm(β=1orβ=2); otherwise, stop the calculation. Record all cutting patterns produced and their decision variables.

    Step 6: Compute ¯sk - 1, ap and ssap, and apply their results as the kth column in A.

    Step 7: Perform elementary row transformation on matrix A while performing the same transformation on matrix sk - 1 and matrix dk as that performed on matrix A.

    Step 8: Let k=k+1, and return to Step 2.

    Step 5 indicates that the method does not necessarily solve for the optimal solution. Each generation determines a cutting pattern ap (Steps 2–8). For each cutting pattern solved, the objective function and constraints need to be updated once (Step 2). Steps 6 and 7 depict a matrix elementary row transformation after each updated column in A. In Step 1, different sequencing may result in different VTC calculations. The experiments conducted later in this paper rank the items from largest to smallest before solving.

    In this section, we present a simple example to illustrate the solution process of the VTC method proposed in this paper.

    Example. Consider an instance of the 1D-CSP with m = 4 items and demand vector d0 = (d1, d2, d3, d4) = (6, 10, 8, 5)T. Assume that L = 300, l = (l1, l2, l3, l4) = (150, 50, 40, 10) and row vector t = (1, 1, 1, 1). We also assume that the column vector ap=(a1pa2pa3pa4p). Before the iterative calculation, the following matrix is first initialized.

    We let

    A0=(1000010000100001). (23)

    Meanwhile, we set

    s0=(1000010000100001). (24)

    Using (12)–(16), we obtain the following objective problem:

    Minimizef0(x)=x1+x2+x3+x4. (25)

    This is subject to

    A0x=d0=(1000010000100001)(x1x2x3x4)=(61085). (26)

    As a result,

    x1=6,x2=10,x3=8,x4=5 (27)

    and

    f0(x)=6+10+8+5=29. (28)

    Concurrently, the LB K = 5.9 = 6 is obtained by the column generation method, which is the minimum material cost. This can be used as a condition for whether the iterative calculation is stopped. Since f0(x)>K, the calculation continues, and the next step involves generating new columns.

    Iteration 1 (Column 1 is generated):

    Replacing column 1 of A0 in (26) with the unknown column vector ap and using (12)–(14), we obtain the following objective problem:

    Minimizef1(x)=x1+x2+x3+x4. (29)

    This is subject to

    A1x=d1=(a1p000a2p100a3p010a4p001)(x1x2x3x4)=(61085), (30)

    and

    a1pl1+a2pl2+a3pl3+a4pl4L, (31)
    0a1p6,0a2p10,0a3p8,0a4p5,aninteger, (32)
    x10,x20,x30,x40. (33)

    To simplify the tedious calculation of the matrix, we can express the first column in matrix A1 as

    (a1pa2pa3pa4p)=(1000010000100001)(a1pa2pa3pa4p)=s0ap. (34)

    Fixing the decision variable x1 to 6, we obtain

    x2=106a2p, (35)
    x3=86a3p, (36)
    x4=56a4p, (37)
    a1p=1. (38)

    Let (0000010000100001)=¯s0 and (01085)=¯d1; then, by observing the relationship between Eqs (30) and (34), (35)–(37) can be transformed into

    (0x2x3x4)=(01085)(0000010000100001)×ap×x1=¯d1¯s0ap×6. (39)

    Now, substituting Eqs (35)–(37) into (29), the objective function can be written as follows:

    Minimizef1(x)=x1+x2+x3+x4=296(a2p+a3p+a4p)=296t(¯s0ap). (40)

    The constraints are as follows:

    x2=106a2p0, (41)
    x3=86a3p0, (42)
    x4=56a4p0, (43)
    a1pl1+a2pl2+a3pl3+a4pl4L, (44)
    a1p=1,0a2p10,0a3p8,0a3p5,aninteger. (45)

    Constraints (41) to (44) are converted into matrix and vector forms:

    (0x2x3x4)=(01085)(0000010000100001)×ap×x1=¯d1¯s0ap×6 (46)
    lap=(150504010)apL (47)

    The Gurobi solver is used to solve the above optimization problem. Therefore, we obtain

    a1p=1,a2p=1,a3p=1,a4p=0;x1=6,x2=4,x3=2,x4=5,f1(x)=17.

    Accordingly, A1x is

    A1x=(1000110010100001)(x1x2x3x4)=(61085). (48)

    Iteration 2 (Column 2 is generated):

    Similarly, replacing column 2 of A1 in Eq (48) with the unknown column vector ap and using Eqs (12)–(14), we obtain the following objective problem:

    Minimizef2(x)=x1+x2+x3+x4. (49)

    This is subject to

    A2x=d2=(1a1p001a2p001a3p100a4p01)(x1x2x3x4)=(61085), (50)
    a1pl1+a2pl2+a3pl3+a4pl4L, (51)
    0a1p6,0a2p10,0a3p8,0a3p5,aninteger, (52)
    x10,x20,x30,x40. (53)

    Next, we formulate Eq (50) as (54) and simultaneously perform the same operation on matrix s1, with the following result. Thus,

    A3x=(1a1p000a2pa1p000a3pa1p100a4p01)(x1x2x3x4)=(6425), (54)

    and then, s0 in Eq (24) becomes s1 in (55):

    s1=(1000110010100001). (55)

    At this point, fixing the decision variable x2 to 4, we obtain

    x1=64a1p, (56)
    x3=24(a3pa1p), (57)
    x4=54a4p, (58)
    (a2pa1p)×4=4. (59)

    Because s1=(1000110010100001) in (55), we can let (1000000010100001)=¯s1. Because A3x=(6425) in (54), we can let (6025)=¯d2. Then, Eqs (56)–(58) can be expressed as

    (x10x3x4)=(6025)(1000000010100001)×ap×x2=¯d2¯s1ap×4. (60)

    Through Eqs (56)–(58) and (49), the objective function is easily formulated as

    Minimizef2(x)=x1+x2+x3+x4=174(a3p+a4p)=174t(¯s1ap). (61)

    The constraints are as follows:

    x1=64a1p0, (62)
    x3=24(a3pa1p)0, (63)
    x4=54a4p0, (64)
    a1pl1+a2pl2+a3pl3+a4pl4L, (65)
    (a2pa1p)×4=4, (66)
    0a1p6,0a2p10,0a3p8,0a4p5,aninteger. (67)

    Constraints (62)–(65) are converted into matrix and vector forms:

    (x10x3x4)=(6025)(1000000010100001)×ap×x2=¯d2¯s1ap×40, (68)
    lap=(150504010)apL. (69)

    Using row 2 of matrix s2 as a row vector ss, such that ss=(1,1,0,0), (66) is as follows:

    (a2pa1p)=(1100)ap=ssap=1. (70)

    The Gurobi solver is used to solve the above optimization problem. Therefore, we obtain

    a1p=1,a2p=2,a3p=1,a4p=1;x1=2,x2=4,x3=2,x4=1;f2(x)=9.

    In this way, A2x can be written as

    A2x=(1100120011100101)(x1x2x3x4)=(61085). (71)

    Iteration 3 (Column 3 is generated):

    Since f2(x) > K, the calculation continues to produce the next column. The objective optimization problem is formulated as

    Minimizef3(x)=x1+x2+x3+x4. (72)

    This is subject to

    A3x=d=(11a1p012a2p011a3p001a4p1)(x1x2x3x4)=(61085), (73)
    a1pl1+a2pl2+a3pl3+a4pl4L, (74)
    0a1p6,0a2p10,0a3p8,0a3p5,aninteger, (75)
    x10,x20,x30,x40. (76)

    The next step of expressing (73) as (77) while performing the same elimination operation as that performed for matrix s2 results in the following:

    A4x=(102a1pa2p001a2pa1p000a3pa1p000a4pa2p+a1p1)(x1x2x3x4)=(2421). (77)

    Then, s1 in (55) becomes s2 in (78):

    s2=(2100110010101101). (78)

    As such, fixing the decision variable x3 to 2 gives

    x1=22(2a1pa2p), (79)
    x2=42(a2pa1p), (80)
    x4=12(a4pa2p+a1p), (81)
    (a3pa1p)×2=2. (82)

    Then, let (2100110000001101)=¯s2, (2401)=¯d3, so that Eqs (79)–(81) are formulated as

    (x1x20x4)=(2401)(2100110000001101)×ap×x3=¯d3¯s2ap×2. (83)

    For this iteration, the objective function can be represented as follows:

    Minimizef3(x)=x1+x2+x3+x4=92(2a1p+a2p+a4p)=92t(¯s2ap). (84)

    The constraints are as follows:

    x1=22(2a1pa2p)0, (85)
    x2=42(a2pa1p)0, (86)
    x4=12(a4pa2p+a1p)0, (87)
    a1pl1+a2pl2+a3pl3+a4pl4L, (88)
    (a3pa1p)×2=2, (89)
    0a1p6,0a2p10,0a3p8,0a4p5,aninteger. (90)

    Constraints (85) to (88) are represented in matrix and vector forms:

    (x1x20x4)=(2401)(2100110000001101)×ap×x3=¯d3¯s2ap×20, (91)
    lap=(150504010)apL. (92)

    Using row 3 of matrix s3 as a row vector ss, such that ss=(1,0,1,0), (89) is as follows:

    (a3pa1p)=(1010)ap=ssap=1. (93)

    The Gurobi solver is used to solve the above optimization problem. Therefore, we obtain

    a1p=0,a2p=0,a2p=1,a4p=0;x1=2,x2=4,x2=2,x4=11,f2(x)=9.

    Note that f2(x) has the same result as f3(x) and that A3x is the same as A2x; Thus, A3x is as follows:

    A3x=(1100120011100101)(x1x2x3x4)=(61085). (94)

    Iteration 4 (Column 4 is generated):

    Because f3(x) > K, the calculation continues. The objective optimization problem is described as follows:

    Minimizef4(x)=x1+x2+x3+x4. (95)

    This is subject to

    A4x=d4=(110a1p120a2p111a3p010a4p)(x1x2x3x4)=(61085), (96)
    a1pl1+a2pl2+a3pl3+a4pl4L, (97)
    0a1p6,0a2p10,0a3p8,0a3p5,aninteger, (98)
    x10,x20,x30,x40. (99)

    Consequently, by the matrix elimination operation, Eq (96) can be presented as (100), and the result is as follows:

    A5x=(1002a1pa2p010a2pa1p001a3pa1p000a4pa2p+a1p)(x1x2x3x4)=(2421). (100)

    Additionally, s2 in Eq (78) is written as s3 below:

    s3=(2100110010101101). (101)

    Observing the relationship between the matrix A5 in Eqs (100) and (101), we conclude that the following equation holds:

    (2a1pa2pa2pa1pa3pa1pa4pa2p+a1p)=(2100110010101100)(a1pa2pa3pa4p). (102)

    Therefore, after fixing the decision variable x4 to 1, the expressions for the other variables can be written as

    x1=2(2a1pa2p), (103)
    x2=4(a2pa1p), (104)
    x3=2(a3pa1p), (105)
    (a4pa2p+a1p)×1=1. (106)

    Given that (2100110010100000)=¯s3 and (2420)=¯d4, Eqs (103)–(105) are described as

    (x1x2x30)=(2420)(2100110010100000)×ap×x4=¯d4¯s3ap×1. (107)

    The objective optimization problem is as follows:

    Minimizef4(x)=x1+x2+x3+x4=9a3p=9t(¯s3ap) (108)

    The constraints are as follows:

    x1=2(2a1pa2p)0, (109)
    x2=4(a2pa1p)0, (110)
    x3=2(a3pa1p)0, (111)
    a1pl1+a2pl2+a3pl3+a4pl4L, (112)
    (a4pa2p+a1p)×1=1, (113)
    0a1p6,0a2p10,0a3p8,0a4p5,aninteger. (114)

    Consequently, Eqs (109)–(111) can be represented in matrix and vector forms:

    (x1x2x30)=(2420)(2100110010100000)×ap×1=¯d4¯s3ap×10, (115)
    lap=(150504010)apL. (116)

    Using row 4 of matrix s4 as a row vector ss, such that ss=(1,1,0,1), the constraint given by (113) can be written as

    (a4pa2p+a1p)=(1101)ap=ssap=1. (117)

    The Gurobi solver is used to solve the above optimization problem. Consequently, we obtain

    a1p=1,a2p=0,a3p=3,a4p=0;x1=0,x2=5,x3=0,x4=1;f4(x)=6.

    Because f4(x)=K=6, the calculation is cut off. If f4(x)>K, we can perform the same operation as the above operation and loop to generate a new column; the optimal outcome is as follows:

    x=(x1x2x3x4)=(0501);A=(1101120011130100);minimizef(x)=6.

    Ax exactly meets the demand. That is, Ax=d. From the results, only two columns are needed to reach the optimal integer solution. As the decision variables x1 and x3 are zero, columns 1 and 3 are therefore invalid. In view of practical applications, it is beneficial to reduce the setup cost.

    Note that our solution procedure for generating columns is relaxed with respect to the constraints on the decision variables (i.e., the decision variables are not restricted to integers). The experimental results show that integer solutions can be obtained. We elaborate further on how to deal with this problem.

    To produce an ideal or at least acceptable solution, we introduce several heuristics in some well-known literature. With respect to solving the 1D-CSP, there are two main types of methods, one being constructive heuristics, and the other being residual heuristics.

    Constructive heuristics is a way of determining an integer solution to a one-dimensional cutting problem; specifically, it is a way of constructing a good cutting pattern and using as much of it as possible [10]. No items are allowed to be overproduced. Two well-known procedures for constructing cutting patterns are FFD and greedy approaches.

    The general framework for constructive heuristics is as follows.

    Step 1: Construct a good cutting pattern for a type of stock length.

    Step 2: Among the cutting patterns generated in Step 1, select the one with minimum waste.

    Step 3: Use the cutting pattern in Step 2 as much as possible without overproduction.

    Step 4: Update the demand of the items.

    Step 5: If the demand for each of these items is met precisely, stop. Otherwise, go to Step 1.

    1) FFD heuristic

    The procedure is to prioritize the largest item into the pattern until its demand is met. If the largest item cannot be placed, the second largest item is considered for placement, and so on. The cutting pattern is completed when all demands of the items have been precisely met.

    2) Greedy heuristic

    In this paper, the greedy procedure consists of solving the knapsack problem in Step 1, which has only one type of stock length as a raw material (stock object). The backpack problem appears as follows.

    Minimizel1a1p+l2a2p+lmamp
    s.t.l1a1p+l2a2p+lmampL
    0aipri,aipinteger,i=1,,m. (118)

    In (118), li refers to the length of item type i, i=1,,m and ri is the residual demand for item type i. ri is updated in Step 4. At the beginning, ri=di, and di is the demand for item i, i=1,,m.

    Residual heuristics produce an optimal integer solution for the continuous relaxation of (6)–(8). If at least one element of the relaxation solution vector is not a nonnegative integer, then we can use the residual heuristic for rounding. Otherwise, the relaxation solution is the optimal integer solution. The residual heuristics are described before we define a residual problem.

    Definition 1 (Residual problem). Let ¯x be an approximate integer solution rounded down for x. ¯x=(x1,,xm). r=dA¯x stands for the residual demand. We can formulate the residual problem in the form of (6) to (8), where demand d varies with r.

    Note that the cutting patterns of the optimization problem consist of two parts: the first part consists of the cutting patterns (columns) corresponding to the relaxation solution, and the second part consists of the cutting patterns generated by the residual problem.

    The general framework for residual heuristics:

    Step 1: Let c=0 and rc=d be the initial data for the beginning residual problem.

    Step 2: Solve the relaxation solution to the residual equation problem by using the column generation technique. Assume that the relaxation solution x comprises all nonnegative integers, and then stop. Otherwise, go to Step 3.

    Step 3: Find an approximate integer solution ¯xc. If it is a null vector, go to Step 5.

    Step 4: Update the demand for the residual problem, rc+1=rcA¯xc. If rc=0, then stop. Otherwise, go to Step 2.

    Step 5: Solve the remaining residual problem.

    Whether this algorithm is considered good or bad is mainly related to determining how to go about rounding through Step 3 and how to solve for the remaining problem through Step 5. Nevertheless, Step 2 is even more critical when considering the auxiliary indicator (setup), as it can directly affect the number of cutting patterns. There are two main types of Step 3 rounding methods: one is downward rounding, as in the FFD and greedy approaches; the other is a downward or upward rounding strategy, such as GRH1, GRH2 and GRH3 (see Poldi et al. [13]). Note that the GRH used in the experimental tests in this paper refer to GRH1.

    For Step 5, the remaining problem can be solved and made optimal by using some other method [29,30]. An integer linear optimization problem (considering the generation of all columns) can also be built to solve it. Such approaches, however, allow for overproduction, whereas the optimization problem studied in this paper does not allow for overproduction.

    In this section, we fuse the VTC method with the FFD and greedy methods. Thus, two improved algorithms (i.e., Residual-VTC-FFD and Residual-VTC-Greedy, respectively) are obtained. The effectiveness of the VTC method is verified. More specifically, VTC can be used as described in Section 3.2.2 as a methodology for solving Step 2 and for Step 5. The definition of the residual problem, including its associated parameters, is assumed to be identical to that given in Section 3.2.2.

    General framework of our approach:

    Step 1: Let c=0 and rc=d be the initial data for the original residual problem.

    Step 2: Solve the relaxation solution to the residual equation problem by using the VTC technique in Section 3.1. Assume that the obtained objective function value f(x)K (K is defined as an LB of the current residual problem). If f(x) > K, the relaxation solution obtained by the column generation technique replaces the relaxation solution found via the VTC technique.

    Step 3: Assume that the relaxation solution x is all nonnegative integers, and then stop. Otherwise, go to Step 4.

    Step 4: Find an approximate integer solution ¯xc. If it is a null vector, go to Step 6.

    Step 5: Update the demand for the residual problem, rc+1=rcA¯xc. If rc=0, then stop. Otherwise, go to Step 2.

    Step 6: Use the VTC and greedy methods to solve the remaining residual problems separately and choose the best solution as the final integer solution.

    In Step 6, we prefer the side with the smallest objective function value as the final solution. If both have the same objective function value, the side with the lowest cutting patterns is chosen as the final solution. Our method differs from the residual heuristic in Steps 2 and 6. The good optimization capability of the column generation technique is exploited to compensate for the weak optimization capability of the VTC method. The quality of the solution can be improved. The cutting patterns (setups) can be reduced while obtaining a satisfactory material cost.

    We used two different instances, one instance is from a previous study in the literature and the other is from an aluminum alloy factory in China. Benchmark instances are used to compare our algorithm with the published 1D-CSP algorithms. To solve the 1D-CSP model presented in this paper, there are six main published algorithms: FFD, greedy, residual-FFD, residual-greedy, residual-GRH and residual-BPP algorithms. These algorithms can be found in Cerqueira et al. [15] and Poldi et al. [13]. All experiments were implemented with Python 3.7 installed on a computer with an Intel Core i5-10400 processor at 2.90 GHz. The calculation time for each instance was limited to 20 s.

    First set of instances: The 17 hard instances given by Wascher and Gau [29] are available at http://or.dei.unibo.it/library/bpplib.

    Second set of instances: Foerster and Wäscher [31] used the problem generator CutGen1 to randomly generate a set of instances with 18 different classes.

    Third set of instances: The authors collected 20 practical instances of making aluminum doors and windows in an aluminum alloy factory (see the Appendix).

    To test several algorithms on more challenging benchmarks, we tested 17 small-scale instances that were difficult to solve. These instances were designed by Wascher and Gau [29]. The stock object length L = 10,000, and the number of required items varies from 33 to 63. The majority of these items tend to have less demand. The minimum requirement of the item is only 1; thus, these instances can be used to estimate the performance of the constructive heuristic and our method. This is because the residual problem is a solution process for a lower-demand problem. For this set of instances, the number of iterations of our method was set to m, i.e., β=1.

    The results of three different methods are given in Table 1. The solution results of two well-known constructive heuristics and the proposed VTC technique are reported. Column 1 defines the name of the instances being tested, and the last column is the ideal optimal value of the objective function value. In the table, Obj represents the value of the objective function found, and NP refers to the number of different cutting patterns (setups). The last line shows the sum of the counts for all instances.

    Table 1.  Results of 17 hard instances (L = 10000).
    Name Constructive-FFD Constructive-Greedy VTC
    Obj NP Obj NP Obj NP LB
    Waescher_TEST0005 33 32 29 27 32 22 28
    Waescher_TEST0014 28 28 26 24 30 17 24
    Waescher_TEST0022 16 16 15 15 16 11 14
    Waescher_TEST0030 31 31 28 27 33 22 27
    Waescher_TEST0044 15 15 14 14 16 12 14
    Waescher_TEST0049 12 12 11 11 12 9 11
    Waescher_TEST0054 15 15 15 15 16 12 14
    Waescher_TEST0055A 16 16 15 15 17 10 15
    Waescher_TEST0055B 21 21 20 20 21 15 20
    Waescher_TEST0058 23 23 21 20 22 14 20
    Waescher_TEST0065 18 18 16 16 19 13 15
    Waescher_TEST0068 13 13 12 12 13 9 12
    Waescher_TEST0075 14 14 13 13 15 12 13
    Waescher_TEST0082 31 31 26 25 26 22 24
    Waescher_TEST0084 18 18 16 16 17 16 16
    Waescher_TEST0095 18 18 16 16 17 12 16
    Waescher_TEST0097 13 13 12 12 13 8 12
    Total 335 334 305 298 335 236 295

     | Show Table
    DownLoad: CSV

    The sum of the numbers of different cutting patterns for the VTC solution was significantly smaller than that for the other two methods. There is only one instance here, i.e., Waescher_TEST0084, where the NP metric did not outperform the other two methods. This indicates that VTC is powerful in terms of simplifying setups (reducing the cutting patterns).

    Comparing the FFD and greedy methods, the greedy method was best in terms of optimal objective function values, as opposed to our method, which was indistinguishable from FFD. For the Waescher_TEST0082 instance, our method obtained the same objective function value as the other methods. In this instance, a 12.0% reduction in pattern count could be obtained by using VTC instead of the greedy algorithm, and a 29.0% ( = 1-22/31) reduction in pattern count relative to FFD was observed. Relative to the greedy algorithm, the new solution reduced the number of patterns by a total of 20.8%, and a total of 29.3% relative to FFD.

    The second set consists of 18 classes of benchmark instances from Foerster and Wäscher [31]. There are 100 instances in each class, and we only tested the first 10 instances in each class. In accordance with Gau and Wäscher [32], the randomly generated instances could be the same as the original ones. The characteristics of the instances are shown in Table 2, where d denotes the number of item demands, dr represents the average demand and m represents the number of item types. Different combinations of v1 and v2 were used to determine the size of items randomly generated in the interval [v1L, v2L]. The results of the calculation are shown in Table 3. Obj denotes the average of the number of stock objects used. NP indicates the average number of cutting patterns. ¯LB stands for the average of the ideal objective function values. Using Gap as the distance between the actual objective function value and the ideal solution (LB), we report it as a percentage:

    Gapi=ObjLBObj×100%,Gap=Gap1++Gap1010(119) (119)
    Table 2.  Characteristics of instances in Set 2.
    Class m v1 v2 dr
    1
    2
    3
    10
    10
    20
    0.01
    0.01
    0.01
    0.2
    0.2
    0.2
    10
    100
    10
    4
    5
    20
    40
    0.01
    0.01
    0.2
    0.2
    100
    10
    6 40 0.01 0.2 100
    7 10 0.01 0.8 10
    8 10 0.01 0.8 100
    9 20 0.01 0.8 10
    10 20 0.01 0.8 100
    11 40 0.01 0.8 10
    12 40 0.01 0.8 100
    13 10 0.2 0.8 10
    14 10 0.2 0.8 100
    15 20 0.2 0.8 10
    16 20 0.2 0.8 100
    17 40 0.2 0.8 10
    18 40 0.2 0.8 100

     | Show Table
    DownLoad: CSV
    Table 3.  Results of 10 instances in each one of the 18 classes (L = 1000).
    Constructive-FFD Constructive-Greedy Residual-FFD Residual-Greedy Residual-GRH Residual-BPP Residual-VTC-FFD Residual-VTC-Greedy
    Class Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap ¯LB
    1 11.7 9.4 2.02 11.5 9.6 7.6 11.5 9.1 0.77 11.4 9.0 0 11.4 8.8 0 11.4 9.0 0 11.4 7.8 0 11.4 7.8 0 11.4
    2 114.8 17.6 3.90 111.9 24.9 1.53 110.4 13.4 0.16 110.2 13.2 0 110.2 12.7 0 110.2 12.9 0 110.5 13.5 0.13 110.3 12.3 0.07 110.2
    3 24.3 20.4 3.64 23.4 20.9 0 23.5 17.2 0.5 23.4 17.4 0 23.4 17.3 0 23.4 17.4 0 23.4 14.9 0 23.4 14.9 0 23.4
    4 238.4 32.8 44.4 229.8 72.1 0.84 227.9 27.0 0.58 227.7 26.8 0 227.7 25.8 0 227.7 25.5 0 227.7 25.1 0 227.7 25.1 0 227.7
    5 44.8 36.7 5.57 42.5 37.6 0.46 43.1 32.3 1.89 42.3 31.5 0 42.3 32.1 0 42.3 32.8 0 42.7 30.4 0.47 42.3 27.1 0 42.3
    6 445.0 64.4 4.39 423.0 134.0 0.37 420.6 49.4 0.10 420.0 48.8 0 420.0 48.1 0 420.0 50.0 0 420.4 47.6 0.08 420.0 48.1 0 420.0
    7 56.1 11.4 10.88 53.4 11.8 5.9 50.7 10.8 0.85 50.3 10.4 0 50.3 10.1 0 50.3 10.1 0 50.3 9.7 0 50.3 9.7 0 50.3
    8 571.8 13.6 9.29 550.2 15.9 6.71 516.5 11.1 0.03 516.3 12.2 0 516.3 11.8 0. 516.3 11.6 0 516.3 11.2 0 516.3 11.2 0 516.3
    9 121.6 20.5 17.87 108.0 22.3 7.51 100.8 19.9 0.08 100.6 19.8 0 100.6 19.7 0 100.6 19.8 0 100.6 19.6 0 100.6 19.6 0 100.6
    10 1211.8 24.5 17.84 996.4 45.3 9.02 1003.6 22.1 0.03 1003.2 21.7 0 1003.3 20.1 0.02 1003.2 21.9 0 1003.3 20.9 0.01 1003.2 20.8 0 1003.2
    11 221.6 46.7 22.5 195.7 48.3 12.17 172.2 41.0 0.06 172.1 40.9 0 172.1 40.1 0 172.1 41.2 0 172.1 39.9 0 172.1 39.9 0 172.1
    12 2217.1 52.4 20.32 1941.1 126.0 11.35 1724.0 45.6 0.06 1723.4 45.0 0.03 1723.3 44.1 0.02 1723.0 45.6 0.01 1723.4 43.7 0.03 1723.3 43.5 0.02 1722.9
    13 69.7 11.4 10.85 60.0 10.8 3.39 62.7 10.6 0.22 62.6 10.5 0 62.6 10.3 0 62.6 11.2 0 62.6 10.1 0 62.6 10.1 0 62.6
    14 691.6 10.9 10.48 648.4 11.0 4.01 623.8 11.0 0 623.8 11.0 0 623.8 10.9 0 623.8 10.8 0 623.8 10.7 0 623.8 10.7 0 623.8
    15 149.4 23.1 15.75 130.8 21.8 3.38 126.9 20.2 0.16 126.7 20.0 0 126.7 20.1 0 126.7 21.3 0 126.8 20.1 0.09 126.7 20.0 0 126.7
    16 1489.9 24.9 15.83 1305.0 32.3 3.28 1265.5 21.1 0.01 1265.4 21.0 0 1265.4 21.1 0 1265.4 21.2 0 1265.4 21.7 0 1265.4 21.0 0 1265.4
    17 280.5 47.8 21.74 239.9 48.2 8.33 220.0 39.1 0.12 219.7 38.8 0 219.7 37.9 0 219.7 38.9 0 219.8 39.4 0.04 219.7 38.8 0 219.7
    18 2802.8 48.1 21.5 2421.8 97.7 9.35 2194.1 43.0 0.01 2193.8 42.7 0 2193.8 41.4 0 2193.8 42.8 0 2193.9 43.0 0.01 2193.8 42.7 0 2193.8

     | Show Table
    DownLoad: CSV

    Our objective function considered only the quantity of stock objects used, and the demand for each item type had to be met precisely, as in the mathematical model studied by Cerqueira et al. [15]. We tested the set of instances with each of the six representative mainstream algorithms, without considering the MGH method used by the authors in the literature. This is because the MGH method considered the results of two types of stock objects L1 = 1000 and L2 = 1001.

    These 18 different types of instances can be divided into three groups, each containing six types of instances and having the same li range (see Table 2). Specifically, Classes 1 to 6 were treated as Group 1, Classes 7 to 12 were treated as Group 2 and Classes 13 to 18 were treated as Group 3. The average pattern count and the average number of objects used count for each group of instances are reported in Tables 4 and 5, respectively. The algorithms shown in line 1 of Tables 4 and 5 correspond to all of the algorithms in Table 3. The fifth row in Tables 4 and 5 shows the average of the three previous sets of results. The last row in Table 4 represents the sum of the pattern counts for all instances in Table 3. The last row in Table 5 presents the sum of the stock objects used for all instances.

    Table 4.  Summary of the first set in terms of the cutting pattern.
    FFD Greedy R-FFD R-Greedy R-GRH R-BPP R-VTC-FDD R-VTC-Greedy
    Group 1 30.22 49.85 24.73 24.45 24.13 24.57 23.22 22.55
    Group 2 28.18 44.93 25.08 25.0 24.32 25.03 24.17 24.12
    Group 3 27.70 36.97 24.17 24.0 23.62 24.37 24.17 23.88
    Average 28.7 43.92 24.66 24.48 24.02 24.66 23.85 23.52
    Total 516.6 790.5 443.9 440.7 432.4 444 429.3 423.3

     | Show Table
    DownLoad: CSV
    Table 5.  Summary of the first set in terms of the material cost.
    FFD Greedy R-FFD R-Greedy R-GRH R-BPP R-VTC-FDD R-VTC-Greedy LB
    Group 1 146.5 140.35 139.50 139.17 139.17 139.17 139.35 139.18 139.17
    Group 2 733.30 640.80 594.63 594.32 594.30 594.25 594.33 594.30 748.67
    Group 3 913.98 800.98 748.83 748.67 748.67 748.67 748.72 748.67 748.67
    Average 597.93 527.38 494.32 494.05 494.05 494.03 494.13 494.05 494.02
    Total 10762.9 9492.8 8897.8 8892.9 8892.9 8892.5 8894.4 8892.9 8892.4

     | Show Table
    DownLoad: CSV

    The six algorithmic solutions had a sum of material costs close to the LB (8892.4), whereas the other two constructive heuristics failed to reach optimality. The best performance in terms of material cost savings was the R-BPP algorithm. Our solution in terms of material cost was also closer to the LB. Remarkably, our method acquired the least number of cutting patterns compared to all other methods. This indicates that the algorithm (R-VTC-Greedy) developed can reduce cutting patterns.

    Comparing R-VTC-Greedy and R-Greedy, the sum of the cutting pattern counts of the R-VTC-Greedy algorithm was smaller than that of the R-Greedy algorithm. As seen in Table 4, the total sum of pattern counts decreased by 3.95% ( = (1 - 423.3) / 440.7). On average, a 3.92% ( = (1 - 23.52) / 24.48) reduction in pattern counts could be achieved by the R-VTC-Greedy algorithm. This illustrates that the VTC method we developed can improve the solution quality of R-Greedy.

    Comparing R-VTC-FDD and R-FDD, the sum of the cutting pattern counts of R-VTC-FDD was smaller than that of R-FDD. From the last row of Table 4, the sum of pattern counts solved by R-VTC-FDD was reduced by 3.28% ( = (1 - 429.3) / 443.9). On average, a 3.92% ( = (1 - 23.85) / 24.66) reduction in pattern counts could be achieved by R-VTC-FDD. This illustrates that the VTC method we developed can also improve the solution quality of R-FDD.

    From the results for the set of instances, the reduction in cutting patterns was not very significant, mainly for two reasons. One is that the VTC algorithm developed by the authors currently has difficulty in obtaining fewer cutting patterns for a 1D-CSP with higher demands. The second is that the problem also leads to a reduction in the optimization capability of VTC when the demand is higher. This can be analyzed from the solution for the first set of instances and the solution for the third set of instances that follow.

    In our methodology, the number of iterations was set to 2 m to solve this set of instances. We limited the computational time to 20 s for each instance, considering the effectiveness of the solution for instances with higher dimensionality.

    In the third set, there were 20 practical instances of industrial on-site processing. Tests on aluminum cutting were used to evaluate the performance of the best solutions generated by the new methodology for cost (material cost) minimization problems, as well as the usefulness of pattern reduction in practical cutting. Within a manufacturing plant, the objects in stock are 6000 cm in length. The engineering instances being solved at random were selected. These instances are provided in Table A.1 in the Appendix. For this set of instances, the number of iterations for our method was set to m, i.e., β = 2. In Table 6, the software Chuangying was developed by China Zibo Zhiying Network Technology Co., Ltd., which is a well-known and professional developer of door and window design and management software in China. The results of the calculated instances are exhibited in Table 6. To facilitate the analysis of the results, we set Obj to the number of objects used, and NP is defined as the number of cutting patterns. Gap is the relative optimal gap, expressed as a percentage. NpVTC, NpFDD, NpGreedy, NpChuangying, NpResidual-FFD, NpResidual-Greedy, NpResidual-GRH and NpResidual-VTC-Greedy represent the total numbers of cutting patterns produced by the different methods. As Table 6 shows, Residual-VTC-Greedy obtained a more satisfactory solution than several other similar mainstream algorithms.

    Table 6.  Results of 20 practical instances (L = 6000).
    Chuangying Constructive-FFD Constructive-Greedy Residual-FFD Residual-Greedy Residual-GRH VTC Residual-VTC-Greedy
    Name LB Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap Obj NP Gap
    1_6000 20 8 0 22 11 9.1 20 13 0 21 11 4.8 20 10 0 20 13 0 20 4 0 20 4 0 20
    2_6000 10 10 0 10 9 0 10 10 0 10 9 0 10 9 0 10 9 0 10 3 0 10 3 0 10
    3_6000 8 7 0 10 9 20 8 8 0 8 7 0 8 7 0 8 7 0 8 5 0 8 5 0 8
    4_6000 10 8 0 10 9 0 10 10 0 10 9 0 10 9 0 10 9 0 10 4 0 10 4 0 10
    5_6000 8 7 0 10 8 20 9 8 11 8 7 0 8 7 0 8 7 0 8 3 0 8 3 0 8
    6_6000 18 11 0 22 11 18.2 20 11 10 19 14 5.3 18 13 0 19 11 5.3 18 6 0 18 6 0 18
    7_6000 12 11 8.3 13 9 15.4 12 9 8.3 12 11 8.3 12 11 8.3 12 10 8.3 14 6 0 12 11 8.3 11
    8_6000 6 5 0 7 7 14.3 6 6 0 6 5 0 6 5 0 6 5 0 8 3 25 6 3 0 6
    9_6000 9 9 0 10 9 10.0 9 9 0 10 9 10.0 9 8 0 10 8 10.0 10 5 10 9 8 0 9
    10_6000 9 9 0 10 9 10.0 9 9 0 10 9 10.0 9 8 0 10 8 10.0 10 5 10 9 8 0 9
    11_6000 11 10 0 12 8 8.3 11 10 0 11 8 0 11 8 0 11 8 0 12 3 8.3 11 6 0 11
    12_6000 8 7 0 10 9 20.0 8 8 0 8 7 0 8 7 0 8 7 0 8 5 0 8 5 0 8
    13_6000 8 8 0 9 8 11.1 8 8 0 9 9 11.1 8 8 0 8 8 0 9 5 11.1 8 6 0 8
    14_6000 6 5 0 7 7 14.3 6 6 0 7 7 14.3 6 6 0 6 6 0 8 3 25 6 6 0 6
    15_6000 15 9 0 16 10 6.3 16 12 6.3 15 8 0 15 8 0 15 8 0 18 6 16.7 15 7 0 15
    16_6000 4 4 0 5 4 20.0 4 4 0 4 4 0 4 4 0 4 4 0 4 1 0 4 1 0 4
    17_6000 14 13 0 15 15 6.7 14 14 0 15 15 6.7 14 14 0 14 14 0 14 5 0 14 5 0 14
    18_6000 11 9 0 12 11 8.3 11 10 0 11 11 0 11 11 0 11 10 0 15 7 26.7 11 10 0 11
    19_6000 8 8 0 9 9 11.1 8 8 0 8 8 0 8 8 0 8 8 0 12 3 33.3 8 6 0 8
    20_6000 8 8 0 8 7 0 8 8 0 8 8 0 8 8 0 8 8 0 12 3 33.3 8 6 0 8
    Total 203 166 227 179 207 181 210 176 203 169 206 168 228 85 203 113 202

     | Show Table
    DownLoad: CSV

    The following data were obtained from the last row of the table:

    NpChuangyingNpResidual - VTC - GreedyNpChuangying=31.93%NpFFDNpResidual - VTC - GreedyNpFFD=36.9%
    NGreedypNResidualVTCGreedypNGreedyp=37.6%NResidualFFDpNResidualVTCGreedypNResidualFFDp=35.8%NResidualGreedypNResidualVTCGreedypNResidualGreedyp=33.1%NpResidualGRHNpResidualVTCGreedyNResidualGRHp=32.7%

    They state that, by addressing the 1D-CSP model, the rate of improvement in the cutting pattern was 31.93% relative to Chuangying, 36.9% relative to FFD, 37.6% relative to the greedy algorithm, 35.8% relative to Residual-FFD, 33.1% relative to Residual-Greedy and 32.7% relative to Residual-GRH. Among the 20 instances reported, only instances 7_6000, 14_6000 and 18_6000 had cutting patterns that were not improved by our method. Closer inspection of the results shows that our method is effective not only in solving the original problem, but also in solving the remaining problems. For example, comparing the results for instances 8, 11, 13, 15, 19 and 20, when VTC failed to obtain the optimal objective function value, the cutting patterns could still be reduced in the solution to the residual problem at a later stage.

    Figures 1 and 2 display the cutting patterns and their respective corresponding integer decision variables obtained by solving instance 1_6000 using our method and the commercial software, respectively. The symbol 1*6000*4 stands for the first cutting pattern produced and requires four objects to be cut according to that cutting pattern. The length of the object was 6000 cm. As can be seen from the graph, the two different methods solved for the same number of objects used, but our solution produced only four different cutting patterns, whereas the commercial software produced eight different cutting patterns, and the other methods in Table 6 produced even more cutting patterns.

    Figure 1.  Solution to instance 1_6000 using our method.
    Figure 2.  Solution to instance 1_6000 using Chuangying software.

    In this paper, we reviewed some heuristics and column generation techniques from the literature. A new method called VTC has also been introduced and used to design two other new approaches for solving the integer 1D-CSP by successfully integrating it into two residual heuristics. In the first set of instances, the proposed VTC algorithm showed pattern reduction performance comparable to that of two well-known heuristics. In the second set of instances, a total of 100 well-known instances of different types were tested. The test results for the second set of instances showed an improvement of the average setup cost compared to several classical algorithms. In the third set of instances, 20 real-life instances were tested and the setup cost solved by the designed approaches was significantly less than that of the other published algorithms. In fact, in some practical applications, pattern reduction is essential to reduce the time cost of the setup and adjustment of machinery and equipment. Moreover, in practical applications, the demand needs to be met precisely (overproduction is not allowed), which helps to save material costs. We all know that overproduction tends to generate material waste.

    This paper opens up new possibilities for future work. Efforts will be made to extend the VTC algorithm to address the 1D-CSP with multiple stock lengths and further pattern reduction in the future. In addition, the optimization capability and computational time of the new method can continue to be improved.

    We are grateful for the incoming comments by the reviewers and editors, and we also appreciate the real data provided by Guangdong Weiye Aluminum Factory Co.

    This work was supported in part by the Project of the National Key Research and Development Program of China (2021YFC1910402, 2022YFB4703103), National Natural Science Foundation of China (62073129, U21A20490, U22A2059) and Hunan Provincial Natural Science Foundation of China (2022JJ10020).

    No potential conflict of interest has been reported by the authors.

    Table A.1.  Random real-life instances in the field.
    1_6000
    Length (cm) 1552 1472 1400 1390 620 522 435 359 279
    Demand 12 12 12 4 32 40 32 8 8



    2_6000
    Length (cm) 1700 1690 1420 1130 1100 1080 760 730 720
    Demand 6 2 2 2 8 2 2 2 2
    Length (cm) 560 530 520 510 400 330
    Demand 8 2 12 4 2 20
    3_6000
    Length (cm) 3780 2840 2310 2240 2140 2070 1290 1270 1170
    Demand 2 2 2 3 2 2 1 1 4
    Length (cm) 1150 720 700
    Demand 2 1 1
    4_6000
    Length (cm) 1714 1704 1420 1130 1114 1094 760 730 720
    Demand 6 2 2 2 8 2 2 2 2
    Length (cm) 560 544 534 524 414 330
    Demand 8 2 12 4 2 20
    5_6000
    Length (cm) 1574 1390 1370 620 514 394 390
    Demand 6 4 4 16 14 8 4
    6_6000
    Length (cm) 4730 4720 3100 3040 2800 2740 1285 1270 1012.5
    Demand 2 2 6 4 6 4 4 2 4
    Length (cm) 1007.5 630 405 345 305 245
    Demand 4 8 4 4 4 4
    7_6000
    Length (cm) 2410 1820 1810 1750 1740 1500 1440 1400 1100



    Demand 2 12 6 3 1 2 2 2 2
    Length (cm) 810 740 570 410 340
    Demand 2 1 4 10 5
    8_6000
    Length (cm) 1524 1234 1160 874 765 714 705 620 560
    Demand 2 2 4 10 4 4 4 4 4
    Length (cm) 370 344
    Demand 2 4
    9_6000
    Length (cm) 2140 2120 2110 2100 1640 1330 1180 840 820
    Demand 2 2 4 2 2 4 2 2 2
    Length (cm) 810 800 740 620 500 300
    Demand 4 2 2 10 4 4
    10_6000
    Length (cm) 2154 2134 2124 2114 1640 1330 1180 854 834
    Demand 2 2 4 2 2 4 2 2 2
    Length (cm) 824 814 740 620 500 314
    Demand 4 2 2 10 4 4
    11_6000
    Length (cm) 1280 1140 1050 1030 900 620 580 570 560
    Demand 6 4 4 10 24 2 4 8 2
    Length (cm) 450 340

    Demand 8 4
    12_6000
    Length (cm) 3780 2840 2310 2240 2140 2070 1290 1270 1170




    Demand 2 2 2 3 2 2 1 1 4
    Length (cm) 1150 720 700
    Demand 2 1 1
    13_6000
    Length (cm) 2560 2410 2280 2210 1650 1580 1560 1530 1170
    Demand 2 2 4 3 2 1 2 2 1
    Length (cm) 750 715 630 570
    Demand 1 2 2 2
    14_6000
    Length (cm) 1510 1220 1160 860 765 705 700 620 560
    Demand 2 2 4 10 4 4 4 4 4
    Length (cm) 370 330
    Demand 2 4
    15_6000
    Length (cm) 1960 1900 1890 1870 1850 1830 885 875 530
    Demand 12 12 2 4 4 2 4 4 16
    Length (cm) 460
    Demand 8
    16_6000
    Length (cm) 1271 1151 716 631 571
    Demand 8 4 4 4 4
    17_6000
    Length (cm) 1940 1780 1580 1320 1220 950 910 870 860
    Demand 2 4 4 4 12 6 10 4 6
    Length (cm) 850 735 710 690 620 550 230 210
    Demand 4 8 2 2 8 4 2 2
    18_6000
    Length (cm) 2090 1810 1780 1770 1750 1740 1680 1670 1170
    Demand 4 2 2 2 6 4 2 4 2
    Length (cm) 1080 1040 890 860 820 790 630 570
    Demand 1 1 2 2 3 1 2 4
    19_6000
    Length (cm) 1234 1040 830 800 780 760 694 620 514
    Demand 8 4 2 4 4 4 2 14 18
    Length (cm) 494
    Demand 4
    20_6000
    Length (cm) 1220 1040 830 800 780 760 680 620 500
    Demand 8 4 2 4 4 4 2 14 18
    Length (cm) 480
    Demand 4

     | Show Table
    DownLoad: CSV


    [1] P. Gilmore, R. E. Gomory, A linear programming approach to the cutting-stock problem, Comput. Oper. Res., 9 (1961), 849–859. http://doi.org/10.1287/opre.9.6.849 doi: 10.1287/opre.9.6.849
    [2] H. H. Yanasse, M. S. Limeira, A hybrid heuristic to reduce the number of different patterns in cutting stock problems, Comput. Oper. Res., 33 (2006), 2744–2756. https://doi.org/10.1016/j.cor.2005.02.026 doi: 10.1016/j.cor.2005.02.026
    [3] A. C. Cherri, M. N. Arenales, H. H. Yanasse, K. C. Poldi, A. C. G. Vianna, The one-dimensional cutting stock problem with usable leftovers-A survey, Eur. J. Oper. Res., 236 (2014), 395–402. https://doi.org/10.1016/j.ejor.2013.11.026 doi: 10.1016/j.ejor.2013.11.026
    [4] Y. Cui, C. Zhong, Y. Yao, Pattern-set generation algorithm for the one-dimensional cutting stock problem with setup cost, Eur. J. Oper. Res., 243 (2015), 540–546. https://doi.org/10.1016/j.ejor.2014.12.015 doi: 10.1016/j.ejor.2014.12.015
    [5] M. Martin, H. H. Yanasse, L. L. Salles-Neto, Pattern-based ILP models for the one-dimensional cutting stock problem with setup cost, J. Comb. Optim., 44 (2022), 557–582. https://doi.org/10.1007/s10878-022-00848-z doi: 10.1007/s10878-022-00848-z
    [6] Y. Cui, Z. Liu, C-Sets-based sequential heuristic procedure for the one dimensional cutting stock problem with pattern reduction, Optim. Methods Software, 26 (2011), 55–167. https://doi.org/10.1080/10556780903420531 doi: 10.1080/10556780903420531
    [7] H. H. Yanasse, K. C. Poldi, G. R. L. Cerqueira, Modified KOMBI to reduce the different patterns in cutting stock problems, International Federation of Operational Research Societies Melbourne, Australia, 2011.
    [8] A. Mobasher, A. Ekici, Solution approaches for the cutting stock problem with setup cost, Comput. Oper. Res., 40 (2013), 225–235. https://doi.org/10.1016/j.cor.2012.06 doi: 10.1016/j.cor.2012.06
    [9] L.N. López de Lacalle, Improving the high-speed finishing of forming tools for advanced high-strength steels (AHSS), Int. J. Adv. Manuf. Technol., 29 (2006), 49–63. https://doi.org/10.1016/j.cor.2012.06.007 doi: 10.1016/j.cor.2012.06.007
    [10] A. I. Hinxman, The trim-loss and assortment problems: a survey, Eur. J. Oper. Res., 5 (2007), 8–18. https://doi.org/10.1016/0377-2217(80)90068-5 doi: 10.1016/0377-2217(80)90068-5
    [11] P. Ongkunaruk, Asymptotic worst-case analyses for the open bin packing problem, Faculty of the Virginia Polytechnic Institute, 2005.
    [12] A. C. Cherri, M. N. Arenales, H. H. Yanasse, The one-dimensional cutting stock problem with usable leftover: a heuristic approach, Eur. J. Oper. Res., 6 (2009), 897–908. https://doi.org/10.1016/j.ejor.2008.04.039 doi: 10.1016/j.ejor.2008.04.039
    [13] K. C. Poldi, M. N. Arenales, Heuristics for the one-dimensional cutting stock problem with limited multiple stock lengths, Comput. Oper. Res., 36 (2009), 2074–2081. https://doi.org/10.1016/j.cor.2008.07.001 doi: 10.1016/j.cor.2008.07.001
    [14] Y. Cui, Y. P. Cui, Z. Zhao, Pattern-set generation algorithm for the one one-dimensional multiple stock sizes cutting stock problem, Eng. Optim., 9 (2015), 1289–1301. https://doi.org/10.1080/0305215X.2014.969726 doi: 10.1080/0305215X.2014.969726
    [15] G. Cerqueira, S. S. Aguiar, M. Marques, Modified greedy heuristic for the one-dimensional cutting stock problem. J. Comb. Optim., 42 (2021), 657–674. https://doi.org/10.1007/s10878-021-00695-4 doi: 10.1007/s10878-021-00695-4
    [16] R. W. Haessler, Controlling cutting pattern changes in one-dimensional trim Problems, Comput. Oper. Res., 23 (1975), 483–493. https://doi.org/10.2307/169698 doi: 10.2307/169698
    [17] S. Umetani, M. Yagiura, T. Ibaraki, One-dimensional cutting stock problem to minimize the number of different patterns, Eur. J. Oper. Res., 146 (2003), 388–402. https://doi.org/10.1016/S0377-2217(02)00239-4 doi: 10.1016/S0377-2217(02)00239-4
    [18] J. Lee, In situ column generation for a cutting-stock problem, Comput. Oper. Res., 34 (2007), 2345–2358. https://doi.org/10.1016/j.cor.2005.09.007 doi: 10.1016/j.cor.2005.09.007
    [19] R. R. Golfeto, A. C. Moretti, L. L. S. Neto, A genetic symbiotic algorithm applied to the cutting stock problem with multiple objectives, Adv. Model. Optim., 11 (2009), 473–501.
    [20] S. A. Araujo, K. C. Poldi, J. Smith, A genetic algorithm for the one-dimensional cutting stock problem with setups, Pesqui. Oper., 34 (2014), 165–187. https://doi.org/10.1590/0101-7438.2014.034.02.0165 doi: 10.1590/0101-7438.2014.034.02.0165
    [21] A. Mobasher, A. Ekici, Olution approaches for the cutting stock problem with setup cost, Comput. Oper. Res., 40 (2013), 225–235.https://doi.org/10.1016/j.cor.201206.007 doi: 10.1016/j.cor.201206.007
    [22] M. Martin, A. Moretti, M. Gomes-Ruggiero, L. S. Neto, Modifification of Haessler's sequential heuristic procedure for the one-dimensional cutting stock problem with setup cost, Production, 28 (2018), e20170105. https://doi.org/10.1590/0103-6513.20170105 doi: 10.1590/0103-6513.20170105
    [23] C. McDiarmid, Pattern minimisation in cutting stock problems, Discrete Appl. Math., 98 (1999), 121–130. https://doi.org/10.1016/S0166-218X(99)00112-2 doi: 10.1016/S0166-218X(99)00112-2
    [24] F. Vanderbeck, Exact algorithm for minimizing the number of setups in the one-dimensional cutting stock problem, Oper. Res., 48 (2000), 915–926. https://doi.org/10.2307/222998 doi: 10.2307/222998
    [25] G. Belov, G. Scheithauer, The number of setups (different patterns) in one-dimensional stock cutting, Preprint MATH-NM-15-2003, Department of Mathematics, Dresden University of Technology, 2003
    [26] C. Alves, J. M. V. De Carvalho, A branch-and-price-and-cut algorithm for the pattern minimization problem, RAIRO Oper. Res., 42 (2008), 435–453. https://doi.org/10.1051/ro:2008027 doi: 10.1051/ro:2008027
    [27] C. Alves, R. Macedo, J. V. D. Carvalho, New lower bounds based on column generation and constraint programming for the pattern minimization problem, Comput. Oper. Res., 36 (2009), 2944–2954. https://doi.org/10.1016/j.cor.2009.01.008 doi: 10.1016/j.cor.2009.01.008
    [28] A. Aloisio, C. Arbib, F. Marinelli, On LP relaxations for the pattern minimization problem, Networks, 57 (2011), 247–253. https://doi.org/10.1002/net.20422 doi: 10.1002/net.20422
    [29] G. Wascher, T. Gau, Heuristics for the integer one-dimensional cutting stock problem: a computational study, Operations-Research-Spektrum, 18 (1996), 131–144. https://doi.org/10.1007/BF01539705 doi: 10.1007/BF01539705
    [30] M. Delorme, M. Iori, Enhanced pseudo-polynomial formulations for bin packing and cutting stock problems, INFORMS J. Comput., 32 (2020), 101–119. https://doi.org/10.1287/ijoc.2018.0880 doi: 10.1287/ijoc.2018.0880
    [31] H. Foerster, G. Wäscher, Pattern reduction in one-dimensional cutting stock problems, Int. J. Prod. Res., 38 (2000), 1657–1676. https://doi.org/10.1080/002075400188780 doi: 10.1080/002075400188780
    [32] T. Gau, G. Wäscher, CUTGEN1: A problem generator for the one-dimensional cutting stock problem, Eur. J. Oper. Res., 84 (1995), 572–579. https://doi.org/10.1016/0377-2217(95)00023-J doi: 10.1016/0377-2217(95)00023-J
  • Reader Comments
  • © 2023 the Author(s), licensee AIMS Press. This is an open access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0)
通讯作者: 陈斌, bchen63@163.com
  • 1. 

    沈阳化工大学材料科学与工程学院 沈阳 110142

  1. 本站搜索
  2. 百度学术搜索
  3. 万方数据库搜索
  4. CNKI搜索

Metrics

Article views(1920) PDF downloads(84) Cited by(0)

Figures and Tables

Figures(2)  /  Tables(7)

/

DownLoad:  Full-Size Img  PowerPoint
Return
Return

Catalog