Sei sulla pagina 1di 11

Lecture 12:

The Cutting Stock Problem

1
The Cutting Stock Problem
The Chase Paper Company makes paper in rolls of
100 inches width, called raws. The company has
a set of orders for rolls of smaller widths, called
finals as follows:

width of final 45 36 31 14
number of orders 97 610 395 211

Any pattern of finals can be cut out of each raw,


provided the total width of the finals cut does not
exceed 100. The company wants to determine a
cutting schedule that satisfies the finals require-
ment while wasting the smallest amount of paper.

36 "

31"

31"

2" waste

2
Cutting Patterns
The components of a cutting schedule are the cut-
ting patterns for each of the raws, which are
described by the number of finals of each
width that are cut out of that raw. If we let
aj be the number of finals of width i cut out

of a
a1


a2

particular raw, then a cutting pattern a =

a
3

a4
must satisfy

45a1 + 36a2 + 31a3 + 14a4 100


()
a1, a2, a3, a4 0 integer

The object is to determine a set a1, a2, . . . , ar of


cutting patterns

and the number xj of copies of
a1j


j

a 2j
produced in order to mini-
pattern a = a


3j

a4j
mize the waste, or equivalently, to minimize the
number of rolls used.

3
The ILP for the Cutting Stock Problem

min z = x1 + x2 + ... + xr
a11x1 + a12x2 + . . . + a1r xr = 97
a21x1 + a22x2 + . . . + a2r xr = 610
a31x1 + a32x2 + . . . + a3r xr = 395
a41x1 + a42x2 + . . . + a4r xr = 211
x1, x2, . . . , xr 0 integer

This has a large number of variables, in addition


to being an integer program. We will make an ini-
tial simplification by solving the relaxed LP. To
handle the large number of columns we will use the
revised simplex method with delayed col-
umn generation.

Idea of delayed column generation: Solve


using the Revised Simplex Method. At each
iteration, use the current shadow prices to explic-
itly generate the column with the most negative
reduced cost. Add, pivot, and repeat until optimal
solution is reached.

4
Starting the Revised Simplex Method
To start the Revised Simplex Method, we need a
starting basis of 4 columns of cutting patterns
which will allow us to satisfy the demand for all
four widths. Our patterns will be the naive ones
that for each final, cuts as many copies of that
final as the 100 inch raw width will allow. This
produces the four columns

2 0 0 0


1

0
2

2
3

0
4

0

a = a =
0
a =
0
a =
3

0


0 0 0 7

This produces starting basis and shadow prices

basis S/ y rhs
x1 1/2 0 0 0 48 1/2
x2 0 1/2 0 0 305
x3 0 0 1/3 0 131 2/3
x4 0 0 0 1/7 30 1/7
z 1/2 1/2 1/3 1/7 515 13/42

5
Using Delayed Column Generation
The first step of the Revised Simplex Method is
to compute the reduced costs, and to choose the
variable with the most negative reduced cost to
enter the basis. The reduced cost for variable

xi
a1j


j

a 2j
is
associated with cutting pattern a = a


3j

a4j

cj = cj y1a1j y2a2j y3a3j y4a4j


= 1 1/2a1j 1/2a2j 1/3a3j 1/7a4j

6
The Auxiliary Knapsack Problem
We do not want to compute all of the cj , just
the one with the most negative value. This is
in turn equivalent to finding the most positive
value of 1/2a

1+ 1/2a2 + 1/3a3 + 1/7a4 ( 1) over
a1


a2
all a = satisfying (). The optimization

a
3

a4
problem is therefore

max w = 1/2a1 + 1/2a2 + 1/3a3 + 1/7a4


(K1) 45a1 + 36a2 + 31a3 + 14a4 100
a1, a2, a3, a4 0 integer

(K1) is a knapsack problem, and can be solved


either by the branch-and-bound or dynamic pro-
gramming methods.

IDEAS has a built-in knapsack solver that you


can access from the MATLAB Command window.
Just type
[x,z]=knapsack(f,d,b)
to obtain the solution to the knapsack problem
max z = f1x1 + . . . + fr xr
d1 x 1 + . . . + dr x r b
xj 0 integer

7
Using the Knapsack Solution
The optimal solution to (K1) is

0


5

2

a =
0


2
with objective function value w = 1 27 . The reduced
cost for the new pattern is
c5 = 11/2(0)1/2(2)1/3(0)1/7(2) = 2/7
so this cutting pattern is eligible to enter the basis.
The entering column associated with x5 is

0 0


2 1

A5 = S
=
0 0


2 2/7
Putting the column in and pivoting on the added
column produces new revised tableau
basis S/ y rhs
x1 1/2 0 0 0 48 1/2
x2 0 1/2 0 1/2 199 1/2
x3 0 0 1/3 0 131 2/3
x5 0 0 0 1/2 105 1/2
z 1/2 1/2 1/3 0 485 1/6

8
We now have new knapsack problem

max w = 1/2a1 + 1/2a2 + 1/3a3


(K2) 45a1 + 36a2 + 31a3 + 14a4 100
a1, a2, a3, a4 0 integer

The optimal solution to (K2) is



0


1
a6 =




2

0
with objective function value w = 1 16 . The reduced
cost for the new pattern is c6 = 16 , so again this
cutting pattern is eligible to enter the basis. The
entering column associated with x5 is

0 0


1 1/2

A5 = S
=
2 2/3


0 0
and the new revised tableau becomes
basis S/ y rhs
x1 1/2 0 0 0 48 1/2
x2 0 1/2 1/4 1/2 100 3/4
x6 0 0 1/2 0 197 1/2
x5 0 0 0 1/2 105 1/2
z 1/2 1/2 1/4 0 452 1/4

9
The new knapsack problem is

max w = 1/2a1 + 1/2a2 + 1/4a3


(K3) 45a1 + 36a2 + 31a3 + 14a4 100
a1, a2, a3, a4 0 integer

2


0
(already

and its optimal solution is a =

0

0
in the basis as x1) with objective function value
w = 1. Thus all reduced costs are 0 (since x1
has the least of these), and so the current solution
is optimal. The LP solution is now to cut

column a1 a2 a5 a6
number cut 48 12 100 34 105 12 197 21

2 0 0 0


0 2 2 1
pattern

0 0 0 2


0 0 2 0

using a total of 452 14 raws.

10
Finding an Integer Solution
The LP solution not implementable, since it is frac-
tional. Our first adjustment is to round down
the LP solution, so that we cut 48 copies of a1, 100
copies of a2, 197 copies of a6, and 105 copies of a5.
This results in total set of finals

2 0 0 0 96


0 2 1 2 607

48 =
+ 100 + 197 + 105
0 0 2 0 394


0 0 0 2 210
This uses 450 raws and leaves 1 final of width 45,
3 finals of width 36, 1 final of width 31, and 1
final of width 14 left unsupplied. A simple inspec-
tion shows that these leftover finals can be cut us-
ing three patterns of (1, 1, 0, 1) and (0, 2, 0, 0), and
(0, 0, 1, 0) for a total of 453 raws to satisfy the given
demands. But since the optimal LP solution has
value 452 41 , this IP solutions must be optimal.

11

Potrebbero piacerti anche