Professional Documents
Culture Documents
Algoritmi
Research Center, University of Minho
? Department of Production and Systems Engineering, University of Minho
{rita,claudio,vc}@dps.uminho.pt
Outline
1 Introduction
3 Branch-and-price-and-cut Algorithm
4 Computational Results
6 Acknowledgements
Outline
1 Introduction
Two Dimensional Cutting Stock Problem
Literature Review
3 Branch-and-price-and-cut Algorithm
4 Computational Results
6 Acknowledgements
Guillotine Constraint
Patterns with uninterrupted cuts, going from one side of the sheet
(or one of its already cut fragments) to its opposite side, dividing it
in two
Guillotine Constraint
Patterns with uninterrupted cuts, going from one side of the sheet
(or one of its already cut fragments) to its opposite side, dividing it
in two
Guillotine Constraint
Patterns with uninterrupted cuts, going from one side of the sheet
(or one of its already cut fragments) to its opposite side, dividing it
in two
Guillotine Constraint
Patterns with uninterrupted cuts, going from one side of the sheet
(or one of its already cut fragments) to its opposite side, dividing it
in two
Guillotine Constraint
Patterns with uninterrupted cuts, going from one side of the sheet
(or one of its already cut fragments) to its opposite side, dividing it
in two
Non guillotine
cutting pattern
2-staged guillotine
cutting pattern
Vanderbeck (2001)
A nested decomposition approach to a three-stage, two-dimensional
cutting stock problem. Management Science, 47(6):864-879
Amossen (2005)
Constructive algorithms and lower bounds for guillotine cuttable
orthogonal bin packing problems. Masters thesis, Department of
Computer Science, University of Copenhagen
New algorithm
New algorithm
Branch-and-price-and-cut Algorithm
New algorithm
Branch-and-price-and-cut Algorithm
New algorithm
Branch-and-price-and-cut Algorithm
Outline
1 Introduction
3 Branch-and-price-and-cut Algorithm
4 Computational Results
6 Acknowledgements
j 0 and integer j J
j 0 and integer j J
Pricing Problem
m
X i : dual variable associated with
max i yi constraint i from the maser
i=1 problem
s.a wi yi W i {1, . . . , m} yi : no of times item i is selected
yi 0 and integer i {1, . . . , m} in the new cutting pattern
M 0 . = 0
0
s.a : (0 1 m
1 , . . . , 1 , . . . , 1 , . . .)
T
M 00 . B B: (b1 , . . . , bm )T
M 0 , M 00 : first m0 rows and last m rows of matrix M ,
0 and integer respectively
M0 , Ms : submatrix of feasible cutting patterns for the first
stage and sth set of the second stage, respectively
1 ... 1 0
0 1 ... 1 .
0 .
M0 . ... .
. . 0
M =
. . 1 ... 1
.
0 M1 M2 ... Mm0
Example
Consider an instance with stock sheets of height H = 20 and width W = 30 and a set
of items {(hi , wi ) : i {1, . . . , 5}} ={(5, 7), (5, 10), (7, 12), (10, 8), (12, 10)}, with
demands b = (4, 3, 5, 3, 5).
Example
Consider an instance with stock sheets of height H = 20 and width W = 30 and a set
of items {(hi , wi ) : i {1, . . . , 5}} ={(5, 7), (5, 10), (7, 12), (10, 8), (12, 10)}, with
demands b = (4, 3, 5, 3, 5).
Example
Consider an instance with stock sheets of height H = 20 and width W = 30 and a set
of items {(hi , wi ) : i {1, . . . , 5}} ={(5, 7), (5, 10), (7, 12), (10, 8), (12, 10)}, with
demands b = (4, 3, 5, 3, 5).
Outline
1 Introduction
3 Branch-and-price-and-cut Algorithm
Branching Scheme
Two dimensional Arc-flow Model
Some details
Cutting Planes
4 Computational Results
6 Acknowledgements
University of Minho Column Generation 2008, Aussois, France 12 / 31
Introduction
Branching Scheme
Gilmore and Gomory Model
Two dimensional Arc-flow Model
Branch-and-price-and-cut Algorithm
Some details
Computational Results
Cutting Planes
Conclusions and Future Work
Branching Scheme
Branching Scheme
Branching Scheme
Example
Example
0 1 2 3 4 5 6 7 8 9
Example
0 1 2 3 4 5 6 7 8 9
xab arcs (a, b) flow, i.e., no of items of width b a placed at a distance of a units from the beginning of a
given stock sheet
z total flow that goes through the graph (return flow from vertex W to vertex 0)
xab arcs (a, b) flow, i.e., no of items of width b a placed at a distance of a units from the beginning of a
given stock sheet
z total flow that goes through the graph (return flow from vertex W to vertex 0)
Constraints
xab arcs (a, b) flow, i.e., no of items of width b a placed at a distance of a units from the beginning of a
given stock sheet
z total flow that goes through the graph (return flow from vertex W to vertex 0)
Constraints
flow conservation
xab arcs (a, b) flow, i.e., no of items of width b a placed at a distance of a units from the beginning of a
given stock sheet
z total flow that goes through the graph (return flow from vertex W to vertex 0)
Constraints
flow conservation
demands fulfillment
0
min z
z 0
, if b = 0
0 0
X X
s.t. xab xbc = 0 , if b = 1, 2, ..., H 1
0
(a,b)A0 (b,c)A0 z , if b = H
0 i 0
X
xc,c+h z = 0, i {1, ..., m }
i
(c,c+h )A0
i
z s , if e = 0
s s
, if e = 1, 2, ..., W 1 , s {1, ..., m0 }
X X
xdeh xef h = 0
s
(d, e) As (e, f ) As z , if e = W
h H h H
m 0
s
X X
xf,f +w ,h bi , i {1, ..., m}
i i
s=1 (f,f +wi )As
0 0
xab 0 and integer, (a, b) A
s s 0
xdeh 0 and integer, (d, e) A , s {1, ..., m }, h H
0
min z
z 0
, if b = 0
0 0
X X
s.t. xab xbc = 0 , if b = 1, 2, ..., H 1
0
(a,b)A0 (b,c)A0 z , if b = H
0 i 0
X
xc,c+h z = 0, i {1, ..., m }
i
(c,c+h )A0
i
z s , if e = 0
s s
, if e = 1, 2, ..., W 1 , s {1, ..., m0 }
X X
xdeh xef h = 0
s
(d, e) As (e, f ) As z , if e = W
h H h H
m 0
s
X X
xf,f +w ,h bi , i {1, ..., m}
i i
s=1 (f,f +wi )As
0 0
xab 0 and integer, (a, b) A
s s 0
xdeh 0 and integer, (d, e) A , s {1, ..., m }, h H
0
min z
z 0
, if b = 0
0 0
X X
s.t. xab xbc = 0 , if b = 1, 2, ..., H 1
0
(a,b)A0 (b,c)A0 z , if b = H
0 i 0
X
xc,c+h z = 0, i {1, ..., m }
i
(c,c+h )A0
i
z s , if e = 0
s s
, if e = 1, 2, ..., W 1 , s {1, ..., m0 }
X X
xdeh xef h = 0
s
(d, e) As (e, f ) As z , if e = W
h H h H
m 0
s
X X
xf,f +w ,h bi , i {1, ..., m}
i i
s=1 (f,f +wi )As
0 0
xab 0 and integer, (a, b) A
s s 0
xdeh 0 and integer, (d, e) A , s {1, ..., m }, h H
0
min z
z 0
, if b = 0
0 0
X X
s.t. xab xbc = 0 , if b = 1, 2, ..., H 1
0
(a,b)A0 (b,c)A0 z , if b = H
0 i 0
X
xc,c+h z = 0, i {1, ..., m }
i
(c,c+h )A0
i
z s , if e = 0
s s
, if e = 1, 2, ..., W 1 , s {1, ..., m0 }
X X
xdeh xef h = 0
s
(d, e) As (e, f ) As z , if e = W
h H h H
m 0
s
X X
xf,f +w ,h bi , i {1, ..., m}
i i
s=1 (f,f +wi )As
0 0
xab 0 and integer, (a, b) A
s s 0
xdeh 0 and integer, (d, e) A , s {1, ..., m }, h H
0
min z
z 0
, if b = 0
0 0
X X
s.t. xab xbc = 0 , if b = 1, 2, ..., H 1
0
(a,b)A0 (b,c)A0 z , if b = H
0 i 0
X
xc,c+h z = 0, i {1, ..., m }
i
(c,c+h )A0
i
z s , if e = 0
s s
, if e = 1, 2, ..., W 1 , s {1, ..., m0 }
X X
xdeh xef h = 0
s
(d, e) As (e, f ) As z , if e = W
h H h H
m 0
s
X X
xf,f +w ,h bi , i {1, ..., m}
i i
s=1 (f,f +wi )As
0 0
xab 0 and integer, (a, b) A
s s 0
xdeh 0 and integer, (d, e) A , s {1, ..., m }, h H
Some details
I Selection rule: whenever the LP solution is fractional, find the
values of the corresponding arc-flow. Then,
Some details
I Selection rule: whenever the LP solution is fractional, find the
values of the corresponding arc-flow. Then,
branch on arc-flows with fractional value
Some details
I Selection rule: whenever the LP solution is fractional, find the
values of the corresponding arc-flow. Then,
branch on arc-flows with fractional value
1st on the arcs from graph G0
0
2nd on the arcs of the second stages graphs, in the order: Gm ,
0
G m 1 , ... , G1
Some details
I Selection rule: whenever the LP solution is fractional, find the
values of the corresponding arc-flow. Then,
branch on arc-flows with fractional value
1st on the arcs from graph G0
0
2nd on the arcs of the second stages graphs, in the order: Gm ,
0
G m 1 , ... , G1
Some details
I Selection rule: whenever the LP solution is fractional, find the
values of the corresponding arc-flow. Then,
branch on arc-flows with fractional value
1st on the arcs from graph G0
0
2nd on the arcs of the second stages graphs, in the order: Gm ,
0
G m 1 , ... , G1
Some details
I Selection rule: whenever the LP solution is fractional, find the
values of the corresponding arc-flow. Then,
branch on arc-flows with fractional value
1st on the arcs from graph G0
0
2nd on the arcs of the second stages graphs, in the order: Gm ,
0
G m 1 , ... , G1
Some details
I Selection rule: whenever the LP solution is fractional, find the
values of the corresponding arc-flow. Then,
branch on arc-flows with fractional value
1st on the arcs from graph G0
0
2nd on the arcs of the second stages graphs, in the order: Gm ,
0
G m 1 , ... , G1
Cutting Planes
All items with height greater than or equal to hj must be cut out of
strips of height greater than or equal to hj
Cutting Planes
All items with height greater than or equal to hj must be cut out of
strips of height greater than or equal to hj
Ij = {i {1, ..., m} : hi hj }
m = number of different items
m0 = number of different heights
Example
(h,w) b
items 1 (5,7) 4
items 2 (5,10) 3
items 3 (7,12) 5
items 4 (10,8) 3
items 5 (12,10) 5
Example
P
iIj wi bi
(h,w) b W
items 1 (5,7) 4
items 2 (5,10) 3
items 3 (7,12) 5
items 4 (10,8) 3
items 5 (12,10) 5
Example
P
iIj wi bi
(h,w) b W
items 1 (5,7) 4
items 2 (5,10) 3
items 3 (7,12) 5
items 4 (10,8) 3
105
items 5 (12,10) 5 30
=2
Example
P
iIj wi bi
(h,w) b W
items 1 (5,7) 4
items 2 (5,10) 3
items 3 (7,12) 5
items 4 (10,8) 3
105
items 5 (12,10) 5 30
=2 at least 2 strips with heights
equal to 12 are required
Example
P
iIj wi bi
(h,w) b W
items 1 (5,7) 4
items 2 (5,10) 3
items 3 (7,12) 5
105+83
items 4 (10,8) 3 30
=3
105
items 5 (12,10) 5 30
=2 at least 2 strips with heights
equal to 12 are required
Example
P
iIj wi bi
(h,w) b W
items 1 (5,7) 4
items 2 (5,10) 3
items 3 (7,12) 5
105+83
items 4 (10,8) 3 30
=3 at least 3 strips with heights
greater than or equal to 10 are
required
105
items 5 (12,10) 5 30
=2 at least 2 strips with heights
equal to 12 are required
Example
P
iIj wi bi
(h,w) b W
items 1 (5,7) 4
items 3 (7,12) 5
105+83
items 4 (10,8) 3 30
=3 at least 3 strips with heights
greater than or equal to 10 are
required
105
items 5 (12,10) 5 30
=2 at least 2 strips with heights
equal to 12 are required
Outline
1 Introduction
3 Branch-and-price-and-cut Algorithm
4 Computational Results
Branch-and-price-and-cut
Comparison with Arc-flow model
Cutting planes
6 Acknowledgements
Implementation
Terminology
m: number of different items
areaitems : sum of the items areas
colsini : initial number of columns
colsLP : number of columns generated during the solution of the linear relaxation
colsBB : number of columns generated during the branch-and-bound process
spLP : number of pricing problems solved before branching
spBB : number of pricing problems solved during the branch-and-bound process
nodesBB : number of searched branching nodes
tLR : computational time (in seconds) spent with the LP relaxation
tBB : computational time (in seconds) spent with the branch-and-bound process
ttot : total time (in seconds)
zLR : linear relaxation solution
zIP /U B: integer solution or the reached upper bound
rows marked with an * represent instances in which the algorithm didnt find the optimal solution
after 7200 seconds or 5000 searched branching nodes
Arc-flow model
Strengthening bounds
Strengthening bounds
Outline
1 Introduction
3 Branch-and-price-and-cut Algorithm
4 Computational Results
6 Acknowledgements
Conclusions
new exact algorithm for the 2-dim.cutting stock problem
ongoing research
original pseudo-polynomial arc-flow model solves faster with
fewer nodes.
There is room for improvement of plain column generation
algorithm (heuristics, dual cuts, other stabilization, ...)
Conclusions
new exact algorithm for the 2-dim.cutting stock problem
ongoing research
original pseudo-polynomial arc-flow model solves faster with
fewer nodes.
There is room for improvement of plain column generation
algorithm (heuristics, dual cuts, other stabilization, ...)
Future Work
new cutting planes from maximal Dual Feasible Functions
(DFF) (compatible with subproblem).
rotation of items.
both first cut vertical and first cut horizontal.
Outline
1 Introduction
3 Branch-and-price-and-cut Algorithm
4 Computational Results
6 Acknowledgements
Acknowledgements