Professional Documents
Culture Documents
Columngeneration PDF
Columngeneration PDF
Columngeneration PDF
DTU-Management
Technical University of Denmark
Thomas Stidsen 1
DTU-Management / Operations Research
Outline
History
The Simplex algorithm (re-visited)
Column Generation as an extension of the
Simplex algorithm
A simple example !
Thomas Stidsen 2
DTU-Management / Operations Research
Given an LP problem
Min
cT x
s.t.
Ax ≥ b
x ≥ 0
Thomas Stidsen 4
DTU-Management / Operations Research
Thomas Stidsen 5
DTU-Management / Operations Research
A reformulated version
Min
z = cTB xB + cTN xN
s.t.
xB = B −1 b − B −1 AN xN
xB , xN ≥ 0
Thomas Stidsen 7
DTU-Management / Operations Research
A reformulated version
Min
z = cB B −1 b + (cN − cB B −1 AN )xN
s.t.
xB = B −1 b − B −1 AN xN
xB , xN ≥ 0
Thomas Stidsen 8
DTU-Management / Operations Research
Thomas Stidsen 9
DTU-Management / Operations Research
Thomas Stidsen 10
DTU-Management / Operations Research
Thomas Stidsen 11
DTU-Management / Operations Research
Thomas Stidsen 12
DTU-Management / Operations Research
Thomas Stidsen 13
DTU-Management / Operations Research
Bookkeeping
In the end what needs to be done (in the revised
simplex algorithm) ?
Thomas Stidsen 15
DTU-Management / Operations Research
Basis Non−basis
Thomas Stidsen 17
DTU-Management / Operations Research
Thomas Stidsen 18
DTU-Management / Operations Research
Thomas Stidsen 19
DTU-Management / Operations Research
Thomas Stidsen 20
DTU-Management / Operations Research
Alternative cB B −1
For an optimization problem:
{min cx|Ax ≥ b, x ≥ 0}. Outside the inner loop, the
reduced costs are: cN − cB B −1 AN ≥ 0 for the
existing variables. Notice that this also holds for the
basic variables for which the costs are all zero, i.e.
c − cB −1 A ≥ 0. If we rename the term cB B −1 to the
name π we can rewrite the expression: πA ≤ c. But
this is exactly dual feasibility of our original problem
! Hence we can use the dual variables from our
inner loop when looking for new variables.
Thomas Stidsen 21
DTU-Management / Operations Research
Thomas Stidsen 22
DTU-Management / Operations Research
Thomas Stidsen 23
DTU-Management / Operations Research
A
C C
A
A
C B
B
LOSS
Thomas Stidsen 24
DTU-Management / Operations Research
Thomas Stidsen 25
DTU-Management / Operations Research
s.t.:
X
xik = bi ∀i
k
X
wi · xik ≤ W · yk ∀k
i
xik ∈ N0 yk ∈ {0, 1}
Thomas Stidsen 26
DTU-Management / Operations Research
Thomas Stidsen 27
DTU-Management / Operations Research
New Formulation
How can we change the formulation ?
Thomas Stidsen 28
DTU-Management / Operations Research
s.t.:
X
aij · xj ≥ bi ∀i
j
xj ∈ N0
Thomas Stidsen 29
DTU-Management / Operations Research
Thomas Stidsen 30
DTU-Management / Operations Research
Thomas Stidsen 31
DTU-Management / Operations Research
Cutting Patterns
We have a number of questions to these cutting
patterns:
Thomas Stidsen 32
DTU-Management / Operations Research
Cutting Patterns
This 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 ?
Thomas Stidsen 33
DTU-Management / Operations Research
Thomas Stidsen 34
DTU-Management / Operations Research
P i
M in z = 1 − π a
i i j
Thomas Stidsen 35
DTU-Management / Operations Research
s.t.:
X
li · aij ≤ L
i
aij ∈ Z +
Thomas Stidsen 36
DTU-Management / Operations Research
Thomas Stidsen 37
DTU-Management / Operations Research
Thomas Stidsen 38
DTU-Management / Operations Research
Thomas Stidsen 39
DTU-Management / Operations Research
Thomas Stidsen 40
DTU-Management / Operations Research
Thomas Stidsen 41
DTU-Management / Operations Research
Master problem
\ Initial master problem
minimize
x_1 + x_2 + x_3
subject to
l1: x_1 >= 44
l2: x_2 >= 3
l3: x_3 >= 48
end
Thomas Stidsen 42
DTU-Management / Operations Research
maximize
a_1 + a_2 + a_3
subject to
l: 81a_1 + 70a_2 + 68a_3 <= 218
bound
a_1 <= 2
a_2 <= 3
a_3 <= 3
integer
a_1 a_2 a_3
end
Thomas Stidsen 43
DTU-Management / Operations Research
Thomas Stidsen 44
DTU-Management / Operations Research
minimize
x_1 + x_2 + x_3 + x_4
subject to
l1: x_1 >= 44
l2: x_2 >= 3
l3: x_3 + 3x_4 >= 48
end
Thomas Stidsen 45
DTU-Management / Operations Research
Thomas Stidsen 46
DTU-Management / Operations Research
maximize
a_1 + a_2 + 0.33a_3
subject to
l: 81a_1 + 70a_2 + 68a_3 <= 218
bound
a_1 <= 2
a_2 <= 3
a_3 <= 3
integer
a_1 a_2 a_3
end
Thomas Stidsen 47
DTU-Management / Operations Research
Thomas Stidsen 48
DTU-Management / Operations Research
minimize
x_1 + x_2 + x_3 + x_4 + x_5
subject to
l1: x_1 >= 44
l2: x_2 + 3x_5 >= 3
l3: x_3 + 3x_4 >= 48
end
Thomas Stidsen 49
DTU-Management / Operations Research
Subproblem solution
Usually (though not always) we need an efficient
algorithm to solve the subproblem. Subproblems
are often one of the following types:
Thomas Stidsen 51
DTU-Management / Operations Research
Thomas Stidsen 52