52
1 Thomas Stidsen DTU-Management / Operations Research Column Generation: Cutting Stock – A very applied method Thomas Stidsen [email protected] DTU-Management Technical University of Denmark

Column Generation: Cutting Stock - Technical University · PDF fileColumn Generation: Cutting Stock – A very applied method Thomas Stidsen [email protected] DTU-Management Technical

Embed Size (px)

Citation preview

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

1Thomas Stidsen

DTU-Management / Operations Research

Column Generation: Cutting Stock– A very applied method

Thomas Stidsen

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ...