Column Generation
By Soumitra Pal Under the guidance of
- Prof. A. G. Ranade
Column Generation By Soumitra Pal Under the guidance of Prof. A. - - PowerPoint PPT Presentation
Column Generation By Soumitra Pal Under the guidance of Prof. A. G. Ranade Agenda Introduction Basics of Simplex algorithm Formulations for the CSP (Delayed) Column Generation Branch-and-price Flow formulation of
By Soumitra Pal Under the guidance of
raw paper rolls
smaller widths
10 5 3
i Width (wi) Quantity (bi) 1 3 9 2 5 79 3 6 90 4 9 27
5x1 - 8x2 ≥
Min -x1 -x2
Objective/ Cost fn Constraints
(10,0) (13,5) (12,10) (8,15) (0,10)
5x1 - 8x2 ≥
Cost decreases in this direction
(10,0) (13,5) (12,10) (8,15) (0,10)
1 2 1 1 2 2 2 22 1 21 1 1 2 12 1 11 2 2 1 1
i m l ml m m l n l n l n
1 2 1 1 2 2 2 2 22 1 21 1 1 1 2 12 1 11 2 1 2 2 1 1
+ + + + i m n l ml m m l l n l l n n l l l n
(10,0,130,50,30,0) (13,5,110,10,0,0) (12,10,60,0,0,10) (8,15,0,0,10,40) (0,10,0, 60,60,70) (0,0,80, 100,80,50)
Basic & non-basic
5x1 - 8x2 ≥
[ ] [ ]
[ ]
' 1 ' ' 1 1 ' 1 ' 1 ' ' ' ' 1 1 1 1
equation, previous in it Putting variable basic
increase corner, next
find To , min
N B B N B N B N B B B B B B B B B B N B
Nx B x x Nx B b B x b B Nx B x x x x b B x N B I b B c x c cx b B x b Bx x b x N B Ax x c c cx
− − − − − − − − −
− = => − = => = + ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = = => = => = => ≥ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ =
N B c c c x N B c c cx cx x N B c c x c x c x c cx x c Nx B x c x c x c cx
B N N B N N B N B B N N B B N N N B B N N B B 1 ' 1 ' ' 1 ' ' ' ' ' 1 ' ' '
cost reduced called is bracket in term The ) ( cost in Change ) ( ) ( cost New
− − − −
− = − = − − + = + = => + − = + =
most negative value to enter the basic
component kth ) (
component kth
Min value 0. becomes
component ) k (say
until increased be can It . variable basic new with mutilpies that
column the be Let
1 ' th 1 1 ' 1 '
d x b B x x N B d b B Nx B x
B B i N B
= = +
− − − −
component
B N 1 −
' 1 ' N B B
−
B N B B B
y d
y d
y d
y d
y d
y d
y d
y d
y d
y d
– Formulation – Corners, basic variables, non-basic variables – How to move from corner to corners – Optimal value
raw k from cut width i
finals
no.
used, is raw k if 1 width a for index i raw a for index k widths different
no. m raws available
no. K , , 1 , , 1 integer and , , 1 1
, , 1 , , 1 : s.t. Min
th th th 1 1 1 ik k ik k k m i ik i i K k ik K k k
x y m i K k x K k y K k Wy x w m i b x y K K K K K = = ≥ = = = ≤ = ≥
∑ ∑ ∑
= = =
Kantorovich formulation
1 2 3 4
1 , 4 3 , 1 , 1 , 1 , 4
2 1 13 21 11 4 2 3 1
= = = = = = = = = =
k k k k
x x x x x y y y y K
raw k from cut width i
finals
no.
used, is raw k if 1 width a for index i raw a for index k widths different
no. m raws available
no. K , , 1 , , 1 integer and , , 1 1
, , 1 , , 1 : s.t. Min
th th th 1 1 1 ik k ik k k m i ik i i K k ik K k k
x y m i K k x K k y K k Wy x w m i b x y K K K K K = = ≥ = = = ≤ = ≥
∑ ∑ ∑
= = =
0 ≤ yk ≤ 1
157
j pattern from cut width i
finals
no. j pattern in cut raws
no. patterns possible all
set J pattern cutting a j widths different
no. m width a for index i integer and , , 1 : s.t. Min
th ij j j i J j j ij J j j
a x J j x m i b x a x ∈ ∀ ≥ = ≥
∈ ∈
K
Gilmore-Gomory Formulation
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ≥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = = = = 27 90 79 9 1 1 1 1 2 1 3 2 1 1 1 : 9 : 6 : 5 : 3
9 8 7 6 5 4 3 2 1 4 3 2 1
x x x x x x x x x w w w w
3*1 + 5*0 + 6*1 + 9*0 = 9 ≤ 10
cutting stock problems
way of working with less columns
problem
– Formulation – Corners, basic variables, non-basic variables – How to move from corner to corners – Optimal value
– LP relaxation – Bounds
basic variable leaves and one non-basic variable enters the basis
cost vector
determines the entering variable
N B N
−
1
equivalent to
j
j j j −
Any New Columns? STOP (LP Optimal) Solve Restricted Master Problem (RMP) Solve Pricing Problem Update RMP with New Columns
No Yes
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ≥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = = = = 27 90 79 9 1 1 1 1 2 1 3 2 1 1 1 : 9 : 6 : 5 : 3
9 8 7 6 5 4 3 2 1 4 3 2 1
x x x x x x x x x w w w w
T B B
a a a a a a a a a y yB x B C 1 1 find can we g, programmin dynamic
n enumeratio Using 10 9 6 5 3 constraint knapsack Given 1 . 1 . 1 2 1 3 1 maximize to need we 1 1 2 / 1 3 / 1 1 1 1 1 27 90 5 . 39 3 1 / 27 1 / 90 2 / 79 3 / 9 , 1 1 2 3 , 27 90 79 9
4 3 2 1 4 3 2 1
= ≤ + + + ≥ + + + = => = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ =
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = = = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = => = 27 81 5 . 39 9 27 1 . 9 90 5 . 39 9 27 . 90 5 . 39 , 1 1 1 2 1 replaced is B in column first , 9 * 90 * 9 * 1 / 90 * 3 1 / 3 / 1 3 1
3
d t t x B t d x d a Bd
B T T B T
[ ] [ ]
5 . 156 27 81 5 . 39 9 Solution
already is Hence 1 subproblem
solution get not can We 10 9 6 5 3 costraint knapsack Given 1 . 1 . 1 2 1 . maximize to need we 1 1 2 / 1 1 1 1 1 27 81 5 . 39 9 , 1 1 1 2 1
4 3 2 1 4 3 2 1
= + + + = > ≤ + + + ≥ + + + = => = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ =
B B
x a a a a a a a a y yB x B
– Formulation – Corners, basic variables, non-basic variables – How to move from corner to corners – Optimal value
– LP relaxation – Bounds
– Restricted master problem – Sub-problem to generate column – Repeated till optimal
‘good’ LP relaxation
generation
goal, we need integer solution
variables?
programs
– create multiple sub-problems with extra constraints – solve the sub-problems using column generation – take the best of solutions to the sub problems
problems (this is called branching strategy)
– Branching rule does not destroy column generation sub problem property – Efficiency of the process
strategy
– Formulation – Corners, basic variables, non-basic variables – How to move from corner to corners – Optimal value
– LP relaxation – Bounds
– Restricted master problem – Sub-problem to generate column – Repeated till optimal
– Basic fundae
bin items
w2 w2 w2 w2 w1 w1 w1 loss loss loss loss loss 1 2 3 4 5 w2 w2 1 2 3 4 5 loss
flow between nodes 0 & W integer integer , , 2 , 1 , 1 , , 2 , 1 , , : s.t. Min
) ( ) (
≥ ≥ = ≥ ⎪ ⎩ ⎪ ⎨ ⎧ = − = = − = −
∈ + + ∈ ∈
z x m d b x W j z W i j z x x z
ij A w k k d w k k A jk jk A ij ij
d d
L K
width
to a single item size must not exceed number of orders
w2 w2 w2 w2 w1 w1 w1 loss loss loss loss loss 1 2 3 4 5
Invalid as per rule 2 Invalid as per rule 1
w2 w2 w2 w1 loss loss loss 1 2 3 4 5
where cost of each arc is given by y vector
– Xij >= ceil(xij) – Xij <= floor(xij)
equated with the sum of loss variables
the solution will be always integral
adding the lower bound
large scale integer programming
make real life problems tractable
heuristics are used to improve efficiency
different heuristics
fp.mcs.anl.gov/otc/Guide/CaseStudies/s implex/applet/SimplexTool.html for the java applet