290 likes | 455 Views
Pivot and Shift – A Mixed Integer Programming Heuristic. Egon Balas and Chris Wallace. History. Pivot and Complement: A Heuristic for 0-1Prog-ramming (E. Balas and C. Martin, Man. Sci 1980) Pure 0/1 programming. Fortran implementation with own LP code
E N D
Pivot and Shift – A Mixed Integer Programming Heuristic Egon Balas and Chris Wallace
History • Pivot and Complement: A Heuristic for 0-1Prog-ramming (E. Balas and C. Martin, Man. Sci 1980) Pure 0/1 programming. Fortran implementation with own LP code • Pivot and Shift, 1986 (E. Balas and C. Martin 1986) Mixed 0/1 and general integer. Fortran implementation with own LP code • S. Schmieta 2001 conversion of 1986 Fortran code to C++ using Xpress LP code • E. Balas and C. Wallace 2003 modified pivots / shifts and included neighborhood search through MIP solver
Introduction to Pivot and Shift • Rounding procedure with three phases • Initialization • Search phase • Improvement phase
Search Phase • Quick rounding attempt, then • Pivots/shifts of several types : • Type 0 - pivots out basic integer variables • Type 1- reduces the number of basic integer variables • Type 2- improves objective while not increasing integer infeasibility • Type 3-reduces integer infeasibility, ZI ZI= åi 2 I min { d xie –xi, xi-b xic }
Round y n Type 0 Stop Type 3 Neighborhood search No type 3 found Type 2 Search Phase Continued Type 1
Search Phase- Small Neighborhood Search • min { d xie –xi, xi-b xic } S={ i 2 I : < } • i2 Sb xi+0.5c <x(S)> = å • For small neighborhood search • Add the constraints: <x(S)> - 1 x(S) <x(S)> + 1 • Use Mip solver to find a solution
Improvement Phase • Use reduced costs to fix variables • Single, Double and Triple Shifts • Large Neighborhood Search
Improvement Phase: Shifts • Fix all integer variables to best value and optimize continuous variables • Make integer variables nonbasic • Check all possible single and double shifts.
Improvement Phase:Large Neighborhood Search Neighborhood search with constant changed from 1 to 5 <x(S)> - 5 x(S) <x(S)> + 5
Comparison • Xpress 14.2 vs Xpress 14.2 with pivot and shift • Xpress 14.2 with pivot and shift • Run pivot and shift search phase at start to find initial solution (5 second time limit) • Call Xpress MIP solver • After each solution found by Xpress, use improvement phase (30 second limit)
Instances used in Comparison • Only MIP’s which required more than 20 minutes • MIPs from three collections • MIPLIB • Hans Mittelmann collection • Local Branching by M. Fischetti and A. Lodi • Stein81, Stein135, Stein243
MIPLIB • Arki001, Danoint, Dano3mip, Fast0507, Harp2, Markshare1, Markshare2, Mas74, Mkc, Noswot, Set1ch, Seymour, Swath • Hans Mittelmann collection • Acctight4, Bc, Bc1, Bienst2, Binkar10_1, Dano3_5, Markshare2_1, Mkc1,N3700, N3701,…,N370e, Neos6, Neos7, Neos9, Neos13, Neos14, Neos15, Ran14x18, Ran14x18_1, Ran16x16, Seymour1 • M. Fischetti and A. Lodi • A1c1s1, A2c2s2, B1c1s1, B2c1s2, Glass4, Nsr8k, Nsrand_ipx, Rail507, Rail2586c, Rail2636c, Rail4284c, Rail4872c, Roll3000, Sp97ar,Sp97ic, Sp98ar, Sp98ic, Tr1203-, Umts, Van
Results • ONLY- Only this code found a solution • BEST- This code found the best solution (without ties) • FIRST- In case of ties, this code found the best solution first
Seymour • Source: MIPLIB • Rows - 4944 • Cols - 1372 • 0/1 - 1372 • Comment: Set Covering
N3700 • Source: M. Sun et al • Rows - 5150 • Cols - 10000 • 0/1 - 5000 • Comment: Fixed charge network flow
N3701 • Source: M. Sun et al • Rows - 5150 • Cols - 10000 • 0/1 - 5000 • Comment: Fixed charge network flow
N370c • Source: M. Sun et al • Rows - 5150 • Cols - 10000 • 0/1 - 5000 • Comment: Fixed charge network flow
Sp97ic • Source: J. Goosens et al (2001) • Rows - 1033 • Cols - 12497 • 0/1 - 12497 • Comment: Railway line planning
Sp98ic • Source: J. Goosens et al (2001) • Rows - 825 • Cols - 10894 • 0/1 - 10894 • Comment: Railway line planning
Rail507 • Source: A. Caprara et al (1999) • Rows - 509 • Cols - 63019 • 0/1 - 63019 • Comment: Railway crew scheduling
Rail2536c • Source: A. Caprara et al (1999) • Rows - 2539 • Cols - 15293 • 0/1 - 15284 • Comment: Railway crew scheduling
B2c1s1 • Source: Pochet et al (2001) • Rows - 3904 • Cols - 3872 • 0/1 - 233 • Comment: Lot Sizing
Source- Neos Rows - 1026 Cols - 2298 0/1 - 170 Binkar10_1
Roll3000 • Source: Fischetti and Lodi (2002) • Rows - 2295 • Cols - 1166 • 0/1 - 246 • Cont - 428 • Comment: Railway stock and line planning
Hans Mittelmann collection • M. Walser ,G. Nemhauser, M. TrickAcc Basketball conference scheduling • Acctight series- Acctight4 • M. Sun, J. Aronson, P. McKeown, D. Drinka Fixed charge transportation problems • N3700 series: N3700,n3701,… n3709, n370a,…,n370e • Ran series: Ran14x18, ran14x18_1, ran16x16
Hans Mittelmann collectioncontinued • Argonne National Laboratory • Neos series: neos6-neos9, neos13-neos15 • Bc,Bc1, Binkar10_1 • Remaining unreferenced • Bienst2, Dano3_5, Markshare2_1, Mkc1, Seymour1
Fischetti and Lodi • P. Belotti : Network design • Net12 • Double-Click sas: Crew scheduling • Nrsr8k, Biella1 • I. Luzzi : nesting • Glass 4 • C.Polo, C. Mannino, E. Parello: telecommnunication design • Umts, Van
Fischetti & Lodi Continued • M. Van Vyve, Y. Pochet: Lot sizing • A1c1s1, a2c1s2 , b1c1s1, b2c1s1, tr12-30 • L. Kroon:Rolling stock and line planning • Roll3000, Nsrand_ipx • A. Caprara, M. Fischetti, P. Toth: Railway crew scheduling • Rail507, rail2636c, rail2586c, rail4284c, rail4872c • J. Gooesens, S. van Hoesel, L. Kroon: Railway line planning • Sp97ar, sp97ic, sp98ar, sp98ic