method of column generation used in ip jan pelikán, jan fábry...
TRANSCRIPT
Method Method of of
Column GenerationColumn Generation Used in IPUsed in IP
Jan PelikánJan Pelikán, , Jan FábryJan Fábry
___________________________________________________________________________MME 2004, Brno
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Integer Programming ModelsInteger Programming Models
Discrete variables: NP-hard problems
Non-polynomial method (exponentialNon-polynomial method (exponentialnumber of branches)number of branches)
Estimation of the optimal objective valueEstimation of the optimal objective value
Standard Branch and Bound Method
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Modifications ofModifications of Branch and Bound Method Branch and Bound Method
Branch and Cut Algorithm (Row Generation)Branch and Cut Algorithm (Row Generation)
Branch and Price Algorithm (Column Generation)Branch and Price Algorithm (Column Generation)
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Branch and CutBranch and Cut
Example – Traveling Salesperson ProblemExample – Traveling Salesperson Problem
Solution w/o Restriction of Partial CyclesSolution w/o Restriction of Partial Cycles
1
2
3
5
64
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Example – Traveling Salesperson ProblemExample – Traveling Salesperson Problem
Constraint GenerationConstraint Generation
Branch and CutBranch and Cut
1
2
3
5
64
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Reduction of Constraints !Reduction of Constraints !
Branch and CutBranch and Cut
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Reduction of Variables !Reduction of Variables !
Branch and PriceBranch and Price
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Dantzig-Wolfe DecompositionDantzig-Wolfe Decomposition
.0
,
,s.t.
min
x
dBx
bAx
xcT
0,; xdBxxG
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Extreme Points of GExtreme Points of Grxxx ,...,, 21
r
i
ii xx
1
0i
r
ii
1
1Gx all
Dantzig-Wolfe DecompositionDantzig-Wolfe Decomposition
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
.0
,
,s.t.
min
x
dBx
bAx
xcT
Dantzig-Wolfe DecompositionDantzig-Wolfe Decomposition
r
i
ii xx
1
0i
r
ii
1
1
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Master ProblemMaster Problem
riAxpxcf
bp
f
ii
iTi
r
ii
r
iii
r
iii
,...,2,1for , where
,0
,1
, s.t.
min
1
1
1
Dantzig-Wolfe DecompositionDantzig-Wolfe Decomposition
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Master ProblemMaster Problem
Reduced ProblemReduced Problem
Reduction of ColumnsReduction of Columns
Dantzig-Wolfe DecompositionDantzig-Wolfe Decomposition
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Reduced ProblemReduced Problem
.,...,2,1for , where
,0
,1
, s.t.
min
rLiAxpxcf
bp
f
ii
iTi
Lii
Liii
Liii
Dantzig-Wolfe DecompositionDantzig-Wolfe Decomposition
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
OptimalityOptimality
Optimal SOL of Optimal SOL of Reduced ProblemReduced Problem
Optimal SOL of Optimal SOL of Master ProblemMaster Problem(and original problem)(and original problem)
??
Optimality Test on Columns in Optimality Test on Columns in {1,2,{1,2,…,…,rr}-}-LL
(Columns from MP, missed in RP)(Columns from MP, missed in RP)
Dantzig-Wolfe DecompositionDantzig-Wolfe Decomposition
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
OptimalityOptimality Test on Columns in Optimality Test on Columns in {1,2,{1,2,
…,…,rr}-}-LL (Columns from MP, missed in RP)(Columns from MP, missed in RP)
Lrkupufz kT
kk },...,2,1{,00
non-optimalnon-optimalSOLSOL),( 0uuT Opt. SOL of dual to RPOpt. SOL of dual to RP
Dantzig-Wolfe DecompositionDantzig-Wolfe Decomposition
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Sub-problemSub-problem
.0
,s.t.
min 0
x
dBx
uAxuxc TT
0* z
0* zOptimal SOL of RP Optimal SOL of RP
is is Optimal SOL of MPOptimal SOL of MP
New Column New Column GenerationGeneration
Column GenerationColumn Generation
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
L L = initial set of columns= initial set of columns
Solve Reduced Problem with Solve Reduced Problem with LL
Solve Sub-Problem with Solve Sub-Problem with ),( 0uuT
0* zNew Column New Column Generation:Generation: *Axpk
0* zOptimumOptimum
Algorithm of Column GenerationAlgorithm of Column Generation
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Example – Cutting Stock ProblemExample – Cutting Stock Problem
Rolls 28 cm 26 cm 21 cm 18 cm 15 cm
Demand 120 100 80 150 180
Stock of rolls: standard width 100 cm
Standard IP model: 67 possible patterns
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Standard IP ModelStandard IP ModelPattern P1 P2 … Pn Demand
w1 a11 a12 … a1n d1w2 a21 a22 a2n d2… … … … … …wm am1 am2 … amn dm
.,...,2,1 integer, is
,0
,...,2,1 ,s.t.
min
1
1
njx
x
midxa
x
j
i
n
jjij
n
jj
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Pattern P1 P2 … Pm Demand
w1 a11 0 … 0 d1
w2 0 a22 0 d2
… … … … … …wm 0 0 … amm dm
Column GenerationColumn Generation
.,...,2,1,0 miw
Wa
iii
Initial patterns Initial patterns Reduced Problem Reduced Problem
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Column GenerationColumn GenerationSub-Problem – Integer Knapsack ProblemSub-Problem – Integer Knapsack Problem
.,...,2,1 integer, is
,0
,s.t.
1max
01
1
miy
y
Wyw
yu
i
m
iii
m
iii
0* z New PatternPattern Generation
yyii = = number of the rolls of width number of the rolls of width wwii in the generated pattern. in the generated pattern.
___________________________________________________________________________Method of Column Generation Used in Integer Programming MME 2004, Brno
Cutting Stock ProblemCutting Stock ProblemResultsResults
Pattern P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12
28 cm 3 0 0 0 0 0 1 3 0 1 0 2
26 cm 0 3 0 0 0 3 0 0 0 0 2 1
21 cm 0 0 4 0 0 1 2 0 0 0 0 0
18 cm 0 0 0 5 0 0 0 0 3 4 1 1
15 cm 0 0 0 0 6 0 2 1 3 0 2 0
Use 0 0 0 0 0 2 39 14 0 25 44 7
Initial Patterns Genrated Patterns
131