Cutting stock problem

Last updated

In operations research, the cutting-stock problem is the problem of cutting standard-sized pieces of stock material, such as paper rolls or sheet metal, into pieces of specified sizes while minimizing material wasted. It is an optimization problem in mathematics that arises from applications in industry. In terms of computational complexity, the problem is an NP-hard problem reducible to the knapsack problem. The problem can be formulated as an integer linear programming problem.

Contents

Illustration of one-dimensional cutting-stock problem

A paper machine can produce an unlimited number of master (jumbo) rolls, each 5600 mm wide. The following 13 items must be cut, in the table below.

The important thing about this kind of problem is that many different product units can be made from the same master roll, and the number of possible combinations is itself very large, in general, and not trivial to enumerate.

The problem therefore is to find an optimum set of patterns of making product rolls from the master roll, such that the demand is satisfied and waste is minimized.

Width#Items
138022
152025
156012
171014
182018
188018
193020
200010
205012
210014
214016
215018
220020

Bounds and checks

A simple lower bound is obtained by dividing the total amount of product by the size of each master roll. The total product required is 1380 x 22 + 1520 x 25 + ... + 2200 x 20 = 407160 mm. Each master roll is 5600  mm, requiring a minimum of 72.7 rolls, which means 73 rolls or more are required.

Solution

A minimum-waste solution, sequenced to minimise knife changes, shown as small white circles CuttingStock.gif
A minimum-waste solution, sequenced to minimise knife changes, shown as small white circles

There are 308 possible patterns for this small instance. The optimal answer requires 73 master rolls and has 0.401% waste; it can be shown computationally that in this case the minimum number of patterns with this level of waste is 10. It can also be computed that 19 different such solutions exist, each with 10 patterns and a waste of 0.401%, of which one such solution is shown below and in the picture:

RepetitionContents
21820 + 1820 + 1820
31380 + 2150 + 1930
121380 + 2150 + 2050
71380 + 2100 + 2100
122200 + 1820 + 1560
82200 + 1520 + 1880
11520 + 1930 + 2150
161520 + 1930 + 2140
101710 + 2000 + 1880
21710 + 1710 + 2150
73

Classification

Cutting-stock problems can be classified in several ways. [1] One way is the dimensionality of the cutting: the above example illustrates a one-dimensional (1D) problem; other industrial applications of 1D occur when cutting pipes, cables, and steel bars. Two-dimensional (2D) problems are encountered in furniture, clothing and glass production. When either the master item or the required parts are irregular-shaped (a situation often encountered in the leather, textile, metals industries) this is referred to as the nesting problem.

Not many three-dimensional (3D) applications involving cutting are known; however the closely related 3D packing problem has many industrial applications, such as packing objects into shipping containers (see e.g. containerization: the related sphere packing problem has been studied since the 17th century (Kepler conjecture)).

Applications

Industrial applications of cutting-stock problems for high production volumes arise especially when basic material is produced in large rolls that are further cut into smaller units (see roll slitting). This is done e.g. in paper and plastic film industries but also in production of flat metals like steel or brass. There are many variants and additional constraints arising from special production constraints due to machinery and process limits, customer requirements and quality issues; some examples are:

Example of a guillotine cut CuttingStockGuillotine.png
Example of a guillotine cut
Example of a non-guillotine cut CuttingStockNonGuillotine.png
Example of a non-guillotine cut

History

The cutting stock problem was first formulated by Kantorovich in 1939. [4] In 1951 before computers became widely available, L. V. Kantorovich and V. A. Zalgaller suggested [5] solving the problem of the economical use of material at the cutting stage with the help of linear programming. The proposed technique was later called the column generation method.

Mathematical formulation and solution approaches

The standard formulation for the cutting-stock problem (but not the only one) starts with a list of m orders, each requiring pieces, where . We then construct a list of all possible combinations of cuts (often called "patterns" or "configurations"). Let be the number of those patterns. We associate with each pattern a positive integer variable , representing how many times pattern is to be used, where . The linear integer program is then:

, integer

where is the number of times order appears in pattern and is the cost (often the waste) of pattern . The precise nature of the quantity constraints can lead to subtly different mathematical characteristics. The above formulation's quantity constraints are minimum constraints (at least the given amount of each order must be produced, but possibly more).

When , the objective minimises the number of utilised master items and, if the constraint for the quantity to be produced is replaced by equality, it is called the bin packing problem .

The most general formulation has two-sided constraints (and in this case a minimum-waste solution may consume more than the minimum number of master items):

This formulation applies not just to one-dimensional problems. Many variations are possible, including one where the objective is not to minimise the waste, but to maximise the total value of the produced items, allowing each order to have a different value.

In general, the number of possible patterns grows exponentially as a function of m, the number of orders. As the number of orders increases, it may therefore become impractical to enumerate the possible cutting patterns.

An alternative approach uses delayed column-generation. This method solves the cutting-stock problem by starting with just a few patterns. It generates additional patterns when they are needed. For the one-dimensional case, the new patterns are introduced by solving an auxiliary optimization problem called the knapsack problem, using dual variable information from the linear program. The knapsack problem has well-known methods to solve it, such as branch and bound and dynamic programming. The Delayed Column Generation method can be much more efficient than the original approach, particularly as the size of the problem grows. The column generation approach as applied to the cutting stock problem was pioneered by Gilmore and Gomory in a series of papers published in the 1960s. [6] [7] Gilmore and Gomory showed that this approach is guaranteed to converge to the (fractional) optimal solution, without needing to enumerate all the possible patterns in advance.

A limitation of the original Gilmore and Gomory method is that it does not handle integrality, so the solution may contain fractions, e.g. a particular pattern should be produced 3.67 times. Rounding to the nearest integer often does not work, in the sense that it may lead to a sub-optimal solution and/or under- or over-production of some of the orders (and possible infeasibility in the presence of two-sided demand constraints). This limitation is overcome in modern algorithms, which can solve to optimality (in the sense of finding solutions with minimum waste) very large instances of the problem (generally larger than encountered in practice [8] [9] ).

The cutting-stock problem is often highly degenerate, in that multiple solutions with the same amount of waste are possible. This degeneracy arises because it is possible to move items around, creating new patterns, without affecting the amount of waste. This gives rise to a whole collection of related problems which are concerned with some other criterion, such as the following:

See also

Related Research Articles

<span class="mw-page-title-main">Knapsack problem</span> Problem in combinatorial optimization

The knapsack problem is the following problem in combinatorial optimization:

<span class="mw-page-title-main">Travelling salesman problem</span> NP-hard problem in combinatorial optimization

The travelling salesman problem (TSP) asks the following question: "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?" It is an NP-hard problem in combinatorial optimization, important in theoretical computer science and operations research.

<span class="mw-page-title-main">Linear programming</span> Method to solve some optimization problems

Linear programming (LP), also called linear optimization, is a method to achieve the best outcome in a mathematical model whose requirements are represented by linear relationships. Linear programming is a special case of mathematical programming.

<span class="mw-page-title-main">Assignment problem</span> Combinatorial optimization problem

The assignment problem is a fundamental combinatorial optimization problem. In its most general form, the problem is as follows:

<span class="mw-page-title-main">Packing problems</span> Problems which attempt to find the most efficient way to pack objects into containers

Packing problems are a class of optimization problems in mathematics that involve attempting to pack objects together into containers. The goal is to either pack a single container as densely as possible or pack all objects using as few containers as possible. Many of these problems can be related to real-life packaging, storage and transportation issues. Each packing problem has a dual covering problem, which asks how many of the same objects are required to completely cover every region of the container, where objects are allowed to overlap.

The bin packing problem is an optimization problem, in which items of different sizes must be packed into a finite number of bins or containers, each of a fixed given capacity, in a way that minimizes the number of bins used. The problem has many applications, such as filling up containers, loading trucks with weight capacity constraints, creating file backups in media, and technology mapping in FPGA semiconductor chip design.

An integer programming problem is a mathematical optimization or feasibility program in which some or all of the variables are restricted to be integers. In many settings the term refers to integer linear programming (ILP), in which the objective function and the constraints are linear.

Column generation or delayed column generation is an efficient algorithm for solving large linear programs.

<span class="mw-page-title-main">Cutting-plane method</span> Optimization technique for solving (mixed) integer linear programs

In mathematical optimization, the cutting-plane method is any of a variety of optimization methods that iteratively refine a feasible set or objective function by means of linear inequalities, termed cuts. Such procedures are commonly used to find integer solutions to mixed integer linear programming (MILP) problems, as well as to solve general, not necessarily differentiable convex optimization problems. The use of cutting planes to solve MILP was introduced by Ralph E. Gomory.

<span class="mw-page-title-main">Guillotine cutting</span> Process of producing small rectangular items of fixed dimensions

Guillotine cutting is the process of producing small rectangular items of fixed dimensions from a given large rectangular sheet, using only guillotine-cuts. A guillotine-cut is a straight bisecting line going from one edge of an existing rectangle to the opposite edge, similarly to a paper guillotine.

<span class="mw-page-title-main">Linear programming relaxation</span>

In mathematics, the relaxation of a (mixed) integer linear program is the problem that arises by removing the integrality constraint of each variable.

In mathematics and economics, transportation theory or transport theory is a name given to the study of optimal transportation and allocation of resources. The problem was formalized by the French mathematician Gaspard Monge in 1781.

The study of facility location problems (FLP), also known as location analysis, is a branch of operations research and computational geometry concerned with the optimal placement of facilities to minimize transportation costs while considering factors like avoiding placing hazardous materials near housing, and competitors' facilities. The techniques also apply to cluster analysis.

The dual of a given linear program (LP) is another LP that is derived from the original LP in the following schematic way:

The stretched grid method (SGM) is a numerical technique for finding approximate solutions of various mathematical and engineering problems that can be related to an elastic grid behavior. In particular, meteorologists use the stretched grid method for weather prediction and engineers use the stretched grid method to design tents and other tensile structures.

The quadratic knapsack problem (QKP), first introduced in 19th century, is an extension of knapsack problem that allows for quadratic terms in the objective function: Given a set of items, each with a weight, a value, and an extra profit that can be earned if two items are selected, determine the number of items to include in a collection without exceeding capacity of the knapsack, so as to maximize the overall profit. Usually, quadratic knapsack problems come with a restriction on the number of copies of each kind of item: either 0, or 1. This special type of QKP forms the 0-1 quadratic knapsack problem, which was first discussed by Gallo et al. The 0-1 quadratic knapsack problem is a variation of knapsack problems, combining the features of unbounded knapsack problem, 0-1 knapsack problem and quadratic knapsack problem.

A separation oracle is a concept in the mathematical theory of convex optimization. It is a method to describe a convex set that is given as an input to an optimization algorithm. Separation oracles are used as input to ellipsoid methods.

The configuration linear program (configuration-LP) is a linear programming technique used for solving combinatorial optimization problems. It was introduced in the context of the cutting stock problem. Later, it has been applied to the bin packing and job scheduling problems. In the configuration-LP, there is a variable for each possible configuration - each possible multiset of items that can fit in a single bin. Usually, the number of configurations is exponential in the problem size, but in some cases it is possible to attain approximate solutions using only a polynomial number of configurations.


High-multiplicity bin packing is a special case of the bin packing problem, in which the number of different item-sizes is small, while the number of items with each size is large. While the general bin-packing problem is NP-hard, the high-multiplicity setting can be solved in polynomial time, assuming that the number of different sizes is a fixed constant.

The Karmarkar–Karp (KK) bin packing algorithms are several related approximation algorithm for the bin packing problem. The bin packing problem is a problem of packing items of different sizes into bins of identical capacity, such that the total number of bins is as small as possible. Finding the optimal solution is computationally hard. Karmarkar and Karp devised an algorithm that runs in polynomial time and finds a solution with at most bins, where OPT is the number of bins in the optimal solution. They also devised several other algorithms with slightly different approximation guarantees and run-time bounds.

References

  1. Wäscher, G.; Haußner, H.; Schumann, H. An Improved Typology of Cutting and Packing Problems Archived 2020-04-24 at the Wayback Machine . European Journal of Operational Research Volume 183, Issue 3, 1109-1130
  2. M.P. Johnson, C. Rennick & E. Zak (1997), Skiving addition to the cutting stock problem in the paper industry , SIAM Review, 472-483
  3. Raffensperger, J. F. (2010). "The generalized assortment and best cutting stock length problems". International Transactions in Operational Research. 17: 35–49. doi:10.1111/j.1475-3995.2009.00724.x.
  4. L. V. Kantorovich Mathematical methods of organizing and planning production . Leningrad State University. 1939
  5. Kantorovich L. V. and Zalgaller V. A. . (1951). Calculation of Rational Cutting of Stock. Lenizdat, Leningrad.
  6. Gilmore P. C., R. E. Gomory (1961). A linear programming approach to the cutting-stock problem . Operations Research 9: 849-859
  7. Gilmore P. C., R. E. Gomory (1963). A linear programming approach to the cutting-stock problem - Part II . Operations Research 11: 863-888
  8. Goulimis C (1990). Optimal solutions for the cutting stock problem . European Journal of Operational Research 44: 197-208
  9. de Carvalho V (1998). Exact solution of cutting stock problems using column generation and branch-and-bound . International Transactions in Operational Research 5: 35–44
  10. S. Umetani, M. Yagiura, and T. Ibaraki (2003). One dimensional cutting stock problem to minimize the number of different patterns . European Journal of Operational Research 146, 388–402
  11. A. Diegel, E. Montocchio, E. Walters, S. van Schalkwyk and S. Naidoo (1996). Setup minimizing conditions in the trim loss problem . European Journal of Operational Research 95:631-640
  12. C. McDiarmid (1999). Pattern Minimisation in Cutting Stock Problems . Discrete Applied Mathematics, 121-130
  13. Constantine Goulimis. Counterexamples in the CSP . arXiv:2004.01937
  14. María García de la Banda, P. J. Stuckey. Dynamic Programming to Minimize the Maximum Number of Open Stacks . INFORMS Journal on Computing, Vol. 19, No. 4, Fall 2007, 607-617.

Further reading