column generation

66
Column Generation By Soumitra Pal Under the guidance of Prof. A. G. Ranade

Upload: yaron

Post on 24-Feb-2016

81 views

Category:

Documents


0 download

DESCRIPTION

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 CSP & solution Conclusions. 10. 5. 3. Cutting Stock Problem. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Column Generation

Column Generation

By

Soumitra Pal

Under the guidance of

Prof. A. G. Ranade

Page 2: Column Generation

Agenda

• Introduction• Basics of Simplex algorithm• Formulations for the CSP• (Delayed) Column Generation• Branch-and-price• Flow formulation of CSP & solution• Conclusions

Page 3: Column Generation

Cutting Stock Problem

• Given larger raw paper rolls

• Get final rolls of smaller widths

10

5 3

Page 4: Column Generation

Cutting Stock Problem (2)

• Raw width (W) = 10• No of finals given below

i Width (wi) Quantity (bi)

1 3 92 5 793 6 904 9 27

• Minimize total no of raws reqd. to be cut

Page 5: Column Generation

Agenda

• Introduction• Basics of Simplex algorithm• Formulations for the CSP• (Delayed) Column Generation• Branch-and-price• Flow formulation of CSP & solution• Conclusions

Page 6: Column Generation

5x1 - 8x2 ≥ -80 -5x1 - 4x2 ≥ -100-5x1 - 2x2 ≥ -80-5x1 + 2x2 ≥ -50

Min -x1 -x2Objective/

Cost fn

Constraints

Page 7: Column Generation

(10,0)

(13,5)

(12,10)

(8,15)

(0,10)

5x1 - 8x2 ≥ -80 -5x1 - 4x2 ≥ -100-5x1 - 2x2 ≥ -80-5x1 + 2x2 ≥ -50

Page 8: Column Generation

-x1-x2 = -10 -x1-x2 = -20 -x1-x2 = -30

Cost decreases in this direction

Page 9: Column Generation

(10,0)

(13,5)

(12,10)

(8,15)

(0,10)

Simplex method

Page 10: Column Generation

contraints of no. variablesof no.

0

:s.t.Min

1211

22222121

11212111

2211

ml

xbxaxaxa

bxaxaxabxaxaxa

xcxcxc

i

mlmlmm

ln

ln

ln

Page 11: Column Generation

0

:s.t.000Min

1211

222222121

111212111

212211

i

mnlmlmm

lln

lln

nllln

xbxxaxaxa

bxxaxaxabxxaxaxa

xxxxcxcxc

Page 12: Column Generation

0:s.t.

Min

xbAx

cx

Page 13: Column Generation

(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 ≥ -80 -5x1 - 4x2 ≥ -100-5x1 - 2x2 ≥ -80-5x1 + 2x2 ≥ -50

Page 14: Column Generation

'1'

'11'

1'1'

'

''

11

1

1

equation, previousin it Putting

variablebasic-non one increase corner,next out find To0

0 ,0

0min

NBB

NB

NB

N

B

B

BBB

B

B

BB

BNB

NxBxxNxBbBxbBNxBx

xx

x

bBx

NBI

bBcxccxbBxbBx

xbx

NBAx

xcccx

Page 15: Column Generation

NBccc

xNBcccxcx

xNBccxcxcxccxxcNxBxcxcxccx

BN

NBN

NBNBBNNBB

NNNBBNNBB

1

'1'

'1'''

''1'''

cost reduced called isbracket in termThe

)(costin Change

)()(

cost New

• If all elements of it are non-negative, it is already optimal• Otherwise choose the non-basic variable corresponding to

most negative value to enter the basic

Page 16: Column Generation

• How to find out outgoing basic variable?

ofcomponent kth

)( ofcomponent kth of Min value

0. becomes ofcomponent )k(say one until increased becan It .

variablebasic new with mutilpies that ofcolumn thebe Let

1

'th

1

1'1'

dxbB

xx

NBd

bBNxBx

B

B

i

NB

Page 17: Column Generation

Few steps of simplex algorithm

• Compute reduced cost• If all >= 0, optimal stop.• Otherwise choose the most negative

component• Corresponding variable enters basis• Compute the ratios for finding out leaving basis• Update basic variables and B for next step

NBcc BN1

'1'NBB NxBxx

Page 18: Column Generation

Smart way of doing

variableleavingabout info gives

gives, ofcolumn theis wherecost reduced and gives

gives

dx

dNaaBdyNcycyB

xbBx

B

NB

BB

Page 19: Column Generation

yd

Start

Page 20: Column Generation

yd

Reduced cost vector

Page 21: Column Generation

yd

Selection of non-basic variable

Page 22: Column Generation

yd

y vector

Page 23: Column Generation

yd

Selection of leaving basic variable

Page 24: Column Generation

Preparation for next step

yd

Page 25: Column Generation

yd

Entering variable in 2nd iteration

Page 26: Column Generation

yd

Leaving variable in 2nd iteration

Page 27: Column Generation

yd

Preparation for 3rd iteration

Page 28: Column Generation

yd

Final iteration

Page 29: Column Generation

Done so far

• Basics of (revised) Simplex algorithm– Formulation– Corners, basic variables, non-basic variables– How to move from corner to corners– Optimal value

Page 30: Column Generation

Agenda

• Introduction• Basics of Simplex algorithm• Formulations for the CSP• (Delayed) Column Generation• Branch-and-price• Flow formulation of CSP & solution• Conclusions

Page 31: Column Generation

raw k fromcut widthi of finals of no.

otherwise 0used, is raw k if 1

widthafor index iraw afor index kwidthsdifferent of no.mraws available of no.K

,,1,,1integer and 0,,11or 0

,,1

,,1 :s.t.

Min

th

th

th

1

1

1

ik

k

ik

k

k

m

iiki

i

K

kik

K

kk

x

y

miKkxKky

KkWyxw

mibx

y

First step to solution - Formulation

Kantorovich formulation

Page 32: Column Generation

Kantorovich formulation example

1 2 3 4

1 ,4

3 ,1 ,10 ,1 ,4

21

132111

4231

k

kk

k xx

xxxyyyyK

Page 33: Column Generation

LP relaxation• Integer programming is hard• Convert it to a linear program

raw k fromcut widthi of finals of no.

otherwise 0used, is raw k if 1

widthafor index iraw afor index kwidthsdifferent of no.mraws available of no.K

,,1,,1integer and 0,,11or 0

,,1

,,1 :s.t.

Min

th

th

th

1

1

1

ik

k

ik

k

k

m

iiki

i

K

kik

K

kk

x

y

miKkxKky

KkWyxw

mibx

y

0 ≤ yk ≤ 1

Page 34: Column Generation

LP relaxation (2)

• LP relaxation is poor• For our example, optimal LP objective is 120.5• The optimal integer objective solution value is

157• Gap is 36.5• It can be as bad as ½ of the integer solution

• Can we get a better LP relaxation?

Page 35: Column Generation

jpattern fromcut widthi of finals of no.

jpattern in cut raws of no.patterns possible all ofset J

pattern cutting ajwidthsdifferent of no.m

widthafor index i

integer and 0

,,1 :s.t.

Min

th

ij

j

j

iJj

jij

Jjj

a

x

Jjx

mibxa

x

Another Formulation

Gilmore-GomoryFormulation

Page 36: Column Generation

2790799

000000001000000110000121000321100100

:9:6:5:3

9

8

7

6

5

4

3

2

1

4

3

2

1

xxxxxxxxx

wwww

Example formulation

3*1 + 5*0 + 6*1 + 9*0 = 9 ≤ 10

Page 37: Column Generation

LP relaxation of Gilmore-Gomory

• LP relaxation is better• For our example, 156.7• Integer objective solution, 157• Gap is 0.3• Conjecture: Gap is less than 2 for practical

cutting stock problems

Page 38: Column Generation

Issues

• The number of columns are exponential• Optimal value is still not integer

• Gilmore-Gomory proposed an ingenuous way of working with less columns

• Branch-and-price to solve the other problem

Page 39: Column Generation

Done so far

• Basics of (revised) Simplex algorithm– Formulation– Corners, basic variables, non-basic variables– How to move from corner to corners– Optimal value

• Formulation of the CSP– LP relaxation– Bounds

Page 40: Column Generation

Agenda

• Introduction• Basics of Simplex algorithm• Formulations for the CSP• (Delayed) Column Generation• Branch-and-price• Flow formulation of CSP & solution• Conclusions

Page 41: Column Generation

Column Generation

• In pricing step of simplex algorithm one basic variable leaves and one non-basic variable enters the basis

• This decision is made from the reduced cost vector

• The component with most negative value determines the entering variable

yNcNBcc NBN or 1

Page 42: Column Generation

Column Generation (2)• In terms of columns, we need to find

• That is equivalent to finding a such that

• For cutting stock problem, cj=1, hence it is equivalent to

• With implicit constraint

• Pricing sub-problem

} ofcolumn a is |{min argj

Nayac jjj

} ofcolumn a is |)(min{ Aayaac

}1|max{ yaya

Wwa

Page 43: Column Generation

Column Generation (3)

AnyNew Columns?

STOP(LP Optimal)

SolveRestricted Master Problem

(RMP)

SolvePricing Problem

Update RMP withNew Columns

No

Yes

Page 44: Column Generation

2790799

000000001000000110000121000321100100

:9:6:5:3

9

8

7

6

5

4

3

2

1

4

3

2

1

xxxxxxxxx

wwww

Example formulation

Page 45: Column Generation

T

BB

a

aaaa

aaaa

yyB

xBC

0101findcan weg,programmin dynamicor n enumeratio Using

109653constraintknapsack Given

1.1.121

31 maximize toneed we

112/13/11111

2790

5.393

1/271/902/79

3/9

,

1000010000200003

,

2790799

4321

4321

Page 46: Column Generation

2781

5.399

271.990

5.399

27.905.39

,

1000010100200001

replaced is Bin column first ,9

*90*9*1/90*31/3 /

01031

3dt

t

xB

t

dx

daBd

B

TT

B

T

Page 47: Column Generation

5.15627815.399 Solution

optimalalready is Hence1 subproblem ofsolution get not can We

109653costraintknapsack Given

1.1.121.0 maximize toneed we

112/101111

2781

5.399

,

1000010100200001

4321

4321

B

B

x

aaaa

aaaa

yyB

xB

Page 48: Column Generation

Done so far• Basics of (revised) Simplex algorithm

– Formulation– Corners, basic variables, non-basic variables– How to move from corner to corners– Optimal value

• Formulation of the CSP– LP relaxation– Bounds

• Delayed column generation– Restricted master problem– Sub-problem to generate column– Repeated till optimal

Page 49: Column Generation

Agenda

• Introduction• Basics of Simplex algorithm• Formulations for the CSP• (Delayed) Column Generation• Branch-and-price• Flow formulation of CSP & solution• Conclusions

Page 50: Column Generation

Integer solution

• A formulation of the problem which gives ‘good’ LP relaxation

• Solved the LP relaxation using column generation

• But, the LP relaxation is not the ultimate goal, we need integer solution

• In the example x2 is 39.5• One way is to rounding

Page 51: Column Generation

• What to do if there are multiple fractional variables?

• The method commonly followed is branch -and-bound technique of solving integer programs

• Basic fundae– create multiple sub-problems with extra

constraints– solve the sub-problems using column generation– take the best of solutions to the sub problems

Page 52: Column Generation

• Key is the rules of dividing into sub problems (this is called branching strategy)

• Things to look into– Branching rule does not destroy column

generation sub problem property– Efficiency of the process

• Ingenuity of the formulation and branching strategy

• Use of running bounds to prune (fathomed)• This technique is called branch-and-price• We see another formulation next

Page 53: Column Generation

Done so far• Basics of (revised) Simplex algorithm

– Formulation– Corners, basic variables, non-basic variables– How to move from corner to corners– Optimal value

• Formulation of the CSP– LP relaxation– Bounds

• Delayed column generation– Restricted master problem– Sub-problem to generate column– Repeated till optimal

• Branch-and-price– Basic fundae

Page 54: Column Generation

Agenda

• Introduction• Basics of Simplex algorithm• Formulations for the CSP• (Delayed) Column Generation• Branch-and-price• Flow formulation of CSP & solution• Conclusions

Page 55: Column Generation

Flow formulation

• Bin packing problem• Similar to the cutting stock problem

bin items

Page 56: Column Generation

w2 w2 w2 w2

w1 w1 w1

loss loss loss loss loss

0 1 2 3 4 5

w2 w2

0 1 2 3 4 5

loss

Example• Bin capacity W = 5• Item sizes – w1=3 and w2=2

Page 57: Column Generation

Formulation equations• Problem is equivalent to finding minimum

flow between nodes 0 & W

0integer 0integer

,,2,1

,

1,,2,1,00,

:s.t.

Min

)()(

zx

mdbxWjzWi

jzxx

z

ij

Awkkdwkk

Ajkjk

Aijij

d

d

Page 58: Column Generation

• Issue of symmetry in the graph• 3 rules to reduce symmetry

1. Arcs are specified according to decreasing width

2. A bin can never start with a loss3. Number of consecutive arcs corresponding

to a single item size must not exceed number of orders

Page 59: Column Generation

w2 w2 w2 w2

w1w1 w1

loss loss loss loss loss

01 2 3 4

5

Invalid as per rule 2

Invalid as per rule 1

w2 w2 w2

w1

loss loss loss0 1 2 3 4 5

Page 60: Column Generation

Branch-and-price

• The sub-problem finds an longest unit flow path where cost of each arc is given by y vector

• Branching heuristics– Xij >= ceil(xij)– Xij <= floor(xij)

Page 61: Column Generation

Few other points

• Loss constraints from the LP relaxation value is equated with the sum of loss variables

• With the above constraint it can be shown that the solution will be always integral

• The algorithm uses this fact by incrementally adding the lower bound

• This is done finite no. of times• No of new constraints are added is finite• Algorithm runs in pseudo-polynomial time

Page 62: Column Generation

Conclusions & Future work

• Column generation is a success story in large scale integer programming

• The flexibility to work with a few columns make real life problems tractable

• Ingenuous formulations and branching heuristics are used to improve efficiency

• Need to explore more applications with different heuristics

Page 63: Column Generation

Acknowledgements

• Valerio de Carvalho for borrowing some of his explanations exactly

• http://www-fp.mcs.anl.gov/otc/Guide/CaseStudies/simplex/applet/SimplexTool.html for the java applet

• AMPL & CPLEX tools• My guide

Page 64: Column Generation
Page 65: Column Generation

Thank you!

Page 66: Column Generation