![Page 1: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/1.jpg)
1Thomas Stidsen
DTU-Management / Operations Research
Column Generation: Cutting Stock– A very applied method
Thomas Stidsen
DTU-Management
Technical University of Denmark
![Page 2: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/2.jpg)
2Thomas Stidsen
DTU-Management / Operations Research
OutlineHistory
The Simplex algorithm (re-visited)
Column Generation as an extension of theSimplex algorithm
A simple example !
![Page 3: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/3.jpg)
3Thomas Stidsen
DTU-Management / Operations Research
Introduction to Column GenerationColumn Generation (CG) is an old method,originally invented by Ford & Fulkerson in 1962 !
Benders decomposition algorithm dealt withadding constraints to a master problem
CG deals with adding variables to a masterproblem
CG is one of the most used methods in real lifewith lots of applications.
(Relax it is significantly easier than Benders algo-
rithm)
![Page 4: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/4.jpg)
4Thomas Stidsen
DTU-Management / Operations Research
Given an LP problemMin
cTx
s.t.
Ax ≥ b
x ≥ 0
This is a simple “sensible” (in the SOB notation) LPproblem
![Page 5: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/5.jpg)
5Thomas Stidsen
DTU-Management / Operations Research
The simplex slack variablesWe introduce a number slack variables, one foreach constraint, (simply included as extra xvariables). They are also positive.
Min
z = cTx
s.t.
Ax = b
x ≥ 0
![Page 6: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/6.jpg)
6Thomas Stidsen
DTU-Management / Operations Research
The simplex (intermediate) problemIn each iteration of the simplex algorithm, a numberof basic variables xB may be non-zero (B matrix)and remaining variables are called non − basic xN
(A matrix). In the end of each iteration of thesimplex algorithm, the values of the variables xB
and xN contain a feasible solution.Min
z = cTBxB + cT
NxN
s.t.
BxB + AxN = b
xB, xN ≥ 0
![Page 7: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/7.jpg)
7Thomas Stidsen
DTU-Management / Operations Research
A reformulated versionMin
z = cTBxB + cT
NxN
s.t.
xB = B−1b − B−1ANxN
xB, xN ≥ 0
![Page 8: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/8.jpg)
8Thomas Stidsen
DTU-Management / Operations Research
A reformulated versionMin
z = cBB−1b + (cN − cBB−1AN)xN
s.t.
xB = B−1b − B−1ANxN
xB, xN ≥ 0
![Page 9: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/9.jpg)
9Thomas Stidsen
DTU-Management / Operations Research
Comments to the reformulated versionAt the end of each iteration (and the beginning ofthe next) it holds that:
The current value of the non-basic variablesare: xN = 0.
Hence the current optimization value is:z = cBB−1b.
And hence the values of the basic variables are:xB = cBB−1.
![Page 10: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/10.jpg)
10Thomas Stidsen
DTU-Management / Operations Research
Comments to the reformulated versionThe coefficients of the basic variables (xB) inthe objective function are zero ! This simplymeans that the xB variables are not“participating” in the objective function.
The coefficients of the non-basic variables arethe so-called reduced costs: cN − cBB−1AN
Because z = cTBxB + cT
NxN , and we want tominimize, non-basic variables with negativereduced costs can improve the current solution,i.e. cN − cBB−1AN < 0
![Page 11: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/11.jpg)
11Thomas Stidsen
DTU-Management / Operations Research
The Simplex AlgorithmxS = bxS = 0while MINj(cj − cBB−1Aj) < 0
Select new basic variable j: cj − cBB−1Aj < 0Select new non-basic variable j′ by
increasing xj as much as possibleSwap columns between matrix B and matrix A
end while
![Page 12: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/12.jpg)
12Thomas Stidsen
DTU-Management / Operations Research
Comments to the algorithmThere are three parts of the algorithm:
Select the next basic variable.
Select the next non-basic variable.
Update data structures.
We will now comment on each of the three steps.
![Page 13: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/13.jpg)
13Thomas Stidsen
DTU-Management / Operations Research
Selecting the next basic variableTo find the most negative reduced cost, all thereduced costs must be checked:cred = MINj(cj − cBB−1Aj) < 0.
In the revised simplex algorithm, first the systemyB = cB is solved. (In the standard simplexalgorithm, the reduced costs are given directly).
Conclusion: This part (mainly) is dependent on thenumber of variables.
![Page 14: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/14.jpg)
14Thomas Stidsen
DTU-Management / Operations Research
Selecting the next non-basic variableThere are the same number of basic variables(to compare) as there are constraints
We are only considering one non-basic variable
Basically we are looking at the system:xB = x∗
B − B−1Ajxj.
The revised simplex algorithm solves thesystem Bd = a, where a is the column of theentering variable.
Conclusion: This part is dependent on the numberof constraints
![Page 15: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/15.jpg)
15Thomas Stidsen
DTU-Management / Operations Research
BookkeepingIn the end what needs to be done (in the revisedsimplex algorithm) ?
Update of the matrix’s B and A: Simply swapthe columns.
Conclusion: This part is dependent on the numberof constraints
![Page 16: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/16.jpg)
16Thomas Stidsen
DTU-Management / Operations Research
Comments to the algorithmSelecting a non-negative variable principallyrequires checking all the many variables (timeconsuming).
Selecting the new non-basic variable:There are the same number of basicvariables (to compare) as there areconstraintsWe are only considering one non-basicvariableBasically we are looking at the system:xB = x∗
B − B−1Ajxj
Update of the matrix’s B and A: Simply swapthe columns.
![Page 17: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/17.jpg)
17Thomas Stidsen
DTU-Management / Operations Research
LP programs with many variables !The crucial insight: The number of non-zerovariables (the basis variables) is (at most) equal tothe number of constraints, hence eventhough thenumber of possible variables (columns) may belarge, we only need a small subset of these in theoptimal solution.
Basis Non−basis
![Page 18: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/18.jpg)
18Thomas Stidsen
DTU-Management / Operations Research
The simple column generation ideaThe simple idea in column generation is not torepresent all variables explicitly, represent themimplicitly: When looking for the next basic variable,solve an optimization problem, finding the variable(column) with the most negative reduced cost.
![Page 19: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/19.jpg)
19Thomas Stidsen
DTU-Management / Operations Research
The column generation algorithmx∗
S = bx∗
S= 0
repeatrepeat
Select new basic variable j: cj − cBB−1Aj < 0Select new non-basic variable j′ by
increasing xj as much as possibleSwap columns between matrix B and matrix A
until MINj(cj − cBB−1Aj) >= 0x = MIN(cj − cBB−1Aj, LEGAL)
until no more improving variables
![Page 20: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/20.jpg)
20Thomas Stidsen
DTU-Management / Operations Research
The reduced costs: cj − cBB−1Aj < 0Lets look at the individual components of thereduced costs cj − cBB−1Aj < 0 :
cj: The original costs for the variable
Aj: The column in the A matrix, which definesthe variable.
cBB−1: For each constraint in the LP problem,this factor is multiplied to the column. cB is thecost vector for the current basic variables andB−1 is the inverse basic matrix.
![Page 21: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/21.jpg)
21Thomas Stidsen
DTU-Management / Operations Research
Alternative cBB−1
For an optimization problem:{min cx|Ax ≥ b, x ≥ 0}. Outside the inner loop, thereduced costs are: cN − cBB−1AN ≥ 0 for theexisting variables. Notice that this also holds for thebasic variables for which the costs are all zero, i.e.c − cB−1A ≥ 0. If we rename the term cBB−1 to thename π we can rewrite the expression: πA ≤ c. Butthis is exactly dual feasibility of our original problem! Hence we can use the dual variables from ourinner loop when looking for new variables.
![Page 22: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/22.jpg)
22Thomas Stidsen
DTU-Management / Operations Research
The column generation algorithmx∗
S = bx∗
S= 0
repeatπ = MIN(min cx|Ax ≥ b, x ≥ 0)xj = MIN(cj − cBB−1Aj, LEGAL)
until no more improving variables
![Page 23: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/23.jpg)
23Thomas Stidsen
DTU-Management / Operations Research
Cutting Stock ExampleThe example which is always referred to regardingcolumn generation is the cutting stock example.Assume you own a workshop where steel rods arecut into different pieces:
Customers arrive and demand steel rods ofcertain lengths: 22 cm., 45 cm., etc.
You serve the customers demands by cuttingthe steel rods into the rigth sizes.
You recieve the rods in lengths of e.g. 200 cm.
![Page 24: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/24.jpg)
24Thomas Stidsen
DTU-Management / Operations Research
Cutting Stock ExampleA A A B B C C C
A
A
A
B
C
C
C
B
Log
LOSS
![Page 25: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/25.jpg)
25Thomas Stidsen
DTU-Management / Operations Research
Cutting Stock ObjectiveHow can you minimize your material waste (what’sleft of each rod after you have cut the customerpieces) ?
![Page 26: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/26.jpg)
26Thomas Stidsen
DTU-Management / Operations Research
Cutting Stock Formulation 1Min:
z =∑
k
yk
s.t.:∑
k
xik = bi ∀i
∑
i
wi · xik ≤ W · yk ∀k
xik ∈ N0 yk ∈ {0, 1}
![Page 27: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/27.jpg)
27Thomas Stidsen
DTU-Management / Operations Research
Cutting Stock Formulation 1What is wrong with the above formulation ?
It contains many symmetric solutions, k!. Thismakes the problem extremely hard for branchand bound algorithms.
There are many integer or binary variables
For these reasons, it is never used in practice.
![Page 28: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/28.jpg)
28Thomas Stidsen
DTU-Management / Operations Research
New FormulationHow can we change the formulation ?
Instead of focussing on which steel rod aparticular part is to be cut from, look at possiblepatterns used to cut from a steel rod.
The question is then changed to focussing onhow many times a particular pattern is used.
![Page 29: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/29.jpg)
29Thomas Stidsen
DTU-Management / Operations Research
Cutting Stock Formulation 2Min:
z =∑
j
xj
s.t.:∑
j
aij · xj ≥ bi ∀i
xj ∈ N0
![Page 30: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/30.jpg)
30Thomas Stidsen
DTU-Management / Operations Research
Cutting Stock Formulation 2What are the xj and ai
j ?
aij is a cutting pattern, describing how to cut one
steel rod into pieces.
Notice that any legal solution to formulation 1will always be consisting of a number of cuttingpatterns
xj is then simply the number of times thatcutting pattern is used.
![Page 31: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/31.jpg)
31Thomas Stidsen
DTU-Management / Operations Research
Cutting Stock Formulation 2There are two different problems with theformulation:
We will only solve the relaxed problem, i.e. theLP version of the MIP problem, how do we getinteger solutions ?
We need to “consider” all the cutting patterns???
Today we will only deal with the last problem ...
![Page 32: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/32.jpg)
32Thomas Stidsen
DTU-Management / Operations Research
Cutting PatternsWe have a number of questions to these cuttingpatterns:
But where do we get the cutting patterns from ?
How many are there ? ( |i|a) = |i|!
a!(|i|−a)! , i.e. a lot !
Where: |i| is the number of different types(lengths) requiredWhere: a is the average number of cutsizesin each of the patterns.
![Page 33: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/33.jpg)
33Thomas Stidsen
DTU-Management / Operations Research
Cutting PatternsThis is a very real problem: Even if we had a way of
generating all the legal cutting patterns, our standard
simplex algorithm will need to calculate the “efficient”
variables, but we will not have memory to contain the
variables in the algoritm, now what ?
![Page 34: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/34.jpg)
34Thomas Stidsen
DTU-Management / Operations Research
The improving variableHow can we find the improving variable. We knowthat any variable where cj − cBB−1Aj = cj − πAj.But we want not just to choose any variable, butmin cj − πAj, the so called Dantzig rule, which isthe standard non-basic variable selection rule. TheDantzig rule hence corresponds to the originalcosts (which might be zero), subtracted by the dualvariable vector multiplied by the column of the newvariable xj
![Page 35: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/35.jpg)
35Thomas Stidsen
DTU-Management / Operations Research
Pattern generation: The subproblemFor each iteration in the Simplex algorithm, we needto find the most negative column. We can do that bydefining a new optimisation problem:
Min z = 1 −∑
i πiaij
![Page 36: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/36.jpg)
36Thomas Stidsen
DTU-Management / Operations Research
Pattern generation: Ignore the constantsMax:
z =∑
i
πiaij
s.t.:∑
i
li · aij ≤ L
aij ∈ Z+
What about the j index ?
![Page 37: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/37.jpg)
37Thomas Stidsen
DTU-Management / Operations Research
What is the subproblem ?The subproblem is the classical knapsack problem.
The problem is theoretically NP-hard ....
But it is an “easy” NP-hard problem, meaningthat we can solve the problem for relative largesizes of N , i.e. number of items (in this casedifferent lengths)
![Page 38: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/38.jpg)
38Thomas Stidsen
DTU-Management / Operations Research
Knapsack solution methodsThe problem may e.g. be solved using dynamicprogramming. We will ignore the problem ofefficiency and just use standard MIP solvers. Noticethat we are going to solve exactly the sameproblem, but with updated profit coefficients.
![Page 39: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/39.jpg)
39Thomas Stidsen
DTU-Management / Operations Research
The Column Generation AlgorithmCreate initial columnsrepeat
Solve master problem, find πSolve the subproblem min zsub = 1 −
∑i πi · ai
Add new column problem to master problemuntil zsub ≥ 0
![Page 40: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/40.jpg)
40Thomas Stidsen
DTU-Management / Operations Research
Lets look at an example !We have some customers who wants:
Pieces in three lengths: 44 pieces of length 81cm., 3 pieces of length 70 cm. and 48 pieces oflength 68 cm.
We have steel rods of length 218 cm. of unitprice.
How do we get the initial columns ???
![Page 41: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/41.jpg)
41Thomas Stidsen
DTU-Management / Operations Research
The initial columnsWe need some initial columns and we basicallyhave two choices:
Start with fake columns, which are so expensivethat we know they will not be in the finalproblem.
If possible, create some more “competetive”columns.
We simply use columns where each column con-
tains 1 in different rows
![Page 42: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/42.jpg)
42Thomas Stidsen
DTU-Management / Operations Research
Master problem\ Initial master problem
minimizex_1 + x_2 + x_3
subject tol1: x_1 >= 44l2: x_2 >= 3l3: x_3 >= 48end
![Page 43: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/43.jpg)
43Thomas Stidsen
DTU-Management / Operations Research
Sub problem: Given π = [1, 1, 1]\ initial sub problem
maximizea_1 + a_2 + a_3
subject tol: 81a_1 + 70a_2 + 68a_3 <= 218bound
a_1 <= 2a_2 <= 3a_3 <= 3
integera_1 a_2 a_3
end
![Page 44: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/44.jpg)
44Thomas Stidsen
DTU-Management / Operations Research
First sub-problem solutionThe best solution (a1, a2, a3) = (0, 0, 3)
![Page 45: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/45.jpg)
45Thomas Stidsen
DTU-Management / Operations Research
New Master Problem\ second master problem
minimizex_1 + x_2 + x_3 + x_4
subject tol1: x_1 >= 44l2: x_2 >= 3l3: x_3 + 3x_4 >= 48end
![Page 46: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/46.jpg)
46Thomas Stidsen
DTU-Management / Operations Research
First master solutionThe best solution duals (π1, π2, π3) = (1.0, 1.0, 0.33)
![Page 47: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/47.jpg)
47Thomas Stidsen
DTU-Management / Operations Research
Second Sub problem: Given π = [1.0, 1.0, 0.33]\ initial sub problem
maximizea_1 + a_2 + 0.33a_3
subject tol: 81a_1 + 70a_2 + 68a_3 <= 218bound
a_1 <= 2a_2 <= 3a_3 <= 3
integera_1 a_2 a_3
end
![Page 48: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/48.jpg)
48Thomas Stidsen
DTU-Management / Operations Research
First sub-problem solutionThe best solution (a1, a2, a3) = (0, 3, 0)
![Page 49: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/49.jpg)
49Thomas Stidsen
DTU-Management / Operations Research
New Master Problem\ second master problem
minimizex_1 + x_2 + x_3 + x_4 + x_5
subject tol1: x_1 >= 44l2: x_2 + 3x_5 >= 3l3: x_3 + 3x_4 >= 48end
![Page 50: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/50.jpg)
50Thomas Stidsen
DTU-Management / Operations Research
Why is this so interesting ???I have told you a number of times that this is themost applied method in OR, why ?
We can solve problems with a "small" numberof constraints and an exponential numbervariables ... this is a special type of LP problembut ...
Through the so called Dantzig-Wolfedecomposition we can change any LP problemto a problem with a reduced number ofconstraints, but an increased number ofvariables ...
By performing clever decompositions we canimprove the LP bounding ...
![Page 51: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/51.jpg)
51Thomas Stidsen
DTU-Management / Operations Research
Subproblem solutionUsually (though not always) we need an efficientalgorithm to solve the subproblem. Subproblemsare often one of the following types:
Knapsack (like in the cutting stock problem).
Shortest path problems in graphs.
Hence: To use column generation efficiently youoften need to know something about complexitytheory ...
![Page 52: Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen thst@man.dtu.dk DTU-Management Technical](https://reader033.vdocument.in/reader033/viewer/2022051523/5a758d4e7f8b9a4b538c92f1/html5/thumbnails/52.jpg)
52Thomas Stidsen
DTU-Management / Operations Research
Getting Integer SolutionsThere are several methods:
Rounding up, not always possible ....
Getting integer solutions using (meta)heuristics.This is the reason for the great interest in theset partioning/set covering problem.
Branch and price, hard and quite timeconsuming ...